web-dev-qa-db-ja.com

Xdebugは動作を停止しました、どこでエラーを探しますか?

私はXdebugをインストールしましたが、突然動作を停止するまで問題ありませんでした。 phpinfo()は、すべての変数を備えたNice XDebug出力を提供します。

php -m | grep deb

また、2回のXDebug(ZendおよびPHPの場合)を提供するため、これでも問題ありません。私のphp.iniには次の行があります。

zend_extension=/usr/lib/php5/20090626/xdebug.so
;extension=xdebug.so
xdebug.remote_Host=localhost
xdebug.remote_enable=on
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1

それでも、このコードを実行して(Netbeansのドキュメントから)XDebugをチェックする必要がある場合は、スタックしているだけです。したがって、IDEはXDebugで動作しています。

<?php
$address = '127.0.0.1';
$port = 9001;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);

また、XDebugのインストールに応じて、手順を2回実行しました。私の設定の何が問題になっていますか?ありがとう。

31
valk

最後に、2つのソリューションのみを残しました-Ubuntu OSを再インストールするか、新しいVM特にxdebugをインストールするために、私は2番目のものを使用します。面白いことは、すべてが機能していたことです。 "RTM"(f = freaking)によると、本当の問題がどこにあるかを理解するためにXDebugのログを読み取る方法がわからなかった。

更新

苦労した後、私は持っていたすべてのphp.iniからxdebugに関連するすべての1行を削除しました。そして、これらの行を/etc/php5/conf.d/xdebug.iniに移動しました。 Apacheを再起動し、次にPHPStormを再起動しました。追伸途中で、githubから、pecl、標準のUbuntuバージョンを使用してxdebugをインストールしようとしました。コンパイルしたものは現在動作していると思います。そして、ログも更新されます。

;xdebug configuration
zend_extension = /usr/lib/php5/20090626/xdebug.so
xdebug.remote_Host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"
13
valk

サーバーで、次のコマンドを試してください。

$ netstat -anp | grep CLOSE_WAIT

:9000のエントリはXDebugの問題を引き起こします。考慮してくださいkill -9 <pid>

8
Derek Illchuk

PHPを更新した後、Ubuntuでもこの問題が発生しました。私にとって、php.iniでhtmlエラーをオンにすると、xdebugがNetbeansで再び動作するようになりました...

Sudo vi /etc/php5/Apache2/php.ini
display_errors = On
html_errors = On

そして、Apacheを再起動します。

Sudo /etc/init.d/Apache2 restart

http://ubuntuforums.org/showpost.php?p=9592364&postcount=14

2
Michael Gorham

私はチェックした

netstat -anp

出力し、私のリモートマシン[xDebugを実行中]のマスタープロセスにより、(XDebugポート範囲の)開いているソケットの数があることを確認しました。

「マスター」プロセスを終了すると、問題が解決しました。

私にとって、ポートオーバーランの状況のように見えました。情報は一部にとって有用かもしれないと思った。

1
Siddharth Tyagi

ポートが占有されていないことを確認し、netbeansがそのポートをリッスンするように構成されていることを確認してください(9001が通常デフォルトで9000であることがわかります)。動作が停止し、理由が理解できなかったため、ある種の期限切れのデバッグセッションが疑われる

0
max4ever

正しいファイルにブレークポイントを設定しているか確認してください。スクリプトが入る最初のファイルを見つけます(フロントコントローラー)。 symfonyでは、例えば複数あるかもしれません。

0
Darius.V