ホームページ  >  記事  >  バックエンド開発  >  phpinfo() で上限が示されているのに、PHP スクリプトで「許可されたメモリ サイズが使い果たされました」と表示されるのはなぜですか?

phpinfo() で上限が示されているのに、PHP スクリプトで「許可されたメモリ サイズが使い果たされました」と表示されるのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-06 22:36:02541ブラウズ

Why is My PHP Script Showing

「許可されたメモリ サイズが枯渇しました」エラーを調査しています

エラー メッセージ「許可されたメモリ サイズ X バイトが枯渇しました」は、PHP が次のことを試みたことを示します。許可されている以上のメモリを割り当てます。 PHPInfo ではメモリ制限が 128M であることが示唆されていますが、エラーではメモリ制限が 64M しか示唆されていません。この矛盾を調査するには、PHP の構成階層を理解することが重要です。

PHP の構成は複数の場所で設定できます:

  • マスター システム php.ini (通常は /etc にあります)
  • Apache の設定 (httpd.conf または .conf ファイル)
  • CLI および CGI php.ini ('php -i | grep memory_limit' を使用)
  • ローカル .htaccess ファイル
  • スクリプト内 (ini_set() 経由)

PHPInfo 出力では、「マスター」値がデフォルトであり、「ローカル」値が有効です。 Local 値は、他の場所でオーバーライドされる可能性があります。

PHP には、コマンドラインと Web サーバーベースの操作用に別個の .ini ファイルがあることに注意してください。コマンドラインから phpinfo() をチェックすると、Web ベースのスクリプトとは異なる値が表示されます。

この場合、エラーはプライマリ PHP ファイルの ini_set 呼び出しによって引き起こされている可能性があります。この呼び出しは誤って追加された可能性があり、グローバル メモリ制限設定をオーバーライドしています。この問題を解決するには、ini_set 呼び出しを見つけて削除または変更して、目的のメモリ制限内に収まるようにします。

以上がphpinfo() で上限が示されているのに、PHP スクリプトで「許可されたメモリ サイズが使い果たされました」と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。