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

データのバックアップ

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

PS C:\Users\tosh> cd .\Downloads\
PS C:\Users\tosh\Downloads> ls
    ディレクトリ: C:\Users\tosh\Downloads
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       2018/02/18     14:16                wp-content
-a----       2018/02/18     14:13        1337244 wordpress.sql

Docker for Windowsのインストール

Install Docker for Windows | Docker Documentation
よりdockerをインストールする。一度ログアウトさせられ、更に再起動する。(6分)

docker-compose.ymlの作成

[windows]キー+[R]にて”powershell”と入力し、powershellを起動する。ローカル環境用のフォルダを作成する。下記では”aronaswp”だが、フォルダ名は何でもOK。

PS C:\Users\tosh\Downloads> cd ..
PS C:\Users\tosh> mkdir aronaswp/db-data
PS C:\Users\tosh> cd aronaswp
PS C:\Users\tosh\aronaswp> ni -type file docker-compose.yml
PS C:\Users\tosh\aronaswp> ii docker-compose.yml

ノートパッドでdocker-compose.ymlを開き、下記をコピペして保存。(2分)

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

ローカル環境の立ち上げ

フォルダを開いてwordpress.sqlを移動する

PS C:\Users\tosh\aronaswp> cp ..\Downloads\wordpress.sql .\db-data\
PS C:\Users\tosh\aronaswp> tree . /f
フォルダー パスの一覧
ボリューム シリアル番号は 00000028 AE0F:1A50 です
C:\USERS\TOSH\ARONASWP
│  docker-compose.yml
│
└─db-data
        wordpress.sql

docker-composeを走らせる

PS C:\Users\tosh\aronaswp> docker-compose up -d

途中でcドライブをシェアしますか、Firewallでのアクセス許可しますか、など質問が来るので全てyesと答える(4分)
下記のエラーが出る場合にはDockerでpullやrunを行ったときイメージダウンロードができなくなった問題の解決法 – 佐藤の屋敷に沿って、DNSサーバーを固定すると上手くいく。

PS C:\Users\tosh\aronaswp> docker-compose up -d
Pulling mysql (mysql:latest)...
ERROR: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

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

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

PS C:\Users\tosh\aronaswp> cp ..\Downloads\wp-content\ .\wp\

ドメイン名の書き換え

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

PS C:\Users\tosh\aronaswp> cp ..\Downloads\Search-Replace-DB-3-1-0-emaildownloads\Search-Replace-DB-master\ .\wp\

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

元のドメインが”example.com”で”WordPress”というサブディレクトリにインストールされていた場合は
replace [example.com/WordPress] with [localhost:8888]と指定して、[live run]をクリックして変換。更に
replace [example.com] with [localhost:8888]と指定して、[live run]をクリックして変換。
ルートディレクトリにインストールされていた場合は2つ目の変換だけでOK(5分)

これでhttp://localhost:8888/にリストア完了。ここまで合計22分。
* Macでの同じ操作。

コメントを残す

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

CAPTCHA