PHP — 解決 Allowed memory size of xxxxxx bytes exhausted

PHP 執行時如果出現 Allowed memory size of xxxxxx bytes exhausted 錯誤, 即執行 PHP 時使用過多記憶體, 起出了 php.ini 設定的限制, 解決方法是修改 php.ini 的 memory_limit 參數, 如果是 Redhat / CentOS / Fedora 用 yum 或 rpm 安裝 PHP, php.ini 位置在 /etc/php.ini, 而 Debian 是放在 /etc/php5/apache2/php.ini。如果找不到的話, 可以用 phpinfo() 查看, 或者用以下指令取得:


php -i | grep Loaded Configuration File

以我的設定為例, 原本是:

memory_limit = 128M

上面的限制 PHP Script 執行時可用 128MB 記憶體, 將它加大為 256MB 這樣寫:

but 我已經設成最大的 128MB 了, 又不想從程式面改…

memory_limit = 256M

需要重新啟動 Apache 才會生效。但如果不能修改 php.ini 設定的話, 可以在 PHP 開頭部份加上這行:

ini_set(‘memory_limit’, ‘256M’);


Leave a Reply