eclipse+xdebugでPHPをステップ実行ェ。。あとvagrant

なんかちょっと大変だった。

eclipseそんなに使ったことないし。

まず環境

Mac
eclipsevagrantが動いてる

・そのvagrant
ubuntu入れてる
ApachePHPxdebug動いてる

やりたいことはvagrant上で動いてるphpをローカルMaceclipseからステップ実行したぁい!

実施手順
xdebugのポート番号(phpiniのやつ)をeclipseのリモートデバッグ設定と合わせる
eclipseにて新しいプロジェクトを作って既存のvagrant上のフォルダを読み込む。

だけ

詳細
phpiniの設定はこんな感じ

zend_extension=/usr/lib/php5/20121212/xdebug.so
xdebug.remote_enable=on
xdebug.remote_autostart=1
xdebug.remote_host="macのIP"
xdebug.remote_port=9003
xdebug.profiler_enable=on

eclipseの設定
・Run>RunConfigrationを開く
・左のウインドウのPHP Web Applicationてのをダブルクリックして新しいデバッグの設定を作る
・右のサーバタブでNewから新しいサーバ設定
BaseURL:vagrant上のIP
Debugger:xdebug
PathMapping:vagrant上のステップ実行したいファイルのそこそこ上のフォルダとローカルの同期してるフォルダを入力(vagrantはVagrantfileがあるフォルダを同期してるからね)
でもこのPathMappingは入力しなくても動くとかなんとか

あとはServerタブに戻ってBrowseからdebugしたいファイルを指定(これプロジェクトとして読み込んでないとファイルないってエラーでる)
URLのとこはAutoGenerateのチェックを外してデバッグしたいファイルにアクセスするURLを入力
ここにeclipseが勝手にアクセスします。そのあと内部処理が進んでデバッグしたいファイルまできてそれにブレークポイントとか設定されてたらそこで泊まる。

まぁ普通はブラウザから自分でURL指定して見たいファイルはエディタで開いててブレークポイント設定しててそこに来たら泊まるよねってのをやってるだけですね。

あとeclipse初心者としては「Web Launch Already Running」とかいうエラーが出まくって鬱になった。
しかもなんかデバッグウインドウ消えてるしどうやって止めるんや!と思ったらeclipse画面右上の小さいタブにデバッグ画面のタブがありあした。

疲れたけどまぁできてよかった。