eAccelerator配置参数官方详细说明

By , 2012/07/10 - 9,249 views

eAccelerator是一个非常优秀的PHP加速器,通过缓存编译之后的PHP代码文件,使得PHP编译对服务器的开销几乎为零。eAccelerator本身的开销也是极少的,看起来太棒啦~~!可惜官方的文档是英文的,今天在Centos下面调整eAccelerator参数的时候,觉得要是有一份中文的eAccelerator配置说明会方便得多。本次译本为官方原文全文翻译,并根据一些常出现的问题做了提示。转载请注明出处学而得Blog

eAccelerator 设置参数

下面列出了eAccelerator的所有设置参数。每个参数都不是必须设置的(除了加载eAccelerator这一项配置是必须的,不加载怎么运行呢…呵呵呵),没有被设置的参数将使用默认值。

加载 eAccelerator

从下面列表中选择一项用来加载eAccelerator扩展。(只能选择一种方式)

extension="eaccelerator.so"
zend_extension="/usr/lib/php4/eaccelerator.so"
zend_extension_ts="/usr/lib/php4/eaccelerator.so"
extension="eaccelerator.dll"
zend_extension_ts="c:\php4\eaccelerator.dll"
zend_extension="c:\php4\eaccelerator.dll"

您可以查看 安装教程 来查看eAccelerator安装在哪里, 从而决定选择哪一项来加载。

eaccelerator.shm_size

设置eAccelerator分配的共享内存的总大小,用于存储PHP代码缓存。参数的单位是兆(MB),当参数设置为0时,将读取默认值。

eaccelerator.shm_size = "0"

在Linux下,单个进程的最大内存使用量受/proc/sys/kernel/shmmax中设置的数字限制(单位为字节),例如CentOS、Redhat的shmmax默认值为33554432字节(33554432bytes/1024/1024=32MB)。

临时更改该值:
echo value > /proc/sys/kernel/shmmax
注:value为字节数

按照以上方法更改,在每次重启系统时,该值会被自动还原。如果想永久更改,可以修改/etc/sysctl.conf文件,添加设置:

kernel.shmmax = 字节数

如果你的eaccelerator使用默认的32M共享内存,可以不修改此值。

有问题的请转到eaccelerator.shm_size的 相关问题文章

eaccelerator.cache_dir

参数设置eAccelerator的硬盘缓存路径。eAccelerator把 precompiled code, session data, content 和 user entries存放在该路径下。上面这些数据也能存储在共享内存里(读取速度更快),具体存放在哪里由eAccelerator自己分配。默认值为”/tmp/eaccelerator”。

eaccelerator.cache_dir = "/tmp/eaccelerator"

用默认值设置很方便,因为tmp目录很容易设置任意用户进行读写,并且不能执行程序。但是,默认设置不是最好的办法,系统重启之后会清除该目录下的文件。设置为/var/cache/eaccelerator会更好,创建该目录并确认eAccelerator进程可以对其进行读写操作。

有个一定行的办法就是让所有人都能读写,但是一个更安全的办法是让php的进程用户对该目录有0644的权限。

懒人的办法就是使用默认值,然后执行以下命令:

mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator

eaccelerator.enable

该参数用于打开或者关闭eAccelerator。这个看起来像一个相当愚蠢的参数,但是它还是很有用的。例如,这个参数可以用在Apache配置文件的Vhost设置部分。它允许对每个Vhost单独控制eaccelerator.enable参数的值。用到Vhost的时候就不能通过是不是加载eAccelerator模块来解决问题了。

参数设置”1″为打开,”0″为关闭,默认值为”1″.

eaccelerator.enable = "1"

eaccelerator.optimizer

打开或者关闭代码优化。”1″为打开,”0″为关闭。默认值为”1″。代码优化器只在第一次代码编译的时候执行,优化过的代码将被缓存起来,下一次调用该代码的时候直接从缓存里取出经过优化的代码。

eaccelerator.optimizer = "1"

eaccelerator.debug

打开或关闭debug日志。当打开时,eAccelerator会将对一个缓存文件的每次请求都写进log。打开此项只对调试eAccelerator是否有BUG时有益处。”1″指打开,”0″指关闭。默认值为”0″。

eaccelerator.debug = 0

eaccelerator.log_file

设置log文件路径,如果此属性没有配置,则会将log写到标准错误stderr。当时用PHP与Apache的时候,还会加到Apache的错误日志里。

eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"

eaccelerator.name_space

eAccelerator以Key-Value的形式在内存中保存数据,其会根据当前请求的ServerName作为key的前缀来避免数据冲突。但有时候我们想在不同的vhost之间共享数据,如果设置为空,eacc将使用hostname作为key前缀。

如果我们在php.ini里设置此值,则其对所有的vhost都起作用。我们也可以在vhost section或者.htaccess文件里设置(如果服务器支持的话),以方面我们在不同的虚拟主机间共享数据。

eaccelerator.name_space = ""

eaccelerator.check_mtime

