目次
PHP Fatal error: Allowed memory size of xxxxxx bytes exhausted と出た
phpでプログラムを実行した際に、エラーになり、エラーログには、下記のように表示されていました。
PHP Fatal error: Allowed memory size of xxxxxx bytes exhausted
これは、phpのプログラム内で大量のデータを扱って処理している場合、メモリ不足が発生すると、Fatalエラーになります。
メモリの設定数値を確認してみます。設定はphpの設定ファイル、php.iniに書かれています。
php.ini のファイルの場所を確認します。
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
/etc 以下にあることが分かりました。
$ cat /etc/php.ini | grep memory_limit
memory_limit = 128M
メモリの上限値は、128Mになっていることが分かりました。プログラム内で、この値を超える処理量になっているため、エラーが発生しているようです。
PHPのメモリ使用量を確認する方法
PHPのメモリ使用量を確認する方法を記載します。
echo 'メモリ使用量: ' . memory_get_usage() / (1024 * 1024) . 'MB';
echo 'メモリ最大使用量: ' . memory_get_peak_usage() / (1024 * 1024) . 'MB';
プログラム内に上記を埋め込むことで出力することができますので、確認してみてください。
PHP Fatal error: Allowed memory size of xxxxxx bytes exhausted の解消方法
メモリ不足が起きていますので、上限値を引き上げます。php.ini から設定を変更しましょう。
$ vim /etc/php.ini
memory_limit = 512M
512Mに引き上げました。
$ cat /etc/php.ini | grep memory_limit
memory_limit = 512M
上がっていることを確認できました。