初めに
WordPressを5.9から6.2へバーションアップする事になり、PHPバージョン違いによるWordPressへの影響を「見た目」で確認したく、Dockerを用い稼働確認をした事を共有いたします。動作確認用のWordPress環境は、PHPとWordPressバージョンが異なる環境を複数作成して、並べて違いを確認したかったのと、環境を作っては、消し、作っては、消し・・・・を手軽に繰り返したかったのでDockerを用いました。
PHP7.2で動くのか?
WordPress6.2で必要としている推奨環境は公式ページで確認すると以下です
- PHP バージョン 7.4 以上
- MySQL バージョン 5.7 以上、または MariaDB バージョン 10.3 以上。
- HTTPS 対応
今回の動作確認の発端はPHPバージョン7.4以上要求に対してホスティング先のPHPが7.3止まりで条件を満たしていない事です。WordPressには上記の「推奨環境」以外に「実際にやってみて稼働すればOK」的な概念があり、PHP7.4以下でも稼働します。念のためWordPress5.9、PHP7.2の環境を作り、PHPが7.2のままWordPressのバーションを6.2へバーションアップし動作確認をしました。
Dockerイメージを探す
WordPressが5.9、PHP7.2のイメージがないかDocker hubの①検索欄に「wordpress」を指定し、②Tagsタブをクリック後③検索欄にphp7.2を指定しました。検索結果は沢山表示されます。④今回は「php7.2」イメージを用いる事にしました。
④「php7.2」をクリックし下図を表示すると「ENV WORDPRESS_VERSION=5.6」との表記からWordPressバージョンは5.9ではなく5.6のようです。ですが「低くければ良いだろう」と考え、この「php7.2」イメージを使う事にしました。
docker-compse.ymlの修正
今回のようなテスト確認用途以外でも、MySQLを操作するphpMyAdminがあると便利です。しかしdocker hub記載の標準docker-compose.ymlにはphpMyAdmin記述を発見できませんでしたので、下記「黄色マーク」字のように修正しました。
version: '3.1'
services:
wordpress:
image: wordpress:php7.2
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
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8081:80
environment:
PMA_HOST: db
PMA_USER: exampleuser
PMA_PASSWORD: examplepass
volumes:
wordpress:
db:
phpmyadmin:
上記docker-compose.ymlを適用なフォルダー(下記の場合/var/docker/wp1)に作成し、「docker-compose up -d」コマンドを実行します。イメージがローカルに保存されていない初めての実行時では2分程度、2回目以降では秒殺で3台のサーバー(wordpress、MySQL、phpMyAdmin)が作成されます。
wordpressサーバーへは「http://localhost:8080」で、phpMyAdminサーバーへは「http://localhost:8081」で接続します。
便利なコマンド
動作確認用のWordPress環境を作っては、消し、作っては、消し・・・・を実行するにはコンテナ名を一つ一つ指定するよりも一気に停止/削除が出来ると便利です。
No | 用途 | コマンド |
---|---|---|
1 | 全てのコンテナ停止 | docker stop $(docker ps -q -a) |
2 | 全てのコンテナ削除 | docker rm $(docker ps -q -a) |
3 | 全てのボリューム削除 | docker volume rm $(docker volume ls -q) |
ボリューム削除を紹介する理由は構成した設定がボリューム残っているので、例えばコンテナを削除し「docker-compose up -d」で再作成しても削除したハズの直前コンテナ設定構成で起動するからです。
関連リンク
お問合せ
https://alpcom.co.jp/contact/
アルファー・コミュニケーションズ公式YouTube
https://www.youtube.com/channel/UCTqwZsRRpAs9NPTUz2yH3ow/videos