eaccelerator是一个非常优秀的php加速器,通过缓存编译之后的php代码文件,使得php编译对服务器的开销几乎为零。eaccelerator本身的开销也是极少的 最新的php5.4.8安装eaccelerator, 需要注意的是要安装高版本的,低了编译不过去。 官网:http://eaccelerat
eaccelerator是一个非常优秀的php加速器,通过缓存编译之后的php代码文件,使得php编译对服务器的开销几乎为零。eaccelerator本身的开销也是极少的
最新的php5.4.8安装eaccelerator,
需要注意的是要安装高版本的,低了编译不过去。
官网:http://eaccelerator.net/
1.下载安装eaccelerator
#wget https://github.com/eaccelerator/eaccelerator/tarball/master
最新的版本是eaccelerator-42067ac.tar.gz
#tar zxvf eaccelerator-42067ac.tar.gz
需要phpize安装php扩展,如果不明白phpize可以看这个:http://blog.csdn.net/21aspnet/article/details/8193482
需要注意的是需要写php的安装路径对应的phpize下面的php-config也是
# /usr/local/webserver/php/bin/phpize
需要记住生成的提示信息下面配置php要用到
/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-
20100525/
#./configure --enable-eaccelerator=shared --with-php-config=/usr/local/webserver/php/bin/php-config
# make
需要注意的是要安装高版本的,低了编译不过去。
# make install
2.配置php.ini配置文件
[eaccelerator]
extension=/data/webserver/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so
eaccelerator.shm_size=32
eaccelerator.cache_dir=/data/cache/eaccelerator
eaccelerator.enable=1
eaccelerator.optimizer=1 (如果没有安装optimizer请设置为0关闭加速引擎,否则会出现php脚本错误)
eaccelerator.check_mtime=1
eaccelerator.debug=0
eaccelerator.filter=
eaccelerator.shm_max=0
eaccelerator.shm_ttl=0
eaccelerator.shm_prune_period=0
eaccelerator.shm_only=0
eaccelerator.compress=1
eaccelerator.compress_level=9
建立缓存目录:
# mkdir -p /data/cache/eaccelerator
# chmod 0777 /data/cache/eaccelerator
重启apache:
# service httpd restart
3、检查zendoptimizer和eaccelerator是否安装成功
创建一个phpinfo.php文件,内容如下:
将该文件放置到网站目录,在浏览器中访问,如果出现以下内容则安装成功:
this program makes use of the zend scripting language engine:
zend engine v2.2.0, copyright (c) 1998-2007 zend technologies
with eaccelerator v0.9.5, copyright (c) 2004-2006 eaccelerator, by eaccelerator
with zend extension manager v1.0.11, copyright (c) 2003-2006, by zend technologies
with zend optimizer v3.2.2, copyright (c) 1998-2006, by zend technologies
二、eaccelerator配置信息详解(根据官方英文说明翻译)
extension=/data/webserver/php/lib/php/extensions/no-debug-zts-20060613/eaccelerator.so
解释:php扩展eaccelerator.so的路径。
--------------------
eaccelerator.shm_size=32
解释:eaccelerator可使用的共享内存大小(单位为mb)。
在linux下,单个进程的最大内存使用量受/proc/sys/kernel/shmmax中设置的数字限制(单位为字节),例如centos 4.4的shmmax默认值为33554432字节(33554432bytes/1024/1024=32mb)。
临时更改该值:
# echo 字节数 > /proc/sys/kernel/shmmax
按照以上方法更改,在每次重启系统时,该值会被自动还原。如果想永久更改,可以修改/etc/sysctl.conf文件,设置:
kernel.shmmax = 字节数
--------------------
eaccelerator.cache_dir=/data/cache/eaccelerator
解释:缓存路径,可以使用命令mkdir -p /data/cache/eaccelerator创建该目录,然后使用命令chmod 0777 /data/cache/eaccelerator设置该目录权限为0777
--------------------
eaccelerator.enable=1
解释:打开或者关闭eaccelerator。1指打开,0指关闭。默认值为1。
--------------------
eaccelerator.optimizer=1 (如果没有安装optimizer请设置为0关闭加速引擎,否则会出现php脚本错误)
解释:打开或者关闭代码优化,开启可以加快代码的执行速度。1指打开,0指关闭。默认值为1。
--------------------
eaccelerator.check_mtime=1
解释:当打开此项时,eaccelerator会在每次请求时检查php文件的修改时间,看其是否被修改过,这会耗费一点时间,如果php文件被修改过,eaccelerator会重新编译缓存该php文件。当关闭此项时,如果php文件被修改,则需要手工删除eaccelerator缓存,才能显示被修改的php文件。1指打开,0指关闭。默认值为1。
--------------------
eaccelerator.debug=0
解释:打开或者关闭调试记录。当打开时,eaccelerator会将对一个缓存文件的每次请求都写进log。打开此项只对调试eaccelerator是否有bug时有益处。1指打开,0指关闭。默认值为0。
--------------------
eaccelerator.filter=
解释:决定哪些php文件应该被缓存。可以指定一个范围(比如*.php *.phtml),这样被指定的文件就会被缓存。如果该范围以!开头,被指定的文件就不会被缓存。默认值为,表示缓存所有的php文件。
--------------------
eaccelerator.shm_max=0
解释:一个用户使用例如eaccelerator_put之类的函数能够往共享内存中加载的最大数据。默认值为0,表示不限制。(单位为字节)
--------------------
eaccelerator.shm_ttl=0
解释:当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删除至少在shm_ttl秒之前没有被访问过的文件。默认值为0,表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)
--------------------
eaccelerator.shm_prune_period=0
解释:当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删所有旧脚本,前提是这个尝试在超过shm_prune_period秒之前被执行过。默认值为0,表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)
--------------------
eaccelerator.shm_only=0
解释:打开或者关闭在磁盘上缓存编译过的脚本。这个参数对会话数据和内容缓存没有效果。默认值为0,表示使用磁盘和共享内存来缓存。
--------------------
eaccelerator.compress=1
解释:打开或者关闭缓存内容压缩。1指打开,0指关闭。默认值为1。
--------------------
eaccelerator.compress_level=9
解释:内存压缩的级别。默认值为9,表示最大压缩。
#这个是我机器的so位置
extension=/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so
#这个是设置一个缓存大小
eaccelerator.shm_size=64
#缓存目录
eaccelerator.cache_dir=/usr/local/webserver/eaccelerator_cache 实际配置不建议放在web目录下,考虑到安全因素建议放到web目录以外
#网站目录,把解开的eaccelerator 的源码包里的control.php 文件复制到你的web 服务器中的一个目录下,使其它以通过http 访问,如果不加那么看不到缓存的页面列表,但是还是可以看到内存信息
eaccelerator.allowed_admin_path=/usr/www/
eaccelerator.enable=1
eaccelerator.optimizer=1 (如果没有安装optimizer请设置为0关闭加速引擎,否则会出现php脚本错误)
eaccelerator.check_mtime=1
eaccelerator.debug=0
eaccelerator.filter=
eaccelerator.shm_max=0
eaccelerator.shm_ttl=0
eaccelerator.shm_prune_period=0
eaccelerator.shm_only=0
eaccelerator.compress=1
eaccelerator.compress_level=9
eaccelerator.keys = disk_only
eaccelerator.sessions = disk_only
eaccelerator.content = disk_only
设置内容缓存的存放的地方,可以设置为:
shm_and_disk 在共享缓存和硬盘(默认值)
shm 默认存在共享内存,如果共享内存已满或大小超过 eaccelerator.shm_max 的值,就存到硬盘
shm_only 只存放在共享内存
disk_only 只存放在硬盘
none 不缓存数据
这里为了查看效果设置为存在硬盘
增加权限
#mkdir /usr/local/webserver/eaccelerator_cache
#chmod 777 /usr/local/webserver/eaccelerator_cache
3.测试查看phpinfo()
4.查看缓存文件夹
为了直观所以截图图形界面
这说明成功生成了缓存
5.更好的监控方式
eaccelerator控制面板的地址,安装包里有一个control.php文件,把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错,访问时候默认的用户名是:admin,密码:eaccelerator
注意,之前的php.ini配置文件加上这个配置就会看到明细信息
eaccelerator.allowed_admin_path=/usr/www/
重启apache则会清空缓存
文档:
eaccelerator.shm_size=8
eaccelerator 可以使用的共享内存的数量 (以mb为单位) . 0 是指操作系统的默认值,默认值是 0,可根据服务器的实际情况来调整:16、32、64、128都是可以的。
eaccelerator.cache_dir=/usr/local/webserver/eaccelerator_cache
这个目录是给磁盘缓存使用,eaccelerator 在这里储存预先编译好的代码,进程数据,内容以及用户的自定义内容。同样的数据也能被储存在共享内存中 (这样可以提高访问速度)
eaccelerator.enable=1
开启或关闭 eaccelerator,1 为开启,0 为关闭。默认值为 1。
eaccelerator.optimizer=1 (如果没有安装optimizer请设置为0关闭加速引擎,否则会出现php脚本错误)
启或关闭内部优化器,可以提升代码执行速度。1 为开启,0 为关闭。默认值为 1。
eaccelerator.check_mtime=1
打开或者关闭 php 的文件修改检查,1 是指打开,0 是指关闭。默认值是 1。
eaccelerator.debug=0
开启或关闭调试日志记录。1 为开启,0 为关闭。默认值为 0。会将缓存命中得记录写入日志。
eaccelerator.filter=
判断哪些 php 文件必须缓存。可以指定缓存和不缓存的文件类型(如 *.php *.phtml等)如果参数以 ! 开头,则匹配这些参数的文件被忽略缓存。默认值为 ,即,所有 php 文件都将被缓存。
eaccelerator.shm_max=0
当使用 eaccelerator_put() 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10k, 1m)。0 为不限制。默认值为 0。
eaccelerator.shm_ttl=3600
当 eaccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 shm_ttl 秒内没有存取的脚本缓存。默认值为0,为不从共享内存中删除任何缓存文件。
eaccelerator.shm_prune_period=3600
当 eaccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于shm_prune_period 秒的缓存脚本。默认值为 0,为不从共享内存中删除任何缓存文件。
eaccelerator.shm_only=0
允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 0,为使用磁盘和共享内存进行缓存。
eaccelerator.compress=1
允许或禁止压缩内容缓存。默认值为 1,为允许压缩。
eaccelerator.compress_level=9
指定内容缓存的压缩等级。默认值为 9,为最高等级。
eaccelerator.keys = disk_only
eaccelerator.sessions = disk_only
eaccelerator.content = disk_only
设置内容缓存的存放的地方,可以设置为:
shm_and_disk 在共享缓存和硬盘(默认值)
shm 默认存在共享内存,如果共享内存已满或大小超过 eaccelerator.shm_max 的值,就存到硬盘
shm_only 只存放在共享内存
disk_only 只存放在硬盘
none 不缓存数据
6.测试性能
快速排序代码
[php] view plaincopyprint?
