web-dev-qa-db-ja.com

Visual Studio CodeがPHP Xdebugのブレークポイントで停止しない

ThinkpadラップトップからHP Elitebookに移行しました。新しいラップトップに開発環境を設定する必要があります。 Windows 10 Pro 64ビット版でVisual Studio CodeとXAMPPをセットアップした後、PHPコードをデバッグできません。

Visual Studio CodeのXdebug拡張機能を適切にインストールし、php.iniが正しいことを確認します。これはphp.iniの設定です(E:ドライブに配置されているポータブルXAMPPを使用しています):

zend_extension = "E:\xampp\php\ext\php_xdebug-2.4.1-5.4-vc9.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_log="E:\xampp\Apache\logs\xdebug.log"

そして、私のxdebug.logは次のような情報を表示します:

Log opened at 2018-10-27 05:56:45
I: Connecting to configured address/port: localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///E:/xampp/htdocs/absen/index.php" language="PHP" xdebug:language_version="5.4.3-dev" protocol_version="1.0" appid="7112" idekey="william"><engine version="2.4.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2016 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2018-10-27 05:56:45

しかし、私のVisual Studio Codeはブレークポイントで停止しません。

Visual Studio Code、XAMPPを再インストールし、別のXdebugバージョンを使用していますが、それでも機能しません。

私はこれらのリンクをたどっています:

これらのソリューションはどれも機能しません。

6
silverknightone

最後に私は問題の原因を知っています。 HP Elitebookには、ポート9000を使用するHP Velocityという名前のプログラムがプリインストールされています。

問題は、私のホストのポート9000がHP Velocityソフトウェアのポート9000にバインドされていることです。 HP Velocityサービスがlocalhost xdebugサーバーに接続すると、ログに接続は正常であると記録されますが、HP Velocityに接続されています。

Php.iniでxdebugポートを9090に変更し、ビジュアルスタジオコードのlaunch.jsonで変更しました。その後、私のビジュアルスタジオコードは通常どおり動作し、ブレークポイントで停止できます。

これが他の人を助けることを願っています:)

6
silverknightone

理由は、php xdebugのポートが原因である可能性があります。

1. php --iniを使用してphp設定ファイルを表示し、xdebugポートを9900に変更します:xdebug.remote_port=9900次にphpを再起動します

2. vscodeを開き、ポートをlaunch.jsonで同じ番号に変更します:"port": 9900

3.デバッグを楽しむ

2
lecover

私は同じ問題を抱えていましたが、ubuntuでポートを8000に変更した後、それは私のために機能します。

0
Ujjal