eAccelerator配置参数官方详细说明
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
精彩的分享,很不错。。。