vagrant を使って Virtualbox に Unbutn12.10 のvmを起動
apache2やphp、MySQL/PostgreSQLをインストール
Databaseと接続用ユーザを作成して、CakePHPの app/Config/Database.php を設置
とここまで我が家の Bフレッツ光 + MacBookAir(SSD)環境で、だいたい15分程度
git clone や submodule update、設定ファイルの書き換えを入れても
30分以内にはPHPのコードを書き始める環境が揃います。
コードはこちら
http://github.com/makies/vagrant-cakephp
自前のVagrantBox
Ubuntu12.10のboxが見つからなかったので、自前で.isoからインストールして作成しました。
dropboxに上げてあります。
(box が vagrant に追加されてない場合もここからDLされます)
https://www.dropbox.com/s/3fz83xlc9l1cbmj/ubuntu1210_amd64.box
opscode のレシピを多用
使ったレシピはほとんどが、opscodeが公開しているもので、
githubから必要な物を適宜 git submodule add して使っています。
https://github.com/opscode-cookbooks
パッケージになっているものをインストールするだけなら自分でレシピを書いても良かったのですが、
opscodeのレシピを多用している理由はいくつかありました。
- 多数のプラットフォームに対応している
- 公式サイトから細かいバージョンまで指定してソースコードをDLしてインストールできる
- パッケージインストール以外のレシピの書き方がわからなかったところを補う - Database作成、Databaseにユーザ作成 など
残っている課題
開発環境
- "いつもの環境"を自動構築させたい
- CakePHPのソースコードは別途設置する必要がある
- chef.json に指定した Git Repository から自動で clone するようにしたい
- phppgadmin に ホストOSからアクセスしたい
- apacheの設定を一行書き換える必要があり、これを手作業でやるのは効率悪く漏れやすいので自動で行いたい
セキュリティ問題
- apacheをvagrantユーザで動作させている
- パスワードが暗号化されていない
- chefには暗号化する仕組みが用意されているのに、うまく使えずに使っていないので再チャレンジしたい
- 参考になりそうな記事: ChefでのMySQLパスワードの扱い http://matetsu.hatenablog.com/entry/2012/02/12/020118
CakePHP問題
- CakePHP特有の部分を別レシピにすれば良かったとは思ってます。
具体的に言うとCakePHPのDatabase接続設定ファイル app/Config/database.php を書き出すところ だけなので、切り出しは簡単にできます
CakePHPのcookbookに追加したい機能
- プラグインを submodule として追加して設置する
- DebugKitを始めとして、いつもよく使うPluginはデフォルトでインストール設定ができると良さそう
- Security.salt、Security.cipheSeedをデフォルトのものから変更する
- デフォルト以外のものが設定されている場合は変更しない
このようにいろいろ課題は残っているので、万人に勧められるクォリティーには至ってません。
本番環境に投入するにはまだクリアしなければいけない問題が多数あることを認識して "開発環境" と書いています。
それでも、git clone してコマンドを幾つか叩くだけで VirtualBoxのvm作成からはじまって、PHPを書き始められるだけの環境が整うというのは 一度体験してみると良いと思います。