私はMacでxdebugを動かそうとしています。私はApache(2.2.1)とPHP(5.3.8)の組み込みバージョンでOS 10.6を使用しています。私は基本的にこれらのステップから構成さXdebugのウェブサイト上で "tailored installation instructionsを" に続く:OS X上のxdebugが部分的に動作しています(端末ではスタックトレースを表示しますが、ブラウザでは表示しません)。
- ビルドはXdebug(バージョン2.1.3)のソースから
- 移動
xdebug.so
- ウェブサーバーを再起動します。
/usr/lib/php/extensions/no-debug-non-zts-20090626
にphp.iniに追加します。 zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
私が理解していることから、それはそうでなければなりません。私はほとんどの人がxdebugをPHPEclipseのようなIDEで使うことを知っていますが、ページのデバッグ出力を得るために必要なようには聞こえません。古い命令の多くにはMAMPのインストールが含まれていますが、もはや必要ではないようです。
サインxdebugのは、働いている:私はphp -m
とphpinfo()
を実行すると、私はXdebugをの期待情報を取得します。スクリプトでは、私はxdebug_is_enabled()
(1を返します)とxdebug_get_function_stack()
(スタックを返します)のような関数を呼び出すことができます。 xdebugをインストールした主な理由は、エラーが発生したときにスタックトレースを取得することでしたが、それは起こっていません。 this documentation pageによると、display_errors
がphp.iniのOnに設定されている限り、スタックトレースを取得する必要があります。致命的なエラー(例:$ xがオブジェクトでない場合は$x->awesomefunction()
)を生成するコードと同様に、警告(たとえば、echo(hello)
)を呼び出すコードを試しました。どちらもxdebugの出力を生成しません。致命的なエラーが発生すると、ページは自動的に消えます。リンク先のドキュメントにあるテストコードも何も生成しません。
UPDATE:私は端末からの致命的なエラーでスクリプトを実行すると、xdebugからスタックトレースを取得することが判明しました。私は
また、ブラウザからスクリプトを実行するときしかし、それはまだ現れていない、通常のエラー報告は現在壊れている:以前が、私はコマンドを含めることにより、エラー出力を取得したい:
ini_set("display_errors","1");
ERROR_REPORTING(E_ALL);
さて、私のスクリプトにこれらの行を置いても、エラーの報告はありません。 (ブラウザでは、端末からスクリプトを実行するとエラーが表示されます)
ここで何が問題なのですか?私はxcodeインストールから何かを残しましたか?私は、システム上のどこかでエラーを抑制する設定をしていますか?私は考えることができるすべてを試しましたが、あなたが持っているアイデアを試してみるのは嬉しいです。
エラーを探すためにブラウザではなくコンソールでテストを実行しようとしましたか?興味深い! –
私はコンソールから致命的なエラーを生成するスクリプトを実行すると、xdebugからスタックトレースを取得しますが、ブラウザで実行してもまだ実行されません。私はその質問を更新します... – octern
プリビルドLIIP PHPパッケージの使用を検討しましたか?それらはxDebugを組み込んでおり、私はそれらを使いやすく設定することができました。 http://php-osx.liip.ch/ – GordonM