書き置き。

ほぼ勉強の記録みたいなもんです。

30分以内にCakePHPの開発をするためのレシピを公開してみた

vagrant を使って Virtualbox に Unbutn12.10 のvmを起動
apache2やphpMySQL/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のレシピを多用している理由はいくつかありました。

  • 多数のプラットフォームに対応している
    • 個人的にはdebian系を使うことが多いが、仕事で使うCentOSも同じレシピで対応可能なものが多い
  • 公式サイトから細かいバージョンまで指定してソースコードをDLしてインストールできる
  • パッケージインストール以外のレシピの書き方がわからなかったところを補う - Database作成、Databaseにユーザ作成 など

残っている課題

開発環境

  • "いつもの環境"を自動構築させたい
  • CakePHPソースコードは別途設置する必要がある
    • chef.json に指定した Git Repository から自動で clone するようにしたい
  • phppgadmin に ホストOSからアクセスしたい
    • apacheの設定を一行書き換える必要があり、これを手作業でやるのは効率悪く漏れやすいので自動で行いたい

セキュリティ問題

  • apacheをvagrantユーザで動作させている
    • 上の問題に関連して、CakePHPから作成されるキャッシュやログファイルの書き込み権限問題が発生して apacheユーザを変更して使っています 急いでたとはいえ良くないので、ソースコードのclone場所を変更するのと合わせて解決したい
  • パスワードが暗号化されていない

CakePHP問題

  • CakePHP特有の部分を別レシピにすれば良かったとは思ってます。
    具体的に言うとCakePHPのDatabase接続設定ファイル app/Config/database.php を書き出すところ だけなので、切り出しは簡単にできます

CakePHPのcookbookに追加したい機能

  • プラグインを submodule として追加して設置する
    • DebugKitを始めとして、いつもよく使うPluginはデフォルトでインストール設定ができると良さそう
  • Security.salt、Security.cipheSeedをデフォルトのものから変更する
    • デフォルト以外のものが設定されている場合は変更しない

このようにいろいろ課題は残っているので、万人に勧められるクォリティーには至ってません。
本番環境に投入するにはまだクリアしなければいけない問題が多数あることを認識して "開発環境" と書いています。

それでも、git clone してコマンドを幾つか叩くだけで VirtualBoxのvm作成からはじまって、PHPを書き始められるだけの環境が整うというのは 一度体験してみると良いと思います。