以下のような環境です。
bash
1vagrant@ns1:~$ cat /etc/system-release 2CentOS release 6.9 (Final) 3 4vagrant@ns1:~$ rpm -qa|grep -E '^(php|http)' | sort 5httpd-2.2.15-60.el6.centos.5.x86_64 6httpd-tools-2.2.15-60.el6.centos.5.x86_64 7php-5.3.3-49.el6.x86_64 8php-cli-5.3.3-49.el6.x86_64 9php-common-5.3.3-49.el6.x86_64 10php-gd-5.3.3-49.el6.x86_64 11php-mbstring-5.3.3-49.el6.x86_64 12php-pdo-5.3.3-49.el6.x86_64 13php-pear-1.9.4-5.el6.noarch 14php-pgsql-5.3.3-49.el6.x86_64 15php-xml-5.3.3-49.el6.x86_64 16 17vagrant@ns1:~$ grep memory_limit /etc/php.ini 18memory_limit = 128M 19 20vagrant@ns1:~$ tail -3 /etc/httpd/conf/httpd.conf 21<Directory /var/www/html/limited> 22 php_value memory_limit 64MB 23</Directory>
/etc/php.ini は何もいじらずに、httpd.conf に3行追加することで、memory_limit を特定の箇所だけ制限するという実験をしていてハマりましたw
bash
1root@ns1:/var/www/html# cat memory.php 2<?php 3echo "We are at ".__FILE__.'<br>'.PHP_EOL; 4echo "memory_limit = ".ini_get("memory_limit").'<br>'.PHP_EOL; 5root@ns1:/var/www/html# cat safe/memory.php 6<?php 7echo "We are at ".__FILE__.'<br>'.PHP_EOL; 8echo "memory_limit = ".ini_get("memory_limit").'<br>'.PHP_EOL; 9root@ns1:/var/www/html# cat limited/memory.php 10<?php 11echo "We are at ".__FILE__.'<br>'.PHP_EOL; 12echo "memory_limit = ".ini_get("memory_limit").'<br>'.PHP_EOL;
memory.php というファイルを3箇所に置いて、それぞれ呼び出します。
bash
1vagrant@ns1:~$ curl http://localhost/memory.php 2We are at /var/www/html/memory.php<br> 3memory_limit = 128M<br> 4 5vagrant@ns1:~$ curl http://localhost/safe/memory.php 6We are at /var/www/html/safe/memory.php<br> 7memory_limit = 128M<br> 8 9vagrant@ns1:~$ curl http://localhost/limited/memory.php 10死亡、、、(´・ω・`) 11 12root@ns1:/var/www/html/limited# tail -1 /var/log/httpd/error_log 13[Thu Aug 31 16:59:21 2017] [error] [client ::1] PHP Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 523800 bytes) in Unknown on line 0 14 15(CLIでやると) 16root@ns1:/var/www/html/limited# php memory.php 17We are at /var/www/html/limited/memory.php<br> 18memory_limit = 128M<br> 19(これは Apache を通らないのでデフォルトのままでOK)
なんか心当たりがありましたらお願いします。バグ踏んじゃったかなぁ。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/01 00:01