9

I'm debugging remotely my project in PhpStorm. IDE shows 'Connected' for a moment and immediately goes into 'Waiting for incoming connection...'

Below is Xdebug log from this session

I: Connecting to configured address/port: X.x.x.x:9000.
I: Connected to client. :-)
> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///xxx/info.php" language="PHP" protocol_version="1.0" appid="4365" idekey="10594"><engine version="2.2.2"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATAhttp://xdebug.org]></url><copyright><![CDATA[Copyright (c) 2002-2013 by Derick Rethans]]></copyright></init>

<- feature_set -i 0 -n show_hidden -v 1
> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="0" feature="show_hidden" success="1"></response>

<- feature_set -i 1 -n max_depth -v 1
> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="max_depth" success="1"></response>

<- feature_set -i 2 -n max_children -v 100
> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_children" success="1"></response>

<- status -i 3
> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="3" status="starting" reason="ok"></response>

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

<- breakpoint_set -i 5 -t line -f file://xxx/info.php -n 3
> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="5"><error code="5"><message><![CDATA[command is not available]]></message></error></response>
"

According to Xdebug documentation status "stopping" is 'State after completion of code execution. This typically happens at the end of code execution, allowing the IDE to further interact with the debugger engine (for example, to collect performance data, or use other extended commands).'

So my debugger stops before reaching first breakpoint (set on first line).

Could it be a question of server configuration?

4

6 に答える 6

6

php.ini に移動して、次のような行を削除する必要があります

extension=php_xdebug-...

この行はどのように作成されましたか。

このようにxdebugのファイルをPHP拡張パスに配置します

.../php5.X.XX/ext/

これで、WAMP、XAMPP などの _AMP UI ツールでこの PHP 拡張機能を有効にすることができます。


このつらい不幸を防ぐには、Xdebug ファイルを次の場所に配置する必要があります。

.../php5.X.XX/zend_ext/

_AMP ツールから Xdebug を非表示にします。

zend_extension パラメータも修正します。

zend_extension = .../php5.X.XX/ext/php_xdebug-...

zend_extension = .../php5.X.XX/zend_ext/php_xdebug-...

これは、一般的なデフォルト パスです。


思い出してください!
PHPStorm、Eclipse、Zend などでは、おそらく 2 つの php.ini ファイルを修正することを検討する必要があります。

Web サーバー用の最初のもの。通常、Apache フォルダーの下

...\Apache2.X.XX\bin\

2 つ目は、PHP スクリプトを直接デバッグするためのものです。これは、PHP ホスティング フォルダーにあります。

...\php\php5.X.XX\
于 2015-02-03T21:26:32.977 に答える