louyaoluan 发表于 2018-12-24 09:48:40

安装PHP扩展eaccelerator加速器

  软件下载地址:
  http://pan.baidu.com/share/link?shareid=1812137103&uk=1210957557
  

  注:系统已经搭建好了LAMP,上一片博客有详细文档
  

  #tar zxvf eaccelerator-eaccelerator-42067ac.tar.gz -C /usr/local/src/
  #cd /usr/local/src/eaccelerator-eaccelerator-42067ac/
  #/usr/local/php/bin/phpize
  #./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config
  #make && make install
  make install完成后会出现eaccelerator.so路径,拷贝这个绝对路径,下面还需要用
  

  打开php.ini文件,在该文件的最后添加如下:
  #vi /usr/local/php/etc/php.ini
  zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"
  eaccelerator.shm_size="16"
  eaccelerator.cache_dir="/data/cache/eaccelerator"
  eaccelerator.allowed_admin_path=/usr/local/apache2/htdocs/
  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"
  

  以上参数表达的含义:
  # eaccelerator.so的绝对路径
  zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"
  

  #设置缓存大小
  eaccelerator.shm_size="16"
  

  #缓存目录
  eaccelerator.cache_dir="/data/cache/eaccelerator"
  

  #网站目录
  eaccelerator.allowed_admin_path=/usr/local/apache2/htdocs/
  

  #启用或禁用eaccelerator,1为开启,0为禁用
  eaccelerator.enable="1"
  

  #开启或关闭优化,1为开启,0为关闭
  eaccelerator.optimizer="1"
  

  #在每次命中的时候Eaccelerator都会检查脚本的修改时间来判断是不是脚本发生的变化来决定是否需要重新编译,1为启用,0为禁用
  eaccelerator.check_mtime="1"
  

  #开启关闭debug日志。如果设置为1,将打印很多文件命中的信息到日志中
  eaccelerator.debug="0"
  

  #用来决定哪个php文件被缓存。可以通过使用通配符(比如"*.php *.phtml")来匹配需要缓存的php脚本。如果以"!"开头,表示不匹配,这个参数默认是空,可以缓存所有编译好的php脚本需要注意的是eaccelerator.filter并不是基于URL工作的,而是基于文件的绝对路径,比如定义了"!/home"的话,那所有/home目录的脚本都不会被缓存。如果要定义多个匹配,使用空格或者制表符分开,而不是逗号。
  eaccelerator.filter=""
  

  #设置内存缓存可以缓存文件的最大值
  eaccelerator.shm_max="0"
  

  #当eAcelerator没有空余的共享内存的时候,就会把最少shm_ttl设置的秒数没访问过的脚本从缓存中释放掉,默认值是0,表示eaccelerator不会释放任何缓存
  eaccelerator.shm_ttl="0"
  

  #当没有足够的内存用来缓存的时候,eaccelerator会在上次清除缓存的时间超过了shm_prune_period设定的秒数时再次尝试清除过期的脚本。默认值为0,eaccelerator将不从缓存中清除过期的脚本
  eaccelerator.shm_prune_period="0"
  

  #启用或者禁用磁盘缓存。这个选项对session数据和内容的缓存没效果。默认值是0,允许eaccelerator使用磁盘和内存进行缓存
  eaccelerator.shm_only="0"
  

  #当使用eaccelerator_content_* 的api时,eA可以在缓存前对内容进行压缩。默认值为1表示启用,0为禁用
  eaccelerator.compress="1"
  

  #内容缓存的压缩等级。默认值为9(最大压缩级别)
  eaccelerator.compress_level="9"
  

  建立缓存目录并赋予权限
  #mkdir -p /data/cache/eaccelerator
  #chmod 777 /data/cache/eaccelerator
  

  拷贝control.php文件到网站目录下并重启apache
  #cp control.php /usr/local/apache2/htdocs/
  #/usr/local/apache2/bin/apachectl restart
  

  访问http://IP/control.php
  默认用户名:admin
  默认密码:eAccelerator
  登录名和密码可在control.php文件里进行修改
http://blog.运维网.com/attachment/201308/163352577.png
  

  

  安装eaccelerator过程中出现的几个错误及解决方案
  1、# make && make install
  /bin/sh/usr/local/src/eaccelerator-0.9.5.3/libtool --mode=compile cc-I. -I/usr/local/src/eaccelerator-0.9.5.3-DPHP_ATOM_INC -I/usr/local/src/eaccelerator-0.9.5.3/include -I/usr/local/src/eaccelerator-0.9.5.3/main-I/usr/local/src/eaccelerator-0.9.5.3 -I/usr/local/php/include/php-I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM-I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext-I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H-g -O2   -c/usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c -o eaccelerator.lo
   cc-I. -I/usr/local/src/eaccelerator-0.9.5.3 -DPHP_ATOM_INC-I/usr/local/src/eaccelerator-0.9.5.3/include -I/usr/local/src/eaccelerator-0.9.5.3/main-I/usr/local/src/eaccelerator-0.9.5.3 -I/usr/local/php/include/php-I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM-I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext-I/usr/local/php/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c/usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c-fPIC -DPIC -o .libs/eaccelerator.o
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:In function ‘eaccelerator_restore’:
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:936:警告:赋值丢弃了指针目标类型的限定
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:In function ‘eaccelerator_compile_file’:
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1272:警告:传递实参 1(属于‘eaccelerator_ok_to_cache’)丢弃了指针目标类型的限定
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1416:错误:‘znode_op’没有名为‘op_type’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1417:错误:‘znode_op’没有名为‘u’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1418:错误:‘znode_op’没有名为‘u’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1419:错误:‘znode_op’没有名为‘u’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1420:错误:‘znode_op’没有名为‘op_type’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1421:错误:‘znode_op’没有名为‘u’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1433:错误:‘znode_op’没有名为‘u’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1434:错误:‘znode_op’没有名为‘u’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:1508:错误:‘zend_class_entry’没有名为‘line_start’的成员
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:在顶层:
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:2223:错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘eaccelerator_functions’
  /usr/local/src/eaccelerator-0.9.5.3/eaccelerator.c:2286:错误:‘eaccelerator_functions’未声明 (不在函数内)
  make: *** 错误 1
  

  解决方案:PHP5.4不支持这个版本的eaccelerator.,重新下载一个应该就可以了
  

  2、访问control.php页面出错“eAcceleratorisn't installed or isn't compiled with info support!”
  

  解决方案:vi /usr/local/php/etc/php.ini
  extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"
  改为:
  zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/eaccelerator.so"
  

  3、进入页面后,点击Script Cache按钮出现错误
http://blog.运维网.com/attachment/201308/163407477.png
  

  解决方案:vi /usr/local/php/etc/php.ini
  加入:eaccelerator.allowed_admin_path=/usr/local/apache2/htdocs/
  

  

  

  




页: [1]
查看完整版本: 安装PHP扩展eaccelerator加速器