最近のWordPressのテーマのローカル開発環境 on Docker
2018年2月時点のもの。
使い方
- GitHubからakahigeg/wordpress-theme-dev-localをclone
- docker-compose up -d
- http://locahost:8888/ にアクセス
で、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の内容を保持しておかないと、コンテナを起ち上げ直すたびに言語選択の画面になるから。