设为首页 收藏本站
查看: 1204|回复: 0

[经验分享] PHP加速、优化、编译 eAccelerator

[复制链接]

尚未签到

发表于 2018-12-23 07:16:54 | 显示全部楼层 |阅读模式
1、支持平台  由于aAccelerator提供了大部分基于共享内存的API,所以在*nix的平台上将得到更好的支持,虽然也发布了基于windows平台的binary版本,但我在这里就只提供基于*nix平台的配置和说明,目前可以支持的平台包括Linux, FreeBSD, OpenBSD, Mac OS X, Solaris, AIX en HP-UX。
  2、系统要求
  php4 or php5
  autoconf
  automake
  libtool
  m4
  eAccelerator 只支持使用 mod_php 或者 fastcgi mode 安装的PHP
  3、安装
  先去eAccelerator官方下载最新版的源码包:eaccelerator-0.9.5-beta.tar.bz2
  引用
  #tar -zxvf ./eaccelerator-0.9.5-beta2.tar.bz2
  #cd eaccelerator-0.9.5-beta2
  #export PHP_PREFIX="/usr/local" (把PHP安装目录导入到环境变量,FreeBSD默认是/usr/local)
  #$PHP_PREFIX/bin/phpize
  #./configure --enable-eaccelerator=shared --with-php-config=$PHP_PREFIX/bin/php-config
  #make
  #make install
  4、ini文件配置
  安装完成,下面开始配置php.ini文件,eAccelerator提供了两种配置和调用方式,分别如下。
  安装为 Zend extension 模式:
  引用
  zend_extension="/usr/local/lib/php/20050922/eaccelerator.so"
  eaccelerator.shm_size="16"
  eaccelerator.cache_dir="/tmp/eaccelerator"
  eaccelerator.enable="1"
  eaccelerator.optimizer="1"
  eaccelerator.check_mtime="1"
  eaccelerator.debug="0"
  eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"
  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"
  如果你使用了thread safe模式安装的PHP,你必须使用 “zend_extension_ts” 替换第一行的 “zend_extension”.
  安装为 PHP extension 模式:(这是大部分采用的方式)
  引用
  extension="eaccelerator.so"
  eaccelerator.shm_size="16"
  eaccelerator.cache_dir="/tmp/eaccelerator"
  eaccelerator.enable="1"
  eaccelerator.optimizer="1"
  eaccelerator.check_mtime="1"
  eaccelerator.debug="0"
  eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"
  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"
  有关php.ini文件的详细配置说明,请参照源码目录的README文档或者访问官方文档:ini setting
  完成安装配置后,我们最后要创建缓存目录
  引用
  #mkdir /tmp/eaccelerator
  #chmod 777 /tmp/eaccelerator
  5、验证安装结果
  通过浏览器访问您的phpinfo()页面或者运行 php -i 得到php配置信息,里面如果看到类似下面的信息就表示安装成功了。
  引用
  This program makes use of the Zend Scripting Language Engine:
  Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
  with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
  我的机器上同时还安装了Zend Optimizer3.0.1,所以看到的信息如下:
  引用
  This program makes use of the Zend Scripting Language Engine:
  Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
  with eAccelerator v0.9.5-beta2, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
  with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by Zend Technologies
  with Zend Optimizer v3.0.1, Copyright (c) 1998-2006, by Zend Technologies
  如果你打开了eAccelerator的debug选项,可以从日志中看到类似下面的信息
  引用
  #tail /var/log/httpd/eAccelerator_log
  EACCELERATOR hit: "/var/www/toplee.com/blog/index.php"
  EACCELERATOR hit: "/var/www/toplee.com/blog/wp-blog-header.php"
  EACCELERATOR hit: "/var/www/toplee.com/blog/wp-config.php"
  EACCELERATOR hit: "/var/www/toplee.com/blog/wp-settings.php"
  EACCELERATOR hit: "/var/www/toplee.com/blog/wp-content/plugins/wp-cache/wp-cache-phase1.php"
  ...
  以上信息表示文件都得到了缓存和命中。
  至此,我们就完成了全部的安装和配置,好好享受eAccelerator带给你的惊喜吧,根据Michael的测试,效果的确相当的好。
  三、在PHP中可以使用eAccelerator的API开发
  1、API和文档说明:
  eAccelerator提供了便捷便捷而又稳定的本机缓存实现方式,由于大部分代码实现基于共享内存,所以只能在*nix平台中使用,Windows平台Michael就暂时不知道何时有这方面的支持了。
  eAccelerator提供如下的API接口和文件:(下述文件均在源码包的doc/php/目录下)
  文件列表:
  引用
  cache.php
  dasm.php
  encoder.php
  info.php
  loader.php
  session.php
  shared_memory.php
  接口列表:
  引用
  array eaccelerator_cached_scripts ()
  void eaccelerator_cache_output (string $key, string $eval_code, [int $ttl = 0])
  void eaccelerator_cache_page (string $key, [int $ttl = 0])
  void eaccelerator_cache_result (string $key, string $code, [int $ttl = 0])
  void eaccelerator_caching (boolean $flag)
  void eaccelerator_clean ()
  void eaccelerator_clear ()
  array eaccelerator_dasm_file (mixed $filename)
  mixed eaccelerator_encode (mixed $src, [mixed $prefix = ''], [string $pre_content = ''], [string $post_content = ''])
  void eaccelerator_gc ()
  mixed eaccelerator_get (string $key)
  array eaccelerator_info ()
  array eaccelerator_list_keys ()
  void eaccelerator_load ()
  boolean eaccelerator_lock (string $key)
  void eaccelerator_optimizer (boolean $flag)
  void eaccelerator_purge ()
  boolean eaccelerator_put (string $key, mixed $value, [int $ttl = 0])
  array eaccelerator_removed_scripts ()
  boolean eaccelerator_rm (string $key)
  void eaccelerator_rm_page (string $key)
  boolean eaccelerator_set_session_handlers ()
  boolean eaccelerator_unlock (string $key)
  有关上述文档详细说明请参考官方文档:API Documents
  下面有部分网友翻译后的接口说明:
  引用
  eaccelerator_put($key, $value, $ttl=0)
  将 $value 以 $key 为键名存进缓存(php4下支持对像类型,看源码好像zend2里不支持了),$ttl 是这个缓存的生命周期,单位是秒,省略该参数或指定为 0 表示不限时,直到服务器重启清空为止。
  eaccelerator_get($key)
  根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULL
  eaccelerator_rm($key)
  根据 $key 移除缓存
  eaccelerator_gc()
  移除清理所有已过期的 key
  eaccelerator_lock($key)
  为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。需要调用 eaccelerator_unlock($key) 来释放这个锁或等待程序请求结束时自动释放这个锁。
  例如:
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-654589-1-1.html 上篇帖子: php.ini 中文详解 下篇帖子: ubuntu下安装php5
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表