Help us understand the problem. What is going on with this article?

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

mimizq
Javaを7年やってPHP2年生。Node.jsもちょっと。PHPのぬるさにびっくりしている。わりと有名なサービスやってる会社のあんまり有名じゃないほうのサービス担当。
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした