EACCELERATOR: PHP crashed on opline waiting for debugger
EACCELERATOR经常出现错误导致apache假死的原因。
错误提示如下:
[36693] EACCELERATOR: PHP crashed on opline 132 of Rss() at /blog/rss.php:56
Segmentation Fault in 36693, waiting for debugger
估计这个rss.php很少有人访问,故EACCELERATOR缓存中缺这个文件所需的rss()函数,造成PHP假死。
解决对策:
让EACCELERATOR不对这个文件进行缓存。修改php.ini如下:
[eaccelerator]
zend_extension=”/php/20050922-zts/eaccelerator.so”
eaccelerator.shm_size=”16″
;分配的内存以及磁盘限额单位是M,根据你的系统内存来,默认16M,可以改成64M
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”!rss.php !bless.php”
;决定哪些PHP文件应该被缓存。可以指定一个范围(比如”*.php *.phtml”),这样被指定的文件就会被缓存。如果该范围以!开头,被指定的文件就不会被缓存。默认值为”",表示缓存所有的PHP文件。
;空格分割支持*和!语法
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”60″
;当 eAccelerator 用完共享内存时,60 秒内未被访问的所有脚本都将被清除
eaccelerator.shm_prune_period=”30″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
;压缩等级,级别越高,越节省带宽,但会占用cpu
eaccelerator.compress_level=”9″
;eaccelerator.log_file = “/dev/null”
;eaccelerator会往apache的errorlog中不停的写hint日志,这是取消
注意这一项:eaccelerator.filter
判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等)
如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件
都将被缓存。
被忽略缓存的文件必须使用绝对路径,如:
eaccelerator.filter = “!/var/www/vhosts/thepoultrykeeper.co.uk/subdomains/forums/httpdocs/cache/sql !*.inc *.php”
eaccelerator.filter = “!/usr/share/php5/PEAR/symfony*”

全部 0条评论