Edited at

Visual Studio CodeでPHPのリモートデバッグ環境を構築する

この記事は以下の条件に当てはまる人向けに書いています。


  • VSCodeでPHPのステップ実行がしたい

  • 開発環境が共用のリモートサーバーである

  • リモートのWebサーバーはApacheだ

  • リモートにXDebugがインストールされている

  • リモートのApacheをバーチャルホスト運用している


サーバー側の設定

自分が使っているバーチャルホスト用の設定ファイルに以下を追加する。

php_value session.auto_start 0

php_value xdebug.remote_autostart 1
php_value xdebug.remote_host none
php_value xdebug.remote_connect_back 1

remote_host none remote_connect_back 1 の部分がポイント。

これを設定することで、ローカル→リモート→リモート→ローカル、という具合に接続を返してくれる。

Apacheを再起動して設定を反映させる。

念のためphpinfo()で確認すると良いかも。


ローカル側の設定


拡張機能のインストール

PHP Debugをインストールする。php debugで一番上に出てきます。

スクリーンショット 2018-11-09 14.39.25.png


デバッグ設定の追加

メニューから デバッグ -> 構成を追加PHPを選択する。

スクリーンショット 2018-11-09 15.01.54.png

スクリーンショット 2018-11-09 14.56.14.png

デフォルトでListen for XDebugLaunch currently open scriptの2種類が設定されているのでXDebugの方をいじる。


launch.json

{

"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9002,
"pathMappings": {
"/home/foo/bar": "${workspaceRoot}"
}
},
...

pathMappingsのキーに、ローカルのワークスペースに対応するリモート側のディレクトリを指定する。


使い方

F5でデバッグ開始。

適当なところにブレークポイントを置いて該当ページにアクセスしてみよう。

スクリーンショット 2018-11-09 15.16.50.png

おしまい。

以下の記事を参考にさせていただきました。

https://qiita.com/takudo/items/35d2fd3c6e9846715bf4