PHPの開発環境として、r8/vagrant-lampはインスタントラーメン並みに便利。
WEBサイトのローカル開発環境に、皆様どんなツールを使っているのでしょうか。
MAMPPやXAMPPで開発したり、Vagrantで下層環境を作ったり、色々な環境があると思います。
僕は普段、PHPがメインとはいえ、ごくたまにRailsをテストで動かしたかったりすることがあるので、Vagrantを使っています。
そこで、いまさら感は否めないのですが、普段PHPの開発環境に使っている、r8/vagrant-lampというboxを紹介します。
何に使っているのか
普段のちょっとしたPHPの開発環境として、FuelPHPでの開発環境として、WordPressやconcrete5などのCMSのテスト環境として、日々ローカルで立ち上げています!
WP-Cliが入っているので、WordPressの開発にも何かと便利だったりします。
残念ながらPHP5.3.10なので、Laravel4は動かないのですが・・・。
色々なツールが入っているので、カジュアルにPHPを書くには良い環境かなあと思います。
r8-vagrant-lampの中身
- Apache
- MySQL
- php
- phpMyAdmin
- Xdebug with Webgrind
- zsh with oh-my-zsh
- git, subversion
- mc, vim, screen, tmux, curl
- MailCatcher
- Composer
- Phing
- Drupal utils:
- WordPress utils:
- Magento utils:
- Node.js with following packages:
ごっそりgithubからコピペしただでも、これだけ使えます。
PHPのバージョンが5.3.10なので、最新フレームワークは動かなかったりしますけど。
テスト環境として、何が素晴らしいかといえば、xdebugやmailcatcherの存在が大きいと思います。
mySQLのルートのパスワードはvagrantで入れるので、ちょっとしたテストで動かしたアプリケーションのDBは直接SSHで繋いでdrop databaseからのcreate databaseで作り直したりしています。
xdebug + webgrindの使い方
cd /etc/php5/conf.d sudo vi xdebug.ini
でxdebugの設定ファイルを開いて、
zend_extension = "/usr/lib/php5/20090626+lfs/xdebug.so" xdebug.remote_enable = 1 xdebug.remote_connect_back = 1 xdebug.remote_port = 9000 xdebug.remote_handler = "dbgp" xdebug.profiler_enable = 1 ;xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir=/tmp
こんな感じに書き換え。「xdebug.profiler_enable」を1にして、「xdebug.profiler_output_dir=/tmp」を追記、xdebug.profiler_enable_triggerをコメントアウトしてみました。
sudo /etc/init.d/apache2 restart
でapacheを再起動すると、以後アクセスしたPHPの実行にかかった時間などの情報が
http://設定してあるvagrantのIPアドレスもしくはホスト名/webgrind/
で確認することができるようになります!
mailcatcherの使い方
メールの送信テストをするとき、自分の持っている色々なアドレスを使ってテストをすることが多いかと思いますが、これを使えば、メールを外部に送信せず、アプリケーション内でとめることができます。
基本的には勝手に動いているので、メールの確認を
http://設定してあるvagrantのIPアドレスもしくはホスト名:1080
にアクセスするだけです。
このツール、何度か自力でインストールしたのですが、毎回のように謎にハマるのです・・・。
このboxには標準搭載なので、非常に助かっています。
PHPが5.3.10なので要注意
chefを使って立ち上げるので、cookbookとかdata_bagsをいじってインストールされるPHPなどのバージョンは上げておいたほうが良さそうですね。