PHP
Apache
debug
VSCode
VisualStudioCode

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