2

バグのあるコードを含むクラスファイルがあります。

  else{
            $stp->Object($a);               
            $abbr = $a->abbr;
        }
        asdf
    } 

私の理解では、phpはエラーメッセージを適切に表示する必要があります。たとえば、「asdf」はクラスでも定数でもありません。しかし、私のエラーログファイルが言うように、このコードはセグメンテーションフォールトでサーバーをクラッシュさせます:

[Fri Mar 08 17:21:37 2013] [notice] child pid 8615 exit signal Segmentation fault (11)

これらのエラーを適切に処理するように php/apache を設定することは可能ですか? php がエラーをわかりやすい方法で報告できないのはなぜですか。ブラウザに「接続がリセットされました」というメッセージしか表示されません。

仕様:XAMPP (php 5.3.1) MAC OS 10.6 Xdebuger搭載

4

1 に答える 1

1

どうやらApacheに問題が発生しているようで、Apacheの子が終了するため、正しく表示できません。

PHPエラーが同じエラーを含むPHPエラーファイル(例:ErrorDocument 500)にリダイレクトされたため、同様のエラーが1回発生したため、PHPエラーページなどにリダイレクトされます...リダイレクトループを作成します。

マシンがダウンするのを避けるために、Apache は自分自身を殺します。


Apache を死なせている原因を診断する必要があります。

これを行うには、「strace」をインストールします。デビアンで:

apt-get install strace

次に、Apache を停止し、 strace で起動します。

strace -f /usr/sbin/apache2ctl

Apache の子がクラッシュするまで問題を再現し、strace ログを調べて何が起こったのかを調べてください。

これが役に立ったことを願っています。

于 2013-03-14T13:06:35.540 に答える