PHPの使用メモリの上限設定変更Windows・Linux(Ubuntu/Debian/Fedora/CentOS)・FreeBSD

PHPで使えるメモリ量の上限設定は,標準では案外低めに設定されています。高く設定しているとOSがメモリ不足になる可能性があるので,普通は変更しないのですが,プログラムによってはメモリ不足でPHPのプログラムが止まってしまうことがあります。

PHPの実行で メモリ不足だと,ページが真っ白になってしまい,何も出力されないこともあります。(エラーメッセージすら出ない)

PHPで使えるメモリ量の上限を変更する方法は,サーバの設定を変更してやる必要があります。
php.ini という設定ファイルで変更できます。php.iniの場所は環境によって異なります。

php.ini の中から

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

max_execution_time = 60 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 32M ; Maximum amount of memory a script may consume (16MB)

という部分を探し,
memory_limit = 32M ; Maximum amount of memory a script may consume (16MB)

32M という風になっている部分を修正すれば,使えるメモリ上限を変更出来ます。
もちろん32M は,上限 32MBの意味。バージョンとかによっては初期設定で 16Mとか 8Mとかになっていることもあります。

OS,環境ごとのPHPのphp.ini設定ファイルの位置が違うので,メジャーな環境の php.ini の設定ファイルの位置の一覧表を載せておきます。

Windows環境の場合:
XAMPPでインストールした場合
C:\\xampp\\php
の中の
php.ini
ので設定

WindowsにPHPを単体でインストールした場合
C:\\Windows\\php.ini や C:\\php\\php.ini など,環境によって異なります・・・。

Linux 環境で LAMPPで入れた場合
/opt/xampp/etc/php.ini
を編集
LAMPPはXAMPPのLinux版。

Linux (CentOS/RedHat/Fedora系)の場合
/etc/php.ini
設定後,apacheを再起動。( apachectrl restart これが使えない場合は /etc/init.d/httpd restart でも出来ます。)

Linux (Ubuntu/Debian系)の場合は,ソフトのバージョンの組み合わせ ごとに決まっている。バージョンを把握していれば,どこにあるか,迷うことはない。
Apache2 + PHP5 なら
/etc/php5/apache2/php.ini
設定後,apache2を再起動。( apache2ctrl restart もしくは /etc/init.d/apache2 restart )

Apache + PHP4 なら
/etc/php4/apache/php.ini
設定後,apacheを再起動。( apachectrl restart もしくは /etc/init.d/apache restart )

PHP5 cli (コマンドラインで使えるPHP)なら
/etc/php5/cli/php.ini
(この場合は再起動などの処理は不要です。)

FreeBSD の場合
/usr/local/etc/php.ini
の場合が一般的らしい。

comments

コメントを残す