docker-composeでwordpressをローカルに最速リストア(15分,Mac)

データのバックアップ

wordpress.sql(SQLダンプファイル)とwp-contentフォルダをサーバーよりローカルの適当な所にコピーする
wordpress.sqlはBackWPupプラグインの1クリックバックアップで、wp-contentフォルダはftpなどで取得しておく。(1分)

Docker for Macのインストール

Install Docker for Mac | Docker Documentation
dockerを起動。初回のみMacのログインパスワードを聞かれる(1分)

docker-compose.ymlの作成

「docker-composeで作るWordpress環境 – Qiita」を参考にテキストエディタでdocker-compose.ymlを下記のように作成する。(1分)

version: "2"
services:
  mysql:
    image: mysql:latest
    environment:
      - MYSQL_ROOT_USER=root
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wp_user
      - MYSQL_PASSWORD=root
    volumes:
      - db-data:/var/lib/mysql
      - ./db-data:/docker-entrypoint-initdb.d
    restart: always
    ports:
      - 3306:80

  wordpress:
    image: wordpress:latest
    ports:
      - 8888:80
    depends_on:
      - mysql
    links:
      - mysql
      - phpmyadmin
    environment:
      - WORDPRESS_DB_HOST=mysql:3306
      - WORDPRESS_DB_NAME=wordpress
      - WORDPRESS_DB_USER=wp_user
      - WORDPRESS_DB_PASSWORD=root
    volumes:
      - ./wp:/var/www/html/
    restart: always

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=mysql
      - PMA_USER=root
      - PMA_PASSWORD=root
    links:
      - mysql
    ports:
      - 8080:80
    volumes:
      - /sessions
    restart: always

volumes:
  db-data:
    driver: local

ローカル環境の立ち上げ

ローカル環境用のフォルダを作成する。下記では”aronaswp”だが、フォルダ名は何でもOK。

$ mkdir aronaswp
$ mkdir aronaswp/db-data

wordpress.sqlとdocker-compose.ymlをコピー又は移動する。下記のようになるはず。

$ tree aronaswp
aronaswp/
├── db-data
│   └── wordpress.sql
└── docker-compose.yml

ローカル環境用のフォルダに移動して、docker-composeを走らせる

$ cd aronaswp
$ docker-compose up -d

コンパイルが終わって立ち上がると下記のようにフォルダが出来ている。(6分)

$ tree . -L 2
.
├── db-data
│   └── wordpress.sql
├── docker-compose.yml
└── wp
    ├── index.php
    ├── license.txt
    ├── readme.html
    ├── wp-activate.php
    ├── wp-admin
    ├── wp-blog-header.php
    ├── wp-comments-post.php
    ├── wp-config-sample.php
    ├── wp-config.php
    ├── wp-content
    ├── wp-cron.php
    ├── wp-includes
    ├── wp-links-opml.php
    ├── wp-load.php
    ├── wp-login.php
    ├── wp-mail.php
    ├── wp-settings.php
    ├── wp-signup.php
    ├── wp-trackback.php
    └── xmlrpc.php

メディアファイル・テーマ・プラグインなどのリストア

wp-contentフォルダを上記のwpフォルダ内に上書きコピーする。(1分)

ドメイン名の書き換え

「WordPress の引越し – WordPress Codex 日本語版」にて推奨されている「WordPressデータベース用検索と置換スクリプト」を下記よりダウンロード
Database Search and Replace Script in PHP | interconnect/it
下記のように”wp”フォルダの直下に解凍した”Search-Replace-DB-master”フォルダを移動する。

aronaswp
├── db-data
│   └── wordpress.sql
├── docker-compose.yml
└── wp
    ├── Search-Replace-DB-master
    ├── index.php
    ├── license.txt
(以下略)

http://localhost:8888/Search-Replace-DB-master/にアクセス

元のドメインが”example.com”だった場合は上記のように変換先を”localhost:8888″に指定して、”live run”をクリックして変換。
元のwordpressがサブディレクトリ”path”にインストールされていた場合は下記のように先にpath付きで置換した後に、上記のようにドメインのみの部分を置換する。(5分)

http://localhost:8888/にリストア完了。ここまで合計15分。

確認・その他

http://localhost:8888/wp-admin
でダッシュボードに入って、プラグインを有効化したり、アップデートがあれば行う。
ローカルの環境(buildしたcontainer)を保存したままサービス停止するのは

$ docker-compose down

やり直すためにbuildしたcontainerを停止した上に削除するには

$ docker-compose down -v

バックグラウンド(daemon)ではなく、ログを出力させながらdocker-composeさせるには

$ docker-compose up

http://localhost:8080でphpMyAdminにてDB内容の確認可能。
treeコマンドは必要あればhomebrewでインストール

$ brew install tree

以上。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA