WordPressを使いたい
Dockerを使ってWordPressを構築してみます。
作りたいもの
作りたいWordPress環境に必要そうなアイテムを書き出しておきます。 少しずつ調べながら進めていきます。
WordPress / PHP / MySQL
wp-cli
マルチサイト環境
テーマのインストールと有効化
記事の作成
記事のインポート
コンテナを起動したい
1$ docker container run -d -p 8080:80 --name my-wordpress wordpress
とりあえず詳細なオプションは考えずにコンテナを起動しました。
http://localhost:8080
でアクセスし、構築画面にアクセスできることを確認しました。
ダイアログに沿って、データベース名(wordpress
)、データベースのユーザー名(wordpress
)、データベースのパスワード(wordpress
)、データベースホスト(localhost
)、テーブル接頭辞(wp_
)を入力しました。
結果、「データベース接続確立エラー」がでました。
データベース系の設定を適当に入力したためか、そもそもデータベースが起動していないからかもしれません。
docker-compose.yml
を使って、環境変数を設定した構築を試してみます。
データベースの選定
WordPressのデータベースとしてMySQLとMariaDBが利用できます。 さらにMySQLのバージョンは5系と8系があります。 整理すると、次の3種類です
MySQL 5
MySQL 8
MariaDB
docker-compose.yml
# docker-wordpress/docker-compose.yml
version: "3"
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: "1"
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
設定の概要
version
:
Docker Composeのフォーマットを指定します。最新のフォーマットのバージョン(3系
)を指定します。
services
:
利用するコンテナの設定を定義します。WordPress用の設定と、データベース(MySQL)用の設定を定義します。
volumes
:
データの保存先を指定します。ここではそれぞれnamed volume
で定義していますが、bind volume
にもできます。というか、たぶんbind volume
にしておいたほうがよい。
DockerHubの
WordPressの設定
WordPressの設定はwp-config.php
に記述します。
docker-compose.yml
内の環境変数(WORDPRESS_*
ではじまる変数)でも変更できます。
-e WORDPRESS_DB_HOST=...
-e WORDPRESS_DB_USER=...
-e WORDPRESS_DB_PASSWORD=...
-e WORDPRESS_DB_NAME=...
-e WORDPRESS_TABLE_PREFIX=...
-e WORDPRESS_DEBUG=1