eAccelerator会定期的查看下PHP文件是否有变化了,如果有变化了则重新编译并缓存它。虽然这种机制比起每次编译来说已经很快了,但是不停的检查文件的状态还会降低一定的性能。我们可以通过此配置禁用掉此机制,不过这样一来,当我们修改文件后,需要手动将eAccelerator的缓存都清空。

此值默认为1,表示开启检查机制。

eaccelerator.check_mtime = "1"

eaccelerator.filter

决定哪些PHP文件应该被缓存。可以指定一个范围(比如”*.php *.phtml”),这样被指定的文件就会被缓存。如果该范围以!开头,被指定的文件就不会被缓存。默认值为””,表示缓存所有的PHP文件。

请注意 eaccelerator.filter 参数不能设置基于 URL 的虚拟路径,但是可以使用绝对路径, 所以这样设置 !/home* 将排除所有 /home 目录下的文件。
再举个例子:”*.php *.phtml !*.jsp”

多个参数之间需要用空格或制表符隔开,不能用逗号。

eaccelerator.filter = ""

eaccelerator.shm_max

用于限制用户使用eaccelerator_put函数时传入数据的大小,单位为字节。

默认为0,表示不限制。

此配置不会改变PHP的内存最大值配置

eaccelerator.shm_max = "0"

eaccelerator.shm_ttl

当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删除在”shm_ttl”秒之前被访问过的文件。默认值为”0″,表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)

eaccelerator.shm_ttl = "0"

eaccelerator.shm_prune_period

当没有足够的空闲共享内存去尝试缓冲一个新脚本时,将删除在”shm_prune_period”秒之前缓存的文件。默认值为”0″,表示不尝试从共享内存中删除任何旧的脚本。(单位为秒)

eaccelerator.shm_prune_period = "0"

eaccelerator.shm_only

是否仅在共享内存中缓存数据。这个参数对会话数据和内容缓存没有效果。默认为0,表示允许eAccelerator在硬盘上保存数据。

eaccelerator.shm_only = "0"

eaccelerator.compress

当我们使用eaccelerator_content_* 这些函数时,eAccelerator在保存它们到内存之前先对他们进行压缩。”1″指打开,”0″指关闭。默认值为”1″。

eaccelerator.compress = "1"

eaccelerator.compress_level

当eaccelerator.compress开启时,用于配置数据压缩的级别。默认值为”9″,表示最大压缩。

eaccelerator.compress_level = "9"

eaccelerator.keys | session | content

这些配置用来控制eAccelerator对各类缓存的存放位置。可选的值有:

  • shm_and_disk 共享内存与硬盘(默认值)
  • shm 优先保存在共享内存中,超过”eaccelerator.shm_max”值后再保存到硬盘上
  • shm_only 只保存在共享内存中
  • disk_only 只保存在硬盘上
  • none 不缓存数据
eaccelerator.keys     = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content  = "shm_and_disk"

The webinterface

eAccelerator可以通过网页进行管理。 从0.9.5版本开始web接口已经用php全部实现,所以配置发生了一些改变。

eAccelerator 0.9.5 之前的版本

从安装包中获取eaccelerator.php文件。为了安全,这个文件只能用本地IP访问,而且需要设置用户名和密码。password参数是你的密码的md5值。你可以通过eaccelerator_password.php文件获得md5值,它也可以在安装包里找到。

输入下面的命令获取eAccelerator password:

php -q eaccelerator_password.php
eaccelerator.admin.name="yourusername"
eaccelerator.admin.password="yourpassword"

eAccelerator 0.9.5 以及更高的版本

从安装包中获取新的控制面板文件control.php。把它复制到网站的任意目录,然后设置eaccelerator.allowed_admin_path为该目录后,可以用它查看和管理eAccelerator。默认账号密码是 admin/eAccelerator。可以在control.php里修改。

eaccelerator.allowed_admin_path = "/var/www/html/controlpanel"
想看原版的的童鞋,请移步官方英文文档页面。


本文如无特别说明,均属原创,转载请注明出处!
原文链接:http://iiu.me/archives/149

只有 1 条评论哦,你来加上一条精彩的吧!

  1. zwl说道:

    精彩的分享,很不错。。。

请您评论

 

健康游戏忠告:抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活
W3C 标准
[Valid RSS]
Valid XHTML 1.0 Transitional
Valid CSS!
分享
E:时间已做了选择 什么人叫做朋友 偶尔碰头 心情却能一点就通
H:因为我们曾有过 理想类似的生活 太多感受 绝非三言两语能形容
S:可能有时我们顾虑太多 太多决定需要我们去选择 担心会犯错 难免会受挫 幸好一路上有你陪我
合:与你分享的快乐 胜过独自拥有 至今我仍深深感动
好友如同一扇窗 能让视野不同 与你分享的快乐 胜过独自拥有 至今我仍深深感动 好友如同一扇门 让世界(变)开阔

无觅相关文章插件,快速提升流量