`
icarusli
  • 浏览: 531068 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

eAccelerator 配置(PHP代码加速器)

 
阅读更多


  eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍;

 

首先您要安装好PHP,然后再来编译安装 eaccelerator,过程如下。
我们从官方下的版本是 eaccelerator-0.9.5.2.tar.bz2   
编译安装;   
# tar xvf eaccelerator-0.9.5.2.tar.bz2   
# cd cd eaccelerator-0.9.5.2   
# export PHP_PREFIX="/usr"   
# $PHP_PREFIX/bin/phpize   
# ./configure \   --enable-eaccelerator=shared \   --with-php-config=$PHP_PREFIX/bin/php-config   
# make   
# make install   
注:通过export 来设置php所在的安装路径变量,我的PHP是安装在/usr目录下,系统用redhat。其它系统如果默认安装也大体差不多;如果不一样,就自己指定一下;   
完成安装后,eaccelerator.so模块位于 /usr/lib/php/extensions目录中,您的系统如果和我不一样,您自己应该安装在哪了;  # echo "/usr/lib/php/extensions" > /etc/ld.so.conf   
# ldconfig   注:更新动态链接库地址;   
修改配置文件;   
我们首先要修改;php.ini,然后重启Apache;   
在php.ini文件中,加入;
zend_extension="/usr/lib/php/extensions/eaccelerator.so" 注:模块的具体位置;   
eaccelerator.shm_size="16" 注:共享内存大小;   
eaccelerator.cache_dir="/home/eaccelerator" 注:缓存目录;   
eaccelerator.enable="1"   
eaccelerator.optimizer="1"   
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"   注:其中,模块的具体位置必须正确,以您的系统为准;共享内存大小可以自己调整,感觉16M还是可以的,根据服务器的情况,你自己调一下。
缓存目录可以自己指定,我们在这里指定的是 /home目录上的 eaccelerator 目录,如果没有,自己创建一个;权限是0777;
以上的配置是把 eaccelerator 做为 Zend 的扩展模块来编译的办法。如果您的PHP是用安装模式编译的,要把 zend_extension改为zend_extension_ts 。
如果您是把 eaccelerator 做为 PHP的一个扩展,要用下面的配置 ;   
extension="eaccelerator.so"   
eaccelerator.shm_size="16"   
eaccelerator.cache_dir="/home/eaccelerator"   
eaccelerator.enable="1"   
eaccelerator.optimizer="1"   
eaccelerator.check_mtime="1"   
是不是生效了,您要查看 /home/eaccelerator 目录中,当Apache服务器启动了,你随便点几个页面,如果在这个目录中,出现文件了。那就是生效了。如果没任何文件,就要找原因了 ……   这两个配置文件,是不是管用。要你自己根据情况来修改。
# mkdir /home/eaccelerator
# chmod 777 /home/eaccelerator   注:创建缓存目录池,权限是777

 

 


eaccelerator.shm_size="32"

  eAccelerator 可以使用的共享内存的数量 (以兆为单位) . "0" 是指操作系统的默认值. 默认值是 "0".可根据服务器的实际情况来调整,16,32,64,128都是可以的。

  eaccelerator.cache_dir="/home/php/tmp"

  这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 "/tmp/eaccelerator".

  eaccelerator.enable="1"

  开启或关闭 eAccelerator。"1" 为开启,"0" 为关闭。默认值为 "1"。

  eaccelerator.optimizer="1"

  启或关闭内部优化器,可以提升代码执行速度。"1" 为开启,"0" 为关闭。默认值为 "1"。

  eaccelerator.check_mtime="1"

  打开或者关闭 PHP 的文件修改检查. "1" 是指打开, "0" 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 "1". 默认值是 "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="0"

  当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 "shm_ttl" 秒内没有存取的脚本缓存。默认值为 "0",即:不从共享内春中删除任何缓存文件。

  eaccelerator.shm_prune_period="0"

  当 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.session = "disk_only"

  eaccelerator.content = "disk_only"

  设置内容缓存的存放的地方,可以设置为:

  shm_and_disk 在共享缓存和硬盘(默认值)

  shm 默认存在共享内存,如果共享内存已满或大小超过 "eaccelerator.shm_max" 的值,就存到硬盘

  shm_only 只存放在共享内存

  disk_only 只存放在硬盘

  none 不缓存数据

  eaccelerator.allowed_admin_path = "/var/www/html/web/eaccelerator"

  这是控制面板的地址

  安装包里有个control.php,你把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错

  最后,来看一下我的 eAccelerator 设置

  ; eaccelerator

  [eaccelerator]

  zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"

  eaccelerator.shm_size="128"

  eaccelerator.cache_dir="/tmp/eaccelerator"

  eaccelerator.enable="1"

  eaccelerator.optimizer="1"

  eaccelerator.check_mtime="1"

  eaccelerator.debug="0"

  eaccelerator.filter=""

  eaccelerator.shm_max="0"

  eaccelerator.shm_ttl="3600"

  eaccelerator.shm_prune_period="3600"

  eaccelerator.shm_only="0"

  eaccelerator.compress="1"

  eaccelerator.compress_level="9"

  eaccelerator.keys = "disk_only"

  eaccelerator.sessions = "disk_only"

  eaccelerator.content = "disk_only"

  eaccelerator.allowed_admin_path = "/var/www/html/web/eaccelerator"

  另外,再说下 eAccelerator 的安装

  # wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2

  # tar -jxvf eaccelerator-0.9.6.tar.bz2

  # cd eaccelerator-0.9.6

  # /usr/local/php/bin/phpize

  # ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config

  # make && make install


-------------------------------------
open_basedir 设置后不能访问的解决方法之一

Warning: Unknown: open_basedir restriction in effect. File() is not within the allowed path(s): (.:/tmp/) in Unknown on line 0

Fatal error: Can’t load /XX/index.php, open_basedir restriction. in Unknown on line 0

出现了很多次这样的问题了,感觉都无从下手,总觉得与系统和php有关, 今天又出现了, 想来想去都觉得不奇怪, 后面开始重新编译php, php的扩展都没编译,发现设置open_basedir的时候,却没有出错^^^   ,   从这个信息觉得有些可以利用的,把自己方案所需的扩展都安装进去,重启apache的时候,却发现有出现这个错误, 把php.ini中设置的扩展一个一个的关闭,开始排查,后面吧eaccelerator注释掉后,重启apache并没有出现错误, 定位问题出现eaccelerator, 在用google查了下,发现eaccelerator 0.9.6后的版本跟以前的有些改变,把open_basedir给限制了,这时我们要把限制去掉才行

下载eaccelerator 0.9.6后先不要安装,解包后找到eaccelerator.c这个文件,打开第1156行,这样的:
if (PG(open_basedir) && php_check_open_basedir(realname TSRMLS_CC)) {
修改成:
if (PG(open_basedir) && php_check_open_basedir(file_handle->filename TSRMLS_CC)) {

修改后在进行编译,就ok了

分享到:
评论

相关推荐

    php缓存加速器eAccelerator配置详解.doc

    【PHP缓存加速器eAccelerator配置详解】 一、eAccelerator介绍 1、背景 eAccelerator是一款免费且开源的PHP加速器,它旨在提升PHP脚本的执行效率,通过缓存编译后的PHP代码,减少服务器负载。eAccelerator的出现...

    在linux上建立PHP的加速器eAccelerator.pdf

    4. 编译加速器:进入src目录,运行配置命令`./configure --enable-eaccelerator --with-php-config=$PHP_PREFIX/bin/php-config`,然后执行`make 2>&1 | tee make.log`进行编译,编译日志将保存在make.log文件中。...

    php加速器,加速您的PHP程序

    一旦eAccelerator配置好并启动,它就会自动开始工作。你可以通过监控eAccelerator的统计信息来评估其性能,例如命中率、缓存大小等。这些信息通常可以在PHP的info.php页面中找到。 为了最大化eAccelerator的效果,...

    eaccelerator for 5.2.17 discuz x2.5

    这个标签有助于将讨论聚焦在这款PHP加速器上,它可以对PHP脚本进行编译和缓存,使得多次请求相同的PHP页面时,能够从内存中快速加载,而无需每次都解析和执行PHP代码。 【压缩包子文件的文件名称列表】包含两个文件...

    eacc-php代码执行加速器

     如果您是把 eaccelerator 做为 PHP的一个扩展,要用下面的配置 ;  extension="eaccelerator.so"  eaccelerator.shm_size="16"  eaccelerator.cache_dir="/home/eaccelerator"  eaccelerator.enable="1"  ...

    Memcache-eAccelerator-APC-Xcache-Redis 五种php缓存加速器特点浅析.docx

    选择哪种加速器应根据具体的应用场景、服务器配置和性能需求来决定。对于大多数个人或中小型企业站点,eAccelerator和Xcache可能是更实用的选择,而大型分布式系统可能更适合使用Memcached或Redis。

    phpcoder_eaccelerator-1.5

    eAccelerator通过将PHP代码编译成共享内存中的字节码来实现这一目的,从而减少了每次请求时解释PHP代码的时间。此外,它还可以缓存常量和变量,避免了重复编译,进一步提升了网站的响应速度。 PHPCoder与...

    eAccelerator.dll for php5.3.8 nts

    在Windows环境下编译、配置 eAccelerator 加速PHP 附eAccelerator.dll for php5.3.8 nts下载: http://www.oaxueyuan.com/compiled-in-a-windows-environment-configuration-eaccelerator-php-acceleration.html ...

    eAccelerator0953_5.2.10.dll

    eAccelerator是一个开源的PHP加速器、缓存器和优化器,它的主要目的是提高PHP应用程序的执行速度和效率。 【描述】"eAccelerator0953_5.2.10.dll"这个描述简洁明了,没有提供额外的信息,但我们可以推测,这是一个...

    php加速器eAccelerator的配置参数、API详解

    eAccelerator 是一个开源的 PHP 加速器,主要功能包括代码优化、编码器、以及动态内容缓存。其核心工作原理是在编译时将 PHP 脚本缓存起来,这样可以大幅减少系统开销,提高 PHP 脚本的执行性能,达到降低服务器负载...

    eAccelerator for PHP 5.2.8 in windows

    总的来说,eAccelerator 是一个对 PHP 5.2.8 版本非常有价值的加速工具,尤其在 Windows 环境下,通过正确配置和使用 eAccelerator.dll 和 eLoader.dll,可以显著提升 PHP 应用的执行效率,降低服务器负载。...

    eAccelerator

    **eAccelerator:高效能的PHP加速器** eAccelerator是一款专为PHP设计的高性能缓存和优化器,它的主要目标是提升PHP脚本的执行速度,减少服务器资源的消耗,从而提高整体Web应用程序的性能。这个开源软件通过将PHP...

    eAccelerator_096_php5213_vc6.zip

    "eAccelerator_096_php5213_vc6.zip" 这个标题指的是一款名为 "eAccelerator" 的软件的版本号为 0.9.6,专为 PHP 5.2.13 构建的优化加速器的Windows版本。"vc6" 表示它是使用Visual C++ 6编译器编译的,这通常是针对...

    使用 eAccelerator加速PHP代码的方法

    总的来说,eAccelerator作为一款强大的PHP加速器,通过缓存和优化代码,能够有效提升PHP应用的运行效率,尤其是在处理大量数据或高并发请求的场景下。结合其提供的API,开发者可以构建出更加高效、响应快速的Web应用...

    eaccelerator-0.9.6.1.zip

    然而,随着技术的发展,现代的PHP加速器如OPcache(集成在PHP内核)提供了更先进的功能和更好的性能,逐渐取代了eAccelerator的地位。 解压eaccelerator-0.9.6.1.zip后,你会得到eAccelerator的源代码和其他相关...

Global site tag (gtag.js) - Google Analytics