サーバーにZendDebuggerをセットアップし、ZendStudioクライアントからリモートデバッグしようとしています。それは機能せず、サーバーエラーログでこれを取得します:
[Zend Debugger]デバッガーのコンパイルハンドラーがオーバーライドされ、このリクエストではアクティブになりません
何が問題なのですか?
サーバーにZendDebuggerをセットアップし、ZendStudioクライアントからリモートデバッグしようとしています。それは機能せず、サーバーエラーログでこれを取得します:
[Zend Debugger]デバッガーのコンパイルハンドラーがオーバーライドされ、このリクエストではアクティブになりません
何が問題なのですか?
Xdebugを拡張機能としてロードして、XdebugとZendDebuggerを同時にインストールすることができます。これにより、Xdebugの機能の一部(フォーマットされたエラーなど)を取得しながら、ZendDebuggerを使用してデバッグできます。
extension=/wherever/you/put/it/xdebug.so
zend_extension= /wherever/you/put/it/ZendDebugger.so
http://xdebug.org/docs/faq#php-ext
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Zend Debugger v5.3, Copyright (c) 1999-2010, by Zend Technologies
with Xdebug v2.1.1, Copyright (c) 2002-2011, by Derick Rethans
デバッガーは、有効になっている PHP 拡張機能に非常に気を使います。[Zend Debugger] Debugger compile handler overriden, will not be active in this request
MAMP と PHP 5.2.x を使用する Mac OS X の Apache エラー ログで同じエラーを受け取りました。MAMP コントロール パネルから Zend Optimizer と XCache を無効にすると、このエラーは解決しました。
Ubuntu で LAMP スタックを実行していますが、Zend Debugger を機能させるには OPCache を無効にする必要がありました。これは /etc/php5/apache2/php.ini で行いました。
opcache.enable=0
その理由は、XDebugもサーバーにインストールしていて、zendデバッガーがxdebugと競合するためです。XDebugを削除します。zendデバッガーがロードされ、XDebugが実行されていないことを確認するにはphpinfo()を実行し、出力で確認します
Zend Engine v2.2.0、Copyright(c)1998-2009 Zend Technologies with Zend Debugger v5.3、Copyright(c)1999-2010、by Zend Technologies with Xdebug v2.0.5、Copyright(c)2002-2008、by Derick Rethans
Zend Debugger行はありますが、Xdebug行はありません。