与
ESC
输入关键词搜索文章

php5.3.28更换缓存加速eAccelerator为APC

全文约 778 字预计阅读 3 分钟
APC 和 eAccelerator 都是不错的PHP加速缓存,因为eAccelerator有问题没办法才选择apc的,建议除非eAccelerator有变态无法解决的问题,才选择apc,毕竟apc也是停止维护的了,php5.3恐怕没有更好的选择,都往5.4 5.4 5.6发展了,高版本使用zend-opcache。 最近有台新配置的服务器php5.3.28 nginx1.62,还是照常使用eAccelerator 加速,可是就是会不定期出现cpu占用率php-frm死锁的情况,无论怎么调整服务器和php配置都无法解决。出现死锁的情况后,cli模式还是可以照常运行php的,就是无论运行任何一个php页面就会有个cpu99%的php-frm出现,最后运行到502或504。 使用strace -p追踪线程,循环不停出现sched_yield() = 0,直到最后结束,没有其它任何提示了。 网上搜索了半天应该是eAccelerator的东西,内部出现某个while一直循环执行,至于为什么会这样,功力有限。看来只能更换缓存加速插件了,最后决定php原配的APC。 下面就动手吧 1、下载 wget http://pecl.php.net/get/APC-3.1.9.tgz 2、解压和编译 tar zxvf APC-3.1.9.tgz cd APC-3.1.9 /usr/local/php/bin/phpize ./configure --enable-apc --enable-mmap --enable-apc-spinlocks --disable-apc-pthreadmutex --with-php-config=/usr/local/php/bin/php-config make make install make clean 3、编辑php.ini 找到 extension_dir ,把值改为/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/ 然后在下面加入 [APC] extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/apc.so" apc.cache_by_default = On apc.enabled = On apc.max_file_size = 1m apc.shm_segments = 1 apc.shm_size = 64 apc.stat = On apc.write_lock = On apc.mmap_file_mask = /tmp/apc.XXXXXX apc.ttl = 7200 apc.user_ttl = 7200 apc.gc_ttl=3600 apc.num_filters_hint = 1024 apc.file_update_protection=2 具体的配置参数解释看:http://php.net/manual/zh/apc.configuration.php apc.stat设置成0的话,性能会更好一点,但是设置成0后,修改了PHP文件后必须得重启下PHP才能马上更新内容。对于平时修改比较多的站点来说,还是设置成1比较好。 重启php完成。 eAccelerator就把缓存目录删除,配置php.ini文件里面注释掉就可以了。 安装apc扩展的时候如出现以下错误 # /usr/local/php/bin/phpize Configuring for: PHP Api Version:         20090626 Zend Module Api No:      20090626 Zend Extension Api No:   220090626 config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, ...): suspicious cache-id, must contain _cv_ to be cached ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from... config.m4:180: the top level config.m4:180: warning: AC_CACHE_VAL(PHP_APC_GCC_ATOMICS, ...): suspicious cache-id, must contain _cv_ to be cached ../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from... ../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from... config.m4:180: the top level 按这个autoconf-2.13即可 wget -c http://soft.vpser.net/lib/autoconf/autoconf-2.13.tar.gz tar zxvf autoconf-2.13.tar.gz cd autoconf-2.13/ ./configure --prefix=/usr/local/autoconf-2.13 make && make install export PHP_AUTOCONF=/usr/local/autoconf-2.13/bin/autoconf export PHP_AUTOHEADER=/usr/local/autoconf-2.13/bin/autoheader 有问题留言!^_^  
php5.3.28更换缓存加速eAccelerator为APC
分享

发表评论

评论 0 条

暂无评论,来说点什么吧。