常に 117 MB のメモリが不足している PHP スクリプトを含むサイトを継承しました。これは、php.ini を使用して PHP の memory_limit 変数を 312 MB に増やした場合でも発生します。
これは、pcguru からの素晴らしい手がかりのおかげで解決されました。以下で始まる私の答えを参照してください:私はついに答えを見つけました
ini_get('memory_limit')
php.ini で設定された値を返すので、値を変更した後に Apache が再起動したことは確かです。memory_get_usage(true)
途中のさまざまな時点でスクリプトによって消費されたメモリを返すために使用しています。そして、117 MB になると、一貫して失敗します。
個々のスクリプトに 117MB を超えて割り当てることのない、私が気付いていない内部 PHP 制限はありますか?
サーバーには 1 GB の RAM があり、CentOS を実行しています。root シェル アクセス権があります。PHP はバージョン 5.3.18 です。MySQL はバージョン 5.1.66-cll です。
このスクリプトはユーザー名/パスワードの背後にあり、パブリック アクセスを提供することはできません。
追加するために編集:
1) 今日までお世話になりました。詳細については、以下のさまざまな回答の下にある特定のユーザー コメントに対する私の返信をご覧ください。
2) Suhosin が確実にインストールされていない。スクリプトの実行、定数のチェック、php -v の実行など、複数の場所でチェックインしました
3) Apache ログには、私が得た特定のエラー メッセージの記録がありません。ロギングは php.ini でオンに切り替えられます。ログ全体を検索するためにgrepをパイプしました。
4) この場合、誤ったエラーが報告されている可能性はありますか?