ブログ

Dockerを活用しWordPressバージョンアップの確認

初めに

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

データ活用支援サービス
https://alpcom.co.jp/products/data_utilization/

pagetop