PHPの致命的なエラーを解決する方法:8388608バイトのメモリサイズを使用できます

最も一般的でイライラするエラーの1つPHPのコーダーは次のように読み取ります。「致命的なエラー:8388608バイトのメモリサイズが使い果たされました...」のようなものが続きます。これは、デフォルトでは、PHPのメモリ使用量がスクリプトごとに8 MBに制限されているためです。実際には、不正なPHPスクリプトがすべてのメモリを占有してサーバーをダウンさせたくないため、これは良いことです。ただし、場合によっては、通常8 MBの制限を超えるPHPスクリプトがあります(たとえば、インポートまたはアップロード用)。 「致命的なエラー:8388608バイトのメモリサイズを使い果たしました...」エラーメッセージを回避するには、次のコード行をスクリプトの上部に挿入します。

ini_set(“ memory_limit”、”16M「);

memory_limit

これにより、メモリ制限が16 MBに設定されます。8 MB以上。このエラーメッセージを繰り返さずに可能な限り低くなるように、この番号をいじることができます。これは、その特定のPHPファイルのメモリ制限のみを変更します。

または、php.iniファイルを変更して、メモリの制限を増やすことができます。これは、サーバー上のすべてのスクリプトに影響します。 php.iniを開き、「memory_limit」という行を見つけて変更します。

memory_limit = 16M

致命的なエラー:許可されたメモリサイズ134217728を使い果たしました

私は自分のPHPで気づきました。私のデフォルトは128Mではるかに高いiniファイル。したがって、このエラーメッセージを受け取った場合、「致命的なエラー:134217728バイトのメモリサイズを使い果たしました...」と表示され、明らかにはるかに大きな問題になります。ただし、「致命的なエラー:8388608バイトのメモリサイズを使い果たす...」または「致命的なエラー:16777216バイトのメモリサイズを使い果たす...」などと同じ回避策があります。どうやら、memory_limitのデフォルトはPHP 5.2.0では8Mから16Mに引き上げられ、PHP 5.3.0では128Mになりました。これは、このエラーメッセージがまったく表示されない理由を説明します。

また、PHP.iniでmemory_limitを–1に設定して、メモリ制限を無効にすることもできます。

memory_limit = -1

ただし、明らかな理由から、これは通常、良いアイデアではありません。

注:.htaccessページでmemory_limit行を使用することもできます。

覚えておいてください、これは単なる回避策です。本当に、PHPスクリプトは じゃない ファイルのアップロードまたは明らかに多くのメモリ使用量を消費する何か他のことをする。本当にすべきなのは、スクリプトが大量のメモリを使用している理由を把握し、修正を試みることです。 PHPスクリプトが使用しているメモリ量を把握する1つの方法は、PHP関数memory_get_usage()を使用することです。スクリプトの任意の時点でそれをエコーするだけで、メモリ使用量が急上昇している場所を見つけることができます。

echo memory_get_usage();

DrupalまたはJoomlaでこのエラーメッセージが表示される場合は、新しいモジュールまたはパッケージが原因である可能性があります。たとえば、Drupalでは、admin / modulesページがロードされます 毎回 取得できるDrupalインストールのモジュールカスタムモジュールがバグのある、破損している、またはハッキングされている場合は、毛むくじゃらです。モジュールを1つずつ無効にして、どちらがパーティを停止させているかを特定してください。また、ホスティングプロバイダーによっては、PHPコードのメモリ制限を変更しようとする試みを無視するため、ホスティングサポートに連絡して支援を求める必要がある場合があります。 php.iniファイルを編集したり、コードを.htaccessファイルに挿入したりする必要がある場合があります。いずれにせよ、うまくいけば、ここのこの情報はあなたをあなたの道に導くのに十分です!

0

類似の記事

コメントを残す