大流量站点推荐使用稳定性更好的APC加速缓存
APC 和 eAccelerator 都是不错的PHP加速缓存,但是为什么在这里要推荐使用 APC 而不是 eAccelerator 呢?
1,根据我们对几个大站点的测试,虽然 eAccelerator 在低负载下,性能要比 APC 好点,但是在大流量长期运行的情况下,APC 要比 eAccelerator 要更为稳定。我们推荐出现了 PHP 突然假死,无故出现 502 报错的站点,改用 APC 。
2,Discuz! X2 开始支持用 APC 作为论坛缓存,经过大量站点的使用情况来看,APC的稳定性很好,不会出现一些灵异情况。
3,APC 的发展迅速,自从 FACEBOOK 加入对 APC 的更新后,得到了很大发展,而 eAccelerator 新版本稳定性不佳,功能和代码都被删除了不少。
4,APC 对 PHP5.3 版本支持良好。
APC的安装很简单,下面的步骤以http://faq.comsenz.com/userguide/x/nginx.html的安装规范为准。
1,下载APC
1 |
wget http://pecl.php.net/get/APC-3.1.9.tgz |
2,解压和编译
1 2 3 4 5 6 7 |
tar zxvf APC-3.1.9.tgz cd APC-3.1.9 /usr/local/php5/bin/phpize ./configure --enable-apc --enable-mmap --enable-apc-spinlocks --disable-apc-pthreadmutex --with-php-config=/usr/local/php5/bin/php-config make make install make clean |
3,编辑php.ini
找到 extension_dir ,把值改为/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/
然后在下面加入
1 2 3 4 |
extension=apc.so apc.enabled = 1 apc.shm_size = 64M apc.stat = 1 |
其中apc.shm_size设置的是内存大小,一般用64M即可,小内存的可以改为32M。
apc.stat设置成0的话,性能会更好一点,但是设置成0后,修改了PHP文件后必须得重启下PHP才能马上更新内容。对于平时修改比较多的站点来说,还是设置成1比较好。
4,重启PHP即可生效。