Wordpressローカル開発環境の作成方法(docker編)
事前準備
事前にdockerとdocker-composeをインストールしておきます。インストール方法についてはこちらの記事を参考にしてください。
Windows10でdockerを使用する方法(docker on WSL2編)
Wordpressのインストール
-
Wordpressの環境を作成するフォルダを作成します。
WSL2ディストリビューションのターミナル上でWordpressプロジェクト用のディレクトリを作成します。ディレクトリを作成する場所はどこでも問題ありません。mkdir my-wordpress
-
作成したWordpressプロジェクト用のディレクトリに移動します。
cd my-wordpress
-
docker-compose.xml
を作成します。
このファイルには、WordPressでサイトを作るために必要なSQLサーバー(ここではMySQLを使っています)、WordPressを作成するための設定を記載します。また、加えてMySQLサーバーをブラウザから管理するためのphpMyAdminを作成するための設定を記載しています。なお、MySQLのバージョンはアップデートされているかもしれませんので、適宜変えてください。version: '3.3' services: db: image: mysql:5.7 volumes: - ./db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - ./wordpress/www/html:/var/www/html ports: - "8000:80" restart: always environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress phpmyadmin: image: phpmyadmin/phpmyadmin:latest restart: always depends_on: - db ports: - 8888:80
-
docker-composeをビルドします。
docker-compose.xml
に従ってMySQLとWordPressのインストールと設定が実行されます。sudo docker-compose up -d
-
ブラウザで動作確認をする。
ブラウザでlocalhost:8000
へアクセスしてWordPressの画面が表示されることを確認します。
-
MySQLとWordPressのデータがあることを確認する。
docker-compose.xml
のディレクトリを確認すると、db_data
ディレクトリとwordpress
ディレクトリが作成されていることを確認します。これはそれぞれ、MySQLのデータとWordPressのデータになります。WordPressのテーマのカスタマイズなどはこのwordpress
ディレクトリ内のデータを編集すればOKです。 -
これでWordpressの環境ができました。
docker-compose.ymlファイルの解説
インデントが大事
docker-compose.ymlのインデントはとても重要です。インデントが少しでもおかしいと、すぐにパースエラーになります。パースエラーがでたらインデントがそろっていないか確認してください。
ports
ports
はローカルのポートとdockerコンテナのポートを紐づける設定になります。上記のdocker-compose.ymlでは
ports:
- "8000:80"
となっていますが、これはローカルポートの8000ポート
とdockerコンテナの80ポート
を紐づけることを示しています。
volumes
volumes
はdockerコンテナのファイルをローカルにマウントする設定になります。dockerは通常メモリ上で動作するので、dockerを停止するとデータは削除されてしまいます。そこで、dockerコンテナのファイルをローカルにマウントすることで、dockerを停止してもデータが削除されないようにしています。これを永続化といいます。
例えば、先ほどのdocker-compose.ymlではdbのvolumesは以下のようになっていました。これは、dockerコンテナの/var/lib/mysql
をローカルの./db_data
にマウントすることを意味しています。
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
(省略)
Appendix
Wordpressをサブフォルダにインストールする方法
複数のサイトを構築する場合など、Wordpressをサブフォルダにインストールしたい場合があります。この場合は以下のdocker-compose.ymlを使います。
違いとしては、working_dir: /var/www/html/blog
を追加しただけです。
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wordpress/www/html:/var/www/html
working_dir: /var/www/html/blog
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
depends_on:
- db
ports:
- 8888:80
最後まで読んでいただきありがとうございます。
また読んでくださいませ。
そんじゃーね。