分享、学习、提高
2010/07/29 17:06
文章作者:Enjoy 转载请注明原文链接。
网上的文章一般介绍nginx+php的安装都使用eaccelerator,其实用APC也很方便。以下是安装手记。

下载最新版APC
wget http://pecl.php.net/get/APC
tar zxf APC-3.1.3p1.tgz
cd APC-3.1.3p1
/usr/local/webserver/php/bin/phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/webserver/php/bin/php-config
make
make install
提示
Installing shared extensions:     /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/
在这个目录下生成了一个apc.so文件

修改php.ini
vi /usr/local/webserver/php/etc/php.ini

extension_dir = "./"
修改为
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"
再在下面加一句:
extension = apc.so

重载下php的配置文件
/usr/local/webserver/php/sbin/php-fpm reload

列几个常用的配置,一般来说都不用改,除了apc.shm_size这个值,即分配多少内存给APC存储。

apc.shm_size = 30
;每个共享内存块的大小,单位是M

apc.enabled = 1
这是默认配置,1是启用

apc.ttl = 0
; 缓存条目在缓冲区中允许逗留的秒数。0 表示永不超时。建议值为7200~36000

apc.gc_ttl = 3600
; 缓存条目在垃圾回收表中能够存在的秒数。

apc.stat=1

; 是否启用脚本更新检查。改变这个指令值要非常小心。默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新, 如果被更新则自动重新编译和缓存编译后的内容。但这样做对性能有不利影响。如果设为 Off 则表示不进行检查,从而使性能得到大幅提高。但是为了使更新的内容生效,你必须重启Web服务器。
; 这个指令对于include/require的文件同样有效。但是需要注意的是,如果你使用的是相对路径,APC就必须在每一次include/require时都进行检查以定位文件。而使用绝对路径则可以跳过检查,所以建议使用绝对路径进行include/require操作。

更多配置参数请参见:http://cn2.php.net/apc

默认启用的是APC的System Cache功能,以下是PHP使用User Cache的最常用方法
<?php
//$mem_key是键值,$cache_time是缓存时间
$hx_info = apc_fetch($mem_key);
if(!$hx_info){
    apc_store($mem_key, $hx_info, $cache_time);
}
?>
发表评论
表情
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写