Vagrantにより親(windows)と子(仮想環境:linux)という関係で開発をしているわけだが、そうなるとPHPインタプリタ他諸々が親(windows)には入っていない。
NetBeansでXdebugを使うにはちょっとした準備が必要になる。
『NetBeans+PuPHPet(Vagrant)+Selenium』企画第1段。
NetBeansで仮想環境にリモートデバッグの設定していく。
Xdebug → PHPUnit → Selenium(※最終目標)
PuPHPet
puphpet/config.yaml
xdebug: install: '1' settings: xdebug.default_enable: '1' xdebug.remote_enable: '1' xdebug.remote_host: '192.168.33.1' ←※REMOTE_ADDRの値 xdebug.remote_port: '9000' ←変えても良い xdebug.remote_handler: dbgp xdebug.remote_autostart: '1' xdebug.remote_mode: 'req' xdebug.remote_connect_back: '1' xdebug.remote_log: "/tmp/xdebug.log" ←※設定すると接続結果見れて便利。場所は不問。 xdebug.profiler_enable: 1 xdebug.profiler_output_dir: "/tmp" xdebug.max_nesting_level: 1000 ←※他のサイトに書いてたから xdebug.idekey: 'xdebug-user' ←NetBeans専用なら『netbeans-xdebug』でOK xdebug.output_buffering: '0'
『※』部分は書かなくても良いかもしれない。
『zend_extension』の設定はPuPHPetが勝手にやってくれる。
設定したら『vagrant up』して起動。
起動したら『vagrant ssh-config』実行し結果をメモ。
config.yamlのvagrantfile: vm: provider: local: machines: id:に設定されたものがHostに書かれたものが出て来る。
NetBeans
NetBeansメニュー → ツール → オプション → PHP → デバッグ にて
- デバッガ・ポート:config.yamlの『xdebug.remote_port』
- セッションID:config.yamlの『xdebug.idekey』
プロジェクトを右クリック → プロパティ → 実行方法 にて
- 実行方法:リモートWebサイト(FTP、SFTP)
- プロジェクトURL:ブラウザで表示するURL
- ファイルのアップロード:手動
『リモート接続の管理』を押す
リモート接続の管理
- ホスト名:ssh-configで出た『HostName』
- ポート:ssh-configで出た『Port』
- ユーザ:ssh-configで出た『User』
- 初期ディレクトリ:仮想環境(Linux)側のプロジェクトのルート
あとは
パスワード設定していたら『パスワード』を入力し、していないなら『秘密鍵ファイル』を設定すればOK。
鍵は『C:/Users/【windowsのユーザ名】/.vagrant.d/insecure_private_key』にある。
そして『接続をテスト』を押して、接続できればOK
Windowsファイアウォール受信規則追加
『セキュリティが強化された Windows ファイアウォール』を起動
cortanaに聞けばすぐ出てくる。
『受信の規則』を選択。
『新しい規則...』を作ることをオススメするが、『NetBeans IDE』の設定が有効になってないなら、それ書き換えちゃえばいいと思う。
- 全般 → 全般 → 『有効』にチェック
- 全般 → 操作 → 接続を許可する
- 詳細設定 → プロファイル → 『パブリック』のみチェックに
- プロトコルおよびポート → プロトコルの種類 → 『TCP』選択
- ローカルポート → 特定のポート → config.yamlの『xdebug.remote_port』
- リモートポート → すべてのポート
しなくてもいいが、IPを限定したいなら
スコープ→リモートIPアドレス→これらのIPアドレス→追加→このIPアドレスまたはサブネット
『192.168.33.0/24』または『REMOTE_ADDRの値』を入力する。
新規に作る場合は
- 規則の種類:プログラム
- プログラム:NetBeansの実行ファイル
- 操作:接続を許可する
あとは書き換える版と同じ
名前は自分がわかりやすければ、それでいいかと。
試してみる
NetBeansで何かテキトーに打ち込んだphpファイルを作る。
ソースの好きなとこで、右クリックからブレークポイントを作成。
プロジェクトウィンドウで、作成したファイルを右クリックから『デバッグ』
※ここで『外部ブラウザで、このURLにアクセス出来ませんでした。』とか出ても無視しても大丈夫。
イヤなら『NetBeansメニュー → ツール → オプション → 一般』にて『Webブラウザ』を『デフォルトのシステム・ブラウザ』から他のブラウザに変更。
- ブラウザで該当ページを見る
- 『vagrant ssh』して該当を『php xxx.php』とコマンド実行
すると接続がスタートされて、ブレークポイントで処理が止まり、NetBeansにウィンドウ出て結果出る
これだけを調査・設定するだけで2日かかった…
皆PhpStormが大好きでNetBeansの情報が埋もれて探すの大変…
しかもまとめるのに更に1日かけてしまった…何でだよ…
コメント