2

私はapache2がクラッシュする理由を理解するために多くの時間を費やしました。私の環境は次のとおりです。

  • Debianテスト
  • Apache 2(書き換え、SSLなど)
  • zendリポジトリからインストールされたPHP5.3Zend

異常なことは何もありませんが、dmesgは次のように述べています。

apache2[xxxx]: segfault at 18 ip xxxx sp xxxx error 4 in libphp5.so[xxxxx]

私が見つけたログには他に何もありませんし、問題を見つけるのは非常に困難です。

4

1 に答える 1

8

多くのセグメンテーション違反がphpモジュールに関連しているため、phpモジュールから問題を発見し始めました。いくつかのテストの結果、モジュールのカールを無効にすると問題が解決することがわかりました。しかし、私の場合はカールが必要なので、調査を続ける必要があります。

重要なのは、curlが有効になっているphp-cliが正常に機能し、php-mも機能することです。

だから間違いなくそれはapacheの問題です。1時間後、sslを無効にしてcurlapacheを有効にすると機能することを発見しました。

2つのモジュール(mod_ssl、php_curl)で競合が発生しています。そしてldd mod_ssl.so、このライブラリがに依存していることを示しますlibcrypto.so.1.0.0。実際、aptitudeは、opensslのバージョンが1.0.0-eであることを示しています。しかし、phpinfo()は、それがで構築されていることを示してい--with-openssl=/usr/local/openssl-0.9.8oます。対立があります。opensslに依存する2つのモジュールがありますが、異なるバージョンで構築されています:0.9.8oと1.0.0-e!

私はapache2とopensslのバージョンを適切なバージョンにダウングレードする必要がありましたが、今では動作します:sslとcurlの両方。

この問題を理解するのは困難だったので、このヒントをここに投稿することにしました。そして、この小さなメモが誰かが時間を節約するのに役立つことを願っています。

于 2012-05-31T10:26:01.100 に答える