読者です 読者をやめる 読者になる 読者になる

VCCWで既存のWPローカル開発環境を作ってみた(仮)

ちょうどVCCWを利用して既存のWPサイトをローカルで開発環境を立ちあげられるようにしたので自分のメモを中心に書きたいと思います。

かなり無知な点が多々あるのでご指摘いただけるととても嬉しいです。

 

前提とゴール

今回は前提としてすでにWPで開発したもののリポジトリがあることとします。

またゴールはそのリポジトリをcloneして、開発環境をcloneしてきて、vagrant upってやるといい感じになることです。(いろいろ調べたけど、あと一歩という感じの記事ばかりだった...)

 

準備

vagrantの利用が前提となっているのでとりあえず以下をインストールして準備をします。

 

とりあえず。。。

 とりあえずvccwのサイトからcloneするなりzipで落とすなりしてvccwを持ってきます。

今回のディレクトリ構造としては、developの直下に開発のリポジトリとvccwを置く形になります。(tree構造がうまくかけなかった・・・)

 

れっつかすたまいず!

・site.ymlの編集

早速カスタマイズしていきます。

公式サイトがとても親切にかいててくれているのでそれを参考にして、まずprovision下にあるdefault.ymlをコピーしてsite.ymlという名前でvccw直下へ配置します。

そして

という感じにvagrantの共有フォルダを指定してる部分を開発ディレクトリに指定してやります。

 
 ・wordpressをインストールしないようにする

2つあった難関の1つ目でした(知識がなかっただけ...)

vccwってなにもないとそのままwordpressがインストールされるわけですよ。まぁ当たり前なんですが。。。。今回はすでに既存のものがあるのでそれをそのまま使いたいのでなんとかならないかなぁってやってたら、provision/site-cookbooks/wpcli/recipes/install.rb周りで何かインストールしてるっぽいのでそこを全部コメントアウトします(正直Vagrantfileで読み込まないようにしてしまってもいいですw

ただ今回はDBを作成するところをそのまま流用したかったのでrecipeの中身を消すようにしました。

この部分だけ残す↓↓

 

 ・任意のDBを作成するようにする

さきほどいじったrecipeのDBを作成しているところなんですが、デフォルトだとwordpressっていう名前のDBができてしまうので任意のものになるように書き換えます。この部分は変数で渡されているのでベタ書きにしてもいんですが、気に食わないのでちゃんと元から変更します。

provision/site-cookbooks/wpcli/attributes/default.rb

これを

こうする

 

・DBのインポートをする

とりあえずインストールを防ぐことと、dbの作成はできましたがwordpressはこれだけでは動きません。DBをインポートしていい感じにしてあげないと動いてくれないわけですね。

なのでDBを自動でインポートしてくれるスクリプトを書きます。といっても公式に書かれているようにprovision-post.shというスクリプトをvccw直下においておけば、provisionが終わった後に自動で実行してくれるらしいのでとても楽ちんです。

 

とりあえずこんな感じです。

既存の開発リポジトリにDBのダンプファイルがある前提としてそこからimportする形です。

 

・wp-config.phpをちょっといじる

無事DBをimportできるようにしましたら、開発ディレクトリの方をすこしいじります。

実はここ躓いた2つ目でした。。。。(完全に忘れてた

wp-config.phpの中身が本番へ向いてしまっているのでローカルの方へ向けてやります。

まぁこんな感じ。

 

・仕上げ

ここまで来るとあとは仕上げ作業です。

DBをインポート下のはいいのですが、このままだと使えません。

ダンプしたファイルは本番サーバーを向いているのでそれを置換してあげないといけないわけです。直接置換をしてもいいとおもいきやどうやらシリアライズというものが施されているらしく正常に動かない場合があるのでいい感じにしてくれるスクリプトを使います。

こちらのサイトからスクリプトをダウンロードしてきて解凍して、そのまま開発ディレクトリにいれ、ブラウザからアクセスします。

そして置換したい文字とローカルのアドレスをいれて、"live run"するといい感じにDBが置き換わってくれます。

あとはスクリプトを削除して、あとは置き換わったDBをエクスポートしておいてインポートするように微修正すればOKです!

あとはvccwディレクトリをgitで管理して配布すればいい感じになると思います。

 

終わり

あまりにも自分の知識不足によって時間がかかりすぎました・・・・。(1週間も。。。。

またこれは完成体ではなかったりするのでもっとスマートにできるように修正が可能です。。していきます。。。

至らない点は随時ご指摘よろしくお願いします。