2

昨夜、centos マシンの PHP を 5.3.19 にアップグレードしました。アプリケーションの一部 (特に多数の大きなクエリを実行するフォームを送信する場合) で、/var/log/httpd/error_log に次のエラーが表示されます。

child pid xxxx exit signal Segmentation fault (11)

Chromeでは、次のように表示されます ここに画像の説明を入力

これを解決する方法や、YUM を使用して以前のバージョンの PHP に戻す方法を知っている人はいますか?

更新: 問題はここで説明されていますが、解決策についてはわかりません。かなり大きな SQL ファイルをロードし、その中の各クエリを段階的に実行します。間違いでなければ、これが「再帰」部分です: http://bitdepth.thomasrutter.com/2010/05/16/php-再帰-原因-セグメンテーション-フォルト/

4

1 に答える 1

2

ここでは再帰は問題ではないと思います。もしそうなら、スクリプトは更新前に同じ問題を引き起こした可能性が最も高いでしょう。

PHP モジュールの 1 つが最新でない可能性があります。更新前に pear を使用してモジュールを手動でコンパイルまたはインストールしましたか? その場合、それらのモジュールを新しい php バージョンに対して再コンパイルする必要があります。

手動でコンパイルされた可能性のあるモジュールを見つけるには、/etc/php.dフォルダー内の ini ファイルを次の出力と比較します。

yum list installed | grep "php"

これは、更新後に問題を引き起こさないはずの定期的にインストールされたすべてのphp関連パッケージをリストします

pecl を使用してインストールした可能性のあるパッケージを見つけるには、次のコマンドを実行することもできます。

# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package   Version State
memcached 2.1.0   stable
ssh2      0.11.3  beta

このようなリストを取得した場合は、それらのモジュールを使用して更新します

 pecl upgrade-all

pecl でインストールされず、yum でインストールされないアクティブなモジュールがある場合、それらのモジュールは手動でコンパイルされ、再コンパイルする必要があります。

この場合、ここで承認された回答の手順に従うことができます https://serverfault.com/questions/261268/how-to-build-missing-php-5-3-extensions-on-centos-5-6

于 2012-11-25T21:28:23.363 に答える