
目次
Synology DockerでWordPress環境を作る

今回は、Synology NASのDocker上でWordPress環境を構築する方法を解説します。
Docker上でWordPressを構成すれば、WordPressの構成ファイルをエクスプローラ上から直接操作できるようになり、HyperBuckupと併用したロールバック機能など自由度の高いローカルWordPress環境を作れます。
WordPressカスタマイズに踏み込んだ場合の、非常に便利なWordPress開発環境として活用できます。
WordPressパッケージはつかわない

Synology NASのパッケージセンターにはWordPressパッケージも提供されています。
Synology NAS上でDockerパッケージに対応しているのは “+”シリーズだけなので、”j”, “play” などのグレードの場合はこちらのパッケージ版WordPressを使用します。
よりGUI的な操作で構成したり、直感的なわかりやすさもありますが、こちらのWordPress構築方法は、別途何種類かのパッケージを追加でインストールしたり、それぞれのパッケージ操作の煩雑さもあるので、今回は管理優先でDocker上でのWordPress構築方法について解説します。

環境構成
今回使用する環境は下記に表します。Synology NASの構成でGUI主体による操作なのは少し特殊ですが、コンソールでログインすれば、Synology NAS上でも通常のLinuxのDockerと同じように使用することができます。
項目 | Version |
Synology DS916+ | DSM 6.2.2-24922 Update4 |
Docker | 18.09.8 |
WordPress | latest |
MySQL | 5.6 |
ディレクトリ構成
voltpress
voltpress_conf
└── php.ini
voltpress_db
フォルダ名はvoltpressと命名していますが、自由に変更してもOKです。変更する場合には永続化フォルダを指定する時に対応するパスにします。
イメージのダウンロード
DockerのWordPressパッケージを使用する場合、別途データベースコンテナの構成が必要です。
WordPressから接続できればどのデータベースイメージを使用しても問題ありませんが、今回はMySQLコンテナを使用します。
MySQL8はWordPressを使用する時に認証のトラブルが起きやすいため、今回はMySQL5.7イメージを使用します。


MySQLコンテナの環境設定

イメージからMySQLを起動してコンテナを構成します。
MySQLコンテナの詳細設定で、WordPressコンテナからアクセスできる環境設定と永続化の設定を追記します。
環境変数

MYSQL_ROOT_PASSWORD root
MYSQL_DATABASE wordpress
MYSQL_USER wordpress
MYSQL_PASSWORD wordpress
WordPressコンテナからMySQLコンテナに接続するための設定です。
永続化(ボリューム)
/voltpress_db : /var/lib/mysql
Dockerコンテナは再起動するとデータを消失してしまうので、データの永続化のため外部のフォルダを指定します。
WordPressコンテナの環境設定

Synology Dockerのイメージ一覧から、MySQLイメージを起動してコンテナを構成します。
ウィンドウ左下の詳細設定ボタンから、MySQLへの接続や永続化を設定します。
環境変数

WORDPRESS_DB_HOST voltpress_db
WORDPRESS_DB_USER wordpress
WORDPRESS_DB_PASSWORD wordpress
WOEDPRESS_DB_NAME wordpress
前項のMySQLのコンテナ名と環境変数の情報をWordPress側の環境変数にも追記します。
リンク

前項で作成したMySQLコンテナをリンクします。コンテナはプルダウンメニューで指定、エイリアスはコンテナ名と同名にします。
永続化(ボリューム)

/voltpress : /var/www/html
WordPressのメディア・テーマなどを保存するwww以下のフォルダを永続化します。
/usr/local/etc/php/conf.d/php.ini
upload_max_filesize=10M
post_max_size=10M
WordPress DockerのPHPは、標準設定の状態でアップロードサイズが2Mに制限されているため、大きなサイズの画像やプラグインのアップロード時のアップロードサイズ制限に引っかかる場合があります。
対応として”php.ini”を作成しておき、アップロード制限のファイルサイズを書き換えたファイルを永続化しておきます。
/voltpress_conf/php.ini : /usr/local/etc/php/conf.d/php.ini
本来はdocker cpコマンドでコンテナ内部のphp.iniを書き換えるのが一般的な方法ですが、今回はより簡単な方法として、永続化によるコンフィグファイルの外部読み出しで対応します。
ポート設定

ブラウザ上からアクセスするポートを指定します。
LAN内の公開の場合は他のコンテナ・サービスと競合しない値を、外部公開を行う場合にはhttp(80)またはhttps(443)のポート番号を割り当てます。
コンテナを起動して動作確認
