加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

处理PHP中eAccelerator扩展开启open_basedir报错

发布时间:2022-06-21 04:45:13 所属栏目:PHP教程 来源:互联网
导读:eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除,下面我们来看看eAccelerator扩展开启open_basedir报错解决办法. 如果你在使用php加速扩展eAccelerator时发
  eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除,下面我们来看看eAccelerator扩展开启open_basedir报错解决办法.
 
  如果你在使用php加速扩展eAccelerator时发现开启open_basedir配置项目后程序页面或者PHP错误日志会提示.
 
  open_basedir restriction. in Unknown on line 0
 
  出现这个问题的原因是一般eAccelerator的缓存文件不在你配置的open_basedir目录之中,而eAccelerator也傻乎乎的遵守了open_basedir的设定.
 
  在网上转了一圈发现了两种解决这个问题的办法:
 
  1.给eAccelerator打补丁
 
  然后照常规步骤编译即可.
 
  2.编译时增加参数
 
  在配置eAccelerator的时候增加 “–without-eaccelerator-use-inode” 参数
 
  ./configure –without-eaccelerator-use-inode
 
  补充:eAccelerator安装和配置
 
  首先您要安装好PHP,然后再来编译安装 eaccelerator,过程如下,我们从官方下的版本是 eaccelerator-0.9.5.2.tar.bz2.编译安装;
 
  # tar xvf eaccelerator-0.9.5.2.tar.bz2
  # 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

  注:更新动态链接库地址;
 
  修改配置文件;我们首先要修改;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
 
  较为安全的应该是0644,原文:A safer and cleaner way would be to change the owner of the directory to the same user PHP runs as (most of the time the same user as Apache or Lighttpd) and set 0644 permissions.)

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读