DockerでWordPressを手軽に動かす
WordPressを自分のPC上で動かします。Dockerを使えば簡単に起動できますので、手順を簡単に記載します。(Dockerはインストールしてある前提です)
docker-compose.yml
ファイルの作成
下記の内容で任意のフォルダ内に、docker-compose.yml
を作成します。dockerHubの内容を参考にしています。
version: '3.1'
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_data:/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_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
※下記のエラーに該当する場合、docker-compose.yml
を修正します。
! db The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
対応するDockerイメージが存在しないことを示しているエラーです。
特に古いバージョンのイメージ(例えば mysql:5.7
)は、ARM64アーキテクチャでのサポートがない可能性があります。そのためmysql8.0
を指定します。
version: '3.1'
services:
wordpress:
image: wordpress:latest
platform: linux/arm64/v8
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- ./wordpress_data:/var/www/html
db:
image: mysql:8.0
platform: linux/arm64/v8
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
コンテナの起動
% docker-compose up -d
...
...
[+] Running 5/5
✔ Network wordpress_default Created 1.7s
✔ Volume "wordpress_wordpress_data" Created 0.1s
✔ Volume "wordpress_db_data" Created 0.1s
✔ Container wordpress-wordpress-1 Started 26.2s
✔ Container wordpress-db-1 Started
ブラウザで確認する
http://localhost:8080/
にアクセスします。
ここから各種設定に進み、利用開始できます。
テーマをアップロードできないので修正
テーマをアップロードするときに下記のエラーが出ていました。
POST Content-Length of 15575284 bytes exceeds the limit of 8388608 bytes in Unknown
このエラーメッセージは、POSTリクエストのContent-LengthがPHPの設定で許可されている最大値を超えていることを示しています。
この場合、アップロードしようとしているWordPressのテーマのサイズが、PHPの設定で許可されている最大POSTサイズを超えているようです。
この問題を解決するには、php.ini
ファイルの post_max_size
の値を増やす必要があります。
php.ini
の作成
例として64Mを指定しました。
post_max_size = 64M
upload_max_filesize = 64M
docker-compose.yml
を修正
php.iniの記述を追加します。
...
...
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_data:/var/www/html
- ./php.ini:/usr/local/etc/php/conf.d/uploads.ini
...
...
上記修正後、コンテナを再起動します。