vccwとWordMoveでWordPress開発が便利になるし勉強にもなるよという話
.久々に書くよ。2015のGWを使ってざーっと調べたメモとして。
wordpressの開発環境とデプロイに関して調べてて、というかWP-CLI使おうかなーって重い腰を上げただけなんだけど、wordpressでも結構モダンな、いろいろおもしろい発見があるもんだなとおもった。やる人はちゃんとやってんだなーって。(受託のお仕事の場合、意識しなければこれら何一つ触らずに済ませれる)
- 開発環境:vagrant / vccw / vvv / chef / Wocker / Docker
- WordPress:WP-CLI / WordMove
- 開発作法:TDD / BDD / CI
- フロントエンド: アセットパイプライン (grunt / gulp)
ひとつひとつ、掘り下げてたらきりがないので、エントリのタイトルのとおり、vccwとWordMoveで開発するのがいいかもって話、なにがいいかってところだけ書いて、一つ一つは別エントリで掘り下げていくことにする。今回はコードは書かない。
ローカル環境の見直し
LAMP環境の用意は、macであればMAMPなんかを手軽に使って小規模だと満足。
チーム開発になると、環境を配布できると点でVagrantを活用するメリットがでてくる。
Dockerは詳しくないのでわからないけど、似たようなもんだと思っている。
チーム開発ってほどではない場合、Vagrant使うほどでもないのが正直な話。
数ギガの仮想イメージを生成するし、小規模開発には不向きだとも思う。
で、本題、wordpressの場合、Vagrantのboxとして、vccw、vvvの2種が有名。
- vccw:後述。提供は@miya0001さん(日本人)。
- vvv:Wordpressのコア開発で用いられている。webサーバはapacheではなくnginxなのかな。
- Vagrantではないが、WordpressのDockerコンテナでWockerというのもある。
未だ触ったこと無いので、今度試してみたいと思う。
で、僕が実際さわってみて、MAMPから乗り換えてもいいかもしれないなと思ったのは次の一つの理由。
vccwを利用すると、いろいろなツールがそろっていて親切で、優しい。vagrant shareが手軽。
これだけ。
どんなツールがはいってるかだけど、次の通り。
vccwのVagrantの中身の抜粋
- LAMP環境
- WP-CLI
- Node.js(grunt、gulp)
- git/Subversion
- Sass
- WordMove
NodeやRubyが入ってて、sassなんか使える所あたりが、テーマ開発者にも嬉しい所かもしれない。
正直、Vagrantとかを利用する人であればRubyやNodeが自分のMacで使える環境だろうから、
Vagrantを使わずとも、同じ環境をつくれるわけだし、MAMPでいいかもしれないけどね。
個人的に、
あんまりbrewとかnodeとかrubyとかで自分のmacにあれやこれや入れたくないというのもあって、Vagrantを使うと、Macは汚れないから精神面で優しいかなとも思う。だって、
- 自分のホームディレクトリの不可視ファイル/フォルダの多さに絶句してるし。
- macの”/usr/lib/”や”/usr/local/lib/”フォルダなんて、ホントは覗きたくないし。
- 「brew doctor」のエラーを直す作業でさえ、なんか精神的に不健康な気持ちになるし。
もう手遅れなんですけどね。
。。。
まぁいいや。
あ、あと、メリットとして、Vagrant shareがすこぶる便利ってのをつけ加えておかないといけない。
ちょっとしたプロトタイプを見せたいだけなのに、わざわざレンサバに置いて、DNS書きかえたり、って手間。
ちなみに僕は、vccwに感動してvccwの作者の方が書いてるwordpressプラグイン本「サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル」を、買って一気に読了してしまった。別の発見もあってすごく良著だった。付箋の多さが物語っている・・・
デプロイ手順を再考
BeforeとAfterでこれまでの手順がどうだったかを記してみる。
Before
- mysqldumpやphpmyadminからメンテサイトのDBデータダウンロード
- FTPでファイルダウンロード
- ローカル環境にDBインポート
- dumpファイルのPath情報の置き換え。ローカル開発用に。
- ローカル環境を用意。LAMP環境
- ローカル環境にDB登録。
- テーマ/プラグイン開発。
- mysqldumpやphpmyadminからデプロイ用DBデータ用意(1の逆)
- dumpファイルのPathデータの置き換え。(4の逆)
- 本番環境へDBインポート(3の逆)
- FTPで本番環境へアップロード(2の逆)
では、vccwとWordMoveを使うとどうなるか
After
- vccw環境の用意(Before:5の事)
- WordMove設定ファイルの用意(FTPの接続情報、本番環境のDB接続情報などの設定)
- ローカル環境へプル(Before:1,2,3,4,6の事)
- テーマ/プラグイン開発
- 本番環境へデプロイpush(Before:8,9,10,11の事)
となる。すごい短縮っぷり。
なかでも特段すごいのが、「WordMove」。Rubyで書かれてるデプロイツール。
「After:3、5」をカバーするもの。サーバサイドから何もかも引っ張ってこれる上、シリアライズされているDBレコードまでもうまく置換してくれる。
ツールはあったけど、Push/Pullとその置換の自動化を一気通貫でやってくれるところがすごすぎる。
とまぁこんな感じ。
最後消化不良ですけど、コード書きたくなかったので、次のエントリで、詳しくWordMoveについて触れていきたいと思う。