最近のWordPressのテーマのローカル開発環境 on Docker

2018年2月時点のもの。

使い方

で、WordPressが使える。
もちろんDockerがインストールされている必要はある。

実際に使い始める前に

そのテーマ開発専用のリポジトリとして作り直す。

$ rm -rf .git
$ git init
$ git add *
$ git add .env .gitignore
$ git commit -m "This is my theme!"

開発するテーマファイルの置き場所

src以下に置く。

本番や検証環境のサーバーにアップロードする場合はsrc以下をアップロードするとよい。
CIと連動させてエレガントにやるもよし、rsyncで手堅くやるもよし、SCPやFTPでちまちまやるもよし(どれが最適かは運用者のスキルによる)

おまけのフィーチャー

phpMyAdmin

プラグインの動作を検証する際などDBの内容をのぞきたいことがあるのでphpMyAdminを使えるようにしてある。テストデータ投入にも便利。

http://locahost:8080/ にアクセス。

DBのパスワードなどは.envに定義してあるのでそれを参照。

WP-CLI

WP-CLIを使えると便利なことがあるので一応入れてある。

ThemeCheck

テーマ開発のセオリーとしてThemeCheckプラグインをあらかじめ入れてある。

環境のカスタマイズ

PHP拡張を入れる

Dockerfileに拡張をインストールして有効にする行を書き加えてdocker-compose build

サンプルとして以下のような感じで。

RUN apt-get install -y php-pear libyaml-dev && pecl install yaml-1.3.1
RUN echo "extension=yaml.so" > /usr/local/etc/php/conf.d/docker-php-ext-yaml.ini

PHPのバージョン

DockerfileでWordPress公式イメージを読み込んでいるのでそれに準ずる。

FROM wordpress:latest

2018年2月現在のlatestは7.2。

何らかの事情によりPHP5.6を使いたければ

FROM wordpress:5.6

のように書き換えればOK。

php.iniの書き換え

Dockerイメージ構築時にdevenv/php.iniが/usr/local/etc/php/conf.d/php.iniに配置される。

ので、php.iniの内容を変更したければdevenv/php.iniを書き換え、docker-compose buildでイメージを再構築する。

wp-config.phpの書き換え

Dockerイメージ構築時にdevenv/wp-config.phpが/var/www/html/wp-config.phpに配置される。

ので、wp-config.phpの内容を変更したければdevenv/wp-config.phpを書き換え、docker-compose buildでイメージを再構築する。

おまけ情報

インストールしたプラグインはどこに保存されているか

devenv/plugins以下に保存されている。
Gitのリポジトリにも含まれるので、開発メンバー間でインストールしたプラグインを共有できる。

各自の環境でインストール作業は必要。新しくプラグインを入れた場合やプラグインのバージョンが変わった場合など。

自作プラグインのインストール

WordPressのプラグインディレクトリに登録されていないプラグインはdevenv/plugins以下に置けばインストール可能。

Gitのsubmoduleとして丁寧に管理するもよし、テーマとまとめて同じリポジトリで雑に管理するもよし。

アップロードしたファイルはどこに保存されているか

tmp/wp-content-uploads以下に保存されている。

コンテナを起ち上げ直したときにテストデータとして使っているファイルが消えないようにとの配慮。
Gitのリポジトリには含まれない。

テストデータとして他の環境からuploadsをコピーしたい場合はtmp/wp-content-uploads以下に置けばよい。

言語ファイルがdevenv以下に保持されているのはなぜか

/var/www/html/wp-content/languagesの内容を保持しておかないと、コンテナを起ち上げ直すたびに言語選択の画面になるから。