PHPを独学するなら、Udemyの動画講座で
PHP 7も使えて快適な エックスサーバー

「Fatal error: Allowed memory size of … bytes exhausted」はメモリ不足でアプリケーションを実行できないというエラーメッセージです。PHPの設定項目「memory_limit」が16Mなどの小さい数字になっていると発生する場合があります。

割り当てられたメモリサイズの確認

現在のアプリケーションに割り当てられたメモリサイズの上限をチェックします。

php.iniで確認する場合

php.iniを直接開くことができる場合は、memory_limitをチェックします。

memory_limit=16M

最近のPHPでは128Mなどに設定されていると思いますが、少し古いPHPから設定を引き継いだ場合は16Mや8Mのような小さい値になっているかもしれません。

phpinfo関数で確認する場合

レンタルサーバーなどでphp.iniを直接確認できない場合は、phpinfo関数で確認する方法があります。次の1行を記述したPHPスクリプト(例:info.php)をアップロードしてサーバーで実行します。

<?php phpinfo(); ?>

アップロードしたページのURL(例:http://example.com/info.php)にアクセスすると、memory_limitを確認できます。

メモリ上限の確認

メモリ上限の確認

2つの数値は次のとおりです。

  • 右側(Master Value) --- 元の設定値
  • 左側(Local Value) --- 元の設定値を.htaccessなどで上書きした現在の値

左側が現在の設定値なので、右側のメモリサイズが256Mなどで、左側が16Mになっていれば、.htaccessなどでメモリ上限を明示的に小さくしていることが原因です。

左右共に16Mの場合は元の設定値が小さいので、.htaccessなどで上書きする必要があります。

メモリサイズ上限の設定

メモリサイズを設定する方法はいくつかあります。php.iniを編集できる場合は「memory_limit=16M」を256Mなどに変更してください。ただし、どこまで大きくして良いのかは、サーバー環境によって異なります。

php.iniを編集できない場合、.htaccessに次のようなコードを追加する方法があります。

php_value memory_limit 256M

元の値(Master Value)より大きいメモリ上限(Local Value) が設定されます。

現在のメモリ上限が256Mに

現在のメモリ上限が256Mに

これで、「Fatal error: Allowed memory size of」は解消されるはずです。

スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

PHP関数

WordPress

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク