存档

文章标签 ‘eaccelerator’

给你的PHP加速

2011年7月19日 effect 没有评论

PHP作为一种解释性的语言,可以快速的构建各种WEB服务,并且有着良好的扩展性和维护性。然而每次请求时候,都会把PHP源码解释编译成操作系统可识别的机器码然后再执行,这样下来每次请求都会重复的进行解释编译,那有没有什么方法可以不重复解释编译呢?本文就介绍几种常用的PHP加速器。

什么是PHP加速器?

通过前面的了解,每次HTTP的请求都会进行一个过程:把编译解释成操作系统可以直接运行的机器码。这是一个重复的工作,加速器的功能就是把这一过程缓存起来重复使用。常用的加速器有:Alternative PHP Cache (APC)、XCache、eAccelerator。

Xcache

安装方式无非就是标准的PECL的按照方式,下面就说一下关键的配置文件和查看统计信息的方法。

配置

xcache.cacher = On    开启opcode 缓存器  当size为0时候无效

xcache.size  = 64M 缓存大小一般的网站64M足够,如果此台WEB SERVER有多个vhosts,那么可以适当的增加到256M或者512M等

xcache.count  CPU个数,如果是双核算2,8核的是8

xcache.var_size 同xcache.size

xcache.var_count 同xcache.count

xcache.ttl  缓存项目的ttl(Time To Live) 生命周期,0是永远

xcache.gc_interval  扫描过期项目的时间间隔, 0不扫描,

xcache.coverager  是否启用代码覆盖,测试时候发现关闭次选项加速效果更好

统计信息

拷贝源码中的admin目录下的文件到你的网站的目光目录下(比如是xcacheadmin),那么输入http://yourdomain/xcacheadmin/,这里会有验证框弹出,输入配置中的admin和pass即可。

eaccelerator

安装方式也是标准的PECL安装方式

配置

eaccelerator.shm_size = “8″     eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0″ 是指操作系统的默认值. 默认值是 “0″.
eaccelerator.cache_dir = “/tmp/eaccelerator”
eaccelerator.enable = “1″  是否开启 1打开 0关闭
eaccelerator.optimizer = “1″    是否开启内部优化 1打开
eaccelerator.check_mtime = “1″  是否开启文件修改的检测 1开启 0关闭
eaccelerator.debug = 0  是否打开日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0″。会将缓存命中得记录写入日志。
eaccelerator.filter = “”   判断缓存的文件,如果以叹号!开头,那么匹配的将不缓存,否则匹配的加入缓存,默认是空,表示所有的都缓存
eaccelerator.shm_max = “0″
eaccelerator.shm_ttl = 0
eaccelerator.prune_period = 0
eaccelerator.shm_only = 0
eaccelerator.compress = 1  是否压缩缓存内容  1允许
eacceleratorcompress_level = 9  压缩内容的等级 9是最高级

其他加速方法

编译

尽可能的只编译你需要的模块、很少用的模块编译成共享模式,执行时动态加载

配置

禁用register_globals

关闭magic_quotes_*

关闭expose_php

后记

加速PHP只是给PHP编译解析这一重复的过程进行优化,而一个WEB服务本身的执行速度还是取决于是否合理的使用了数据库、是否很好的使用了一些缓存系统(比如memcached)、整个架构是否是最优的。当然在这些条件都一致的情况下,使用这些加速软件还是能有一些效果。

APC一直没有实验,对比了一下xcache和eaccelerator,eacce稍微占优,而且配置文件也相对简单一点,所以个人倾向于使用eacce,当然每个项目可能结果不太一样,大家可以对比后再取舍。

分类: php 标签: ,