分享、学习、提高
Thank you for reading...
2013/12/08 13:01
Tags: ,
网站需要新加一个常量,打开了本地的config.php文件,想到了几年前测试过的hidef以及apc提升define性能的方案。
我的程序中有对开发、测试、生产服务器分别做了不同的配置,在常量方面则使用了一个数组定义了所有需要定义的常量,然后检测是否有apc_load_constants函数,没有的话,批量define。使用apc时,每增加一个常量,还需要修改一下$key才能生效。
2011/06/07 16:39
Tags: , ,
官网:http://pecl.php.net/package/hidef
简介:
  Allow definition of user defined constants in simple ini files, which are then processed like internal constants, without any
of the usual performance penalties.
  允许使用简单的ini文件来定义需要的常量,就像使用内部变量一样,而且没有使用Define的性能问题。

作者说Hidef is initialized in php module init, before apache starts spawning children.
在apache启动前,PHP启动时创建并初始化了这些常量,这样就不需要在php里define常量了,性能自然没有任何问题了!
在Nginx下同样可用,以下是安装过程:
2011/03/24 21:20
Tags: ,
照猫画虎写了个升级APC的脚本,在几台服务器上测试通过。
主要需要修改一个参数,php_path,是PHP的安装路径。
另两个参数是soft_path软件下载的目录,apc_version是apc的版本号,目前3.1.6是最新稳定版。
安装完后,需要重启相应服务。
如果是apache+php,那么重启apache;
如果是nginx+php(fast-cgi),那么重启php-fpm。/usr/local/webserver/php/sbin/php-fpm restart
2010/10/27 18:08
Tags: ,
前几天在web服务器上装了APC的最新版3.14版(2010-08-05发布的),在php的错误日志中看到如下的提示:

[27-Oct-2010 17:30:01] PHP Warning:  PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini files in Unknown on line 0

原来是在php.ini中我设置了apc的缓存大小,这样设置的:apc.shm_size=128
而实际上需要在后面加上M或者G,于是修改为:apc.shm_size=128M

这个PHP Warning消失了:)
2010/07/29 17:06
Tags: , ,
网上的文章一般介绍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);
}
?>
分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]