running PHP version 5.3.3 on CentOS / RHEL 6.x with APC php-pecl-apc-3.1.9. However, I’m getting the following warnings in my php server log file:
[01-Jul-2012 10:50:49] PHP Warning: require_once(): Unable to allocate memory for pool. in /var/www/html/includes/admin.php on line 57
[18-Jul-2012 17:00:08] PHP Warning: include_once(): Unable to allocate memory for pool. in //var/www/html/includes/xmlrpc.php on line 55
[18-Jul-2012 17:00:40] PHP Warning: require(): Unable to allocate memory for pool. in /var/www/html/includes/geshi.php on line 2307
How do I fix these php warnings?
This error is usually related to Alternative PHP Cache (APC). APC is a free and open opcode cache for PHP. Its goal is to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.
Solution
Edit the file /etc/php.d/apc.ini (Debian and/or Ubuntu Linux user edit the/etc/php5/conf.d/apc.ini), enter:# vi /etc/php.d/apc.ini
Make sure the mktemp-style file_mask to pass to the mmap module is correct and valid one:
Next make sure the size of each shared memory segment, with M/G suffix is set correct as per your requirements. In my case it was set to 8M:
You need to adjust the number of seconds a cache entry is allowed to idle in a slot in case this cache entry slot is needed by another entry:
The number of seconds a user cache entry is allowed to idle in a slot in case this cache entry slot is needed by another entry:
The number of seconds that a cache entry may remain on the garbage-collection list.
Save and close the file. Make sure you adjust the values as per your web-app requirements. Restart the Apache 2 web server:# service httpd restart
If you are using the Lighttpd instead of Apache2 web-server, restart the Lighttpd web server:# service lighttpd restart
If you are using Nginx instead of Apache2 or Lighttpd, restart the Nginx web server:# service nginx restart
OR# /usr/local/nginx/sbin/nginx -s reload
Tip: Find out your APC memory usage and hit ratio
You need to find out exact memory usage and hit ratio so that you can set apc.ttl and apc.shm_size as per your work load. Copy /usr/share/php-pecl-apc/apc.php to your /var/www/html directory i.e. Apache DocumentRoot:# cp /usr/share/php-pecl-apc/apc.php /var/www/html
Edit /var/www/html/apc.php and set the admin password :
Save and close the file. Fire a web-browser and type the url:http://server-ip-here/apc.php
ORhttp://server1.cyberciti.biz/apc.php
Sample outputs:
From the above graph I’m getting 100.0% hit ratio and I’ve used almost all memory. I need to increase memory and reduce ttl value so that I will not get memory allocation error.
References:
출처 : http://www.cyberciti.biz/faq/linux-unix-php-warning-unable-to-allocate-memory-for-pool/
'# Script > PHP' 카테고리의 다른 글
curl를 이용한 다음 자동로그인 (0) | 2016.08.24 |
---|---|
PHP 주석제거 정규식 (0) | 2016.03.30 |
PHP, 스누피 클래스를 이용해서 현재 주가 긁어오기 (0) | 2016.03.29 |
[error]PHP 컴파일 과정에서 흔히 볼 수 있는 오류 메시지 해결 방법2 (0) | 2015.08.16 |
PHP 컴파일 과정에서 흔히 볼 수 있는 오류 메시지 해결 방법 (0) | 2015.08.16 |
안녕하세요. 이곳은 IT위주의 잡다한 정보를 올려두는 개인 블로그입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!