64

settting で xdebug を有効にするxdebug.remote_enable=1と、Apache サーバーが非常に遅くなります。設定を に変更したら0正常です。

ここで同じ質問を見つけました: XDebug really slowですが、答えは役に立ちません。プロファイリングを有効にしませんでした:

xdebug.profiler_enable=0
xdebug.auto_trace = 0
xdebug.trace_output_dir = /tmp/xdebug
xdebug.trace_output_name = trace.%c

/tmp/xdebug フォルダーの下に何もないことを確認しました。

xdebug リモート デバッグが有効で、PHPStorm でデバッグ リッスンを有効にすると、ブレークポイントで停止するのに少し時間がかかりますが、phpstorm デバッグ リスニングを無効にするほど遅くはありません。

私の環境は次のとおりです。ローカルcentos VM上のphp + apache + xdebug、私のmysql dbとPHPStormは開発用のWindowsデスクトップにあります。MySQL は遅くありません。

助けてくれてありがとう。

4

13 に答える 13

27

さらに参考までに...誰かが同じ/同様の問題を抱えている場合に備えて...(60秒のタイムアウト)

xdebug.remote_autostart自動接続を回避するために、最初のダブルチェックは無効になっています。指摘されたように、また
説明します。@LazyOne@Tomáš Fejfar

xdebug.remote_autostart
タイプ: ブール値、デフォルト値: 0
通常、特定の HTTP GET/POST 変数を使用してリモート デバッグを開始する必要があります ( 「リモート デバッグ」を参照)。この設定が 1 に設定されている場合、GET/POST/COOKIE 変数が存在しない場合でも、Xdebug は常にリモート デバッグ セッションを開始し、クライアントに接続しようとします。

これにより、デバッグ Cookie が存在しないときに通常の速度を回復します...
しかし!... Cookie を手動で有効にしたときに、サーバーからの応答が非常に遅くなります(60 秒のタイムアウト) 。

したがって、Xdebug ドキュメントを読んで構成を確認
した後、有効にしたことがわかりました。xdebug.remote_connect_back

xdebug.remote_connect_back
タイプ: ブール値、デフォルト値: 0、Xdebug で導入 > 2.1
有効にすると、xdebug.remote_host 設定は無視され、Xdebug は HTTP リクエストを作成したクライアントに接続しようとします。$_SERVER['REMOTE_ADDR'] 変数をチェックして、使用する IP アドレスを見つけます。利用可能なフィルターがないことに注意してください。アドレスが xdebug.remote_host と一致しなくても、Web サーバーに接続できる人なら誰でもデバッグ セッションを開始できます。

そのため、サーバーへのすべての呼び出しがデバッグされようとしていたため、サーバーが非常に遅くなり、安全性も低下しました。

このオプションを無効にxdebug.remote_hostして、自分のマシンへのポインティングが明確に定義されていることを確認したところ、許容できる応答が 1 秒以内に得られました。Cookie が有効な場合のみ

簡単に言えば、私の構成ファイルは次のようになります。

zend_extension             = "/absolute/path/to/your/xdebug-extension.so"
xdebug.remote_enable       = 1
xdebug.remote_autostart    = 0
xdebug.remote_connect_back = 0
xdebug.remote_host         = "192.168.1.2"
xdebug.remote_port         = 9000
xdebug.remote_handler      = "dbgp"
xdebug.remote_mode         = req
xdebug.remote_log          = "/tmp/xdebug.log"

注: この変更は、 php.inietc/php5/conf.d/xdebug.iniではなくファイルで行いました。

編集: @
Riimuと@ jdunkがbothのおかげで指摘しているように、以下も設定することをお勧めします: * 詳細についてはコメントを参照してください。

xdebug.remote_cookie_expire_time = 0
// or
xdebug.remote_cookie_expire_time = -9999
于 2014-01-08T16:45:36.633 に答える
1

ここでネットワーク タイムアウトが発生する可能性があります。何が問題なのかを調べる最善の方法は、コマンド ライン スクリプトをデバッグすることです。それでも同じ問題が発生する場合は、 を使用straceして、何がかかっているかを確認します。

export XDEBUG_CONFIG="idekey=yourname"
strace -tt -o /tmp/strace.log php full/path/to/script.php

次に/tmp/strace.log、スローダウンが発生する場所を確認します。

于 2013-07-23T09:15:15.213 に答える