Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
25
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@mimizq

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
php_value xdebug.remote_port 9009

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
25
Help us understand the problem. What are the problem?