0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerComposeでWordpressをローカルに再現する

Posted at

すでに走ってるWordpress、ローカルに再現したくない??

※dockerインストールについては割愛させていただきます。

##ディレクトリ構造
コンテナ作成前

├── db-data
│   └── wordpress.sql.zip
├── docker-compose.yml
└── .env

##データの準備
###wp-contentの取得
テーマファイルなどが入ったwp-contentフォルダをftpサーバなどを介して取得しておく。

###sqlダンプファイルの取得
サーバーから直接エクスポートもしくは、BackWPupとういプラグインで簡単にデータをバックアップし取得することができる。
zip形式で取得し、そのままdb-dataディレクトリ下に設置する。

BackWPupの使い方について参考サイト:
BackWPUpで確実にWordPressのバックアップを取る方法

##docker-compose.ymlを作成

docker-compose.yml
version: '3.3'
services:
  mysql:
    build:
      context: ./docker/mysql/
    restart: always
    environment:
      - MYSQL_DATABASE
      - MYSQL_USER
      - MYSQL_PASSWORD
      - MYSQL_ROOT_PASSWORD
    ports:
      - 3306:3306
    volumes:
      - mysql_data:/var/lib/mysql
      - ./docker/mysql/init:/docker-entrypoint-initdb.d
  
  wordpress:
    build:
      context: .
      dockerfile: ./docker/wordpress/Dockerfile
    depends_on:
      - mysql
    ports:
      - 8080:80
    restart: always
    environment:
      - WORDPRESS_DB_HOST
      - WORDPRESS_DB_USER
      - WORDPRESS_DB_PASSWORD
      - WORDPRESS_DB_NAME
    volumes:
      - ./:/var/www/html
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    restart: always
    environment:
      - PMA_ARBITRARY
      - PMA_HOSTS
      - PMA_USER
      - PMA_PASSWORD
    depends_on:
      - mysql
    ports:
      - 8888:80
volumes:
  mysql_data:

###補足
OS起動時に自動的にこのコンテナを起動させたくない場合は

restart: always

の記述を

restart: no

に変更すると良いと思います。

##envファイルを作成
ルートディレクトリ直下に.envファイルを設置します

.env
MYSQL_DATABASE=wordpress
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_ROOT_PASSWORD=root
WORDPRESS_DB_HOST=mysql:3306
WORDPRESS_DB_USER=root
WORDPRESS_DB_PASSWORD=root
WORDPRESS_DB_NAME=wordpress
PMA_ARBITRARY=1
PMA_HOSTS=mysql
PMA_USER=root
PMA_PASSWORD=root

#dockerコンテナ起動
現在起動中のコンテナを確認

docker-compose ps

ymlで設定したポートと同じものがあればバッティングしてしまうので
起動中のコンテナは一度停止してください。

そしていよいよコンテナ起動。

docker-compose up -d

##wp-contentの入れ替え
起動するとwordpress関連のファイルが自動的に作成されるので、
ルートディレクトリ直下のwp-content/の中身を手元に準備しておいたバックアップファイルでまるごと置換する。

##データベースのドメイン置換
localhost:8888にアクセスし、phpmyadminでドメインを置換していく。
現在使用しているWordpressサイトのURLを http://localhost:8080/ で置換することで、
ローカル環境でWPを使用することができるようになる。

詳しい手順については、先人のありがたいサイトを参考にしていただくと大変わかりやすいかと思います。
(人のふんどしでなんとやら...)

phpMyAdminを使ってWordPressを別のドメインで使えるようにする方法

##Wordpress起動
http://localhost:8080/ にアクセス。

##補足
コンテナ停止

docker-compose stop

##まとめ
以上で、現在走っているWordpressサイトをローカルに再現することができました。
Dockerfileよりdocker-compose.ymlだと記述が完結でわかりやすくていいですね。
選ばれたのはdocker-composeでした。おわり。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?