提高系统性能用eAccelerator优化PHP_PHP技巧_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

提高系统性能用eAccelerator优化PHP

作者:黑客防线网安PHP教程基地 来源:黑客防线网安PHP教程基地 浏览次数:0

本篇关键词:优化性能系统提高
黑客防线网安网讯:  eAccelerator是一个免费开源的PHP加速、优化、编译和动态缓存的项目,它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能,使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解...
  eAccelerator是一个免费开源的PHP加速、优化、编译和动态缓存的项目它可以通过缓存PHP代码编译后的结果来提高PHP脚本的性能使得一向很复杂和离我们很远的PHP脚本编译问题完全得到解决通过使用eAccelerator,可以优化你的PHP代码执行速度,降低服务器负载,可以提高PHP应用执行速度最高达10倍
  
  eAccelerator项目诞生于2004年,当时它是作为TurckMMCache项目的一个分支提出并投入开发的。TurckMMCache由DmitryStogov开发,是个非常优秀的PHP内存缓存加速系统,如今仍然有很大部分eAccelerator的代码应用到该项目中,目前该项目有很长时间没有更新了,对于最新的PHP5.x的支持还未推出。
  
  2、原理
  
  eAccelerator通过把经过编译后的PHP代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。它的效率非常高,从创建共享内存到查找编译后的代码都在非常短的时间内完成,对于不能缓存到共享内存中的文件和代码,eAccelerator还可以把他们缓存到系统磁盘上。
  
  eAccelerator同样还支持PHP代码的编译和解释执行,你可以通过encoder.php脚本来对php代码进行编译达到保护代码的目的,经过编译后的代码必须运行在安装了eAccelerator的环境下。eAccelerator编译后的代码不能被反编译,它不象其他一些编译工具那样可以进行反编译,这将使得代码更加安全和高效。
  
  二、eAccelerator安装配置
  
  1、支持平台
  
  由于aAccelerator提供了大部分基于共享内存的API,所以在*nix的平台上将得到更好的支持,虽然也发布了基于windows平台的binary版本,但我在这里就只提供基于*nix平台的配置和说明,目前可以支持的平台包括Linux,FreeBSD,OpenBSD,MacOSX,Solaris,AIXenHP-UX。
  
  2、系统要求
  
  php4orphp5
  
  autoconf
  
  automake
  
  libtool
  
  m4
  
  eAccelerator只支持使用mod_php或者fastcgimode安装的PHP
  
  3、安装
  
  先去eAccelerator官方下载最新版的源码包:eaccelerator-0.9.5-beta.tar.bz2
  
  #tar-zxvf./eaccelerator-0.9.5.2.tar.bz2
  
  #cdeaccelerator-0.9.5
  
  #exportPHP_PREFIX="/usr/local"(把PHP安装目录导入到环境变量,FreeBSD默认是/usr/local)
  
  #$PHP_PREFIX/bin/phpize
  
  #./configure--enable-eaccelerator=shared--with-php-config=$PHP_PREFIX/bin/php-config
  
  #make
  
  #makeinstall
  
  4、ini文件配置
  
  完成安装后,eaccelerator.so模块位于/usr/lib/php/extensions目录中,您的系统如果和我不一样,您自己应该安装在哪了(安装时有显示的);
  
  查看使用的php.ini的路径:php--ini
  
  linux-yxpi:/usr/local/Zend/etc#php--ini
  
  ConfigurationFile(php.ini)Path:/etc
  
  LoadedConfigurationFile:/usr/local/Zend/etc/php.ini
  
  Scanforadditional.inifilesin:(none)
  
  Additional.inifilesparsed:(none)
  
  (安装zend时自动把php.ini被放在了zend目录下)
  
  下面开始配置php.ini文件,eAccelerator提供了两种配置和调用方式,分别如下。
  
  安装为Zendextension模式,在php.ini文件中,加入;
  
  zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
  
  eaccelerator.shm_size="16"
  
  eaccelerator.cache_dir="/opt/eaccelerator"
  
  eaccelerator.enable="1"
  
  eaccelerator.optimizer="1"
  
  eaccelerator.check_mtime="1"
  
  eaccelerator.debug="0"
  
  eaccelerator.log_file="/var/log/apache2/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"
  
  注意:如果你已经安装了Zend,那么在[Zend]标记前加入以上代码,否则zendOptimizer不起作用.
  
  如果你使用了threadsafe模式安装的PHP,你必须使用“zend_extension_ts”替换第一行的“zend_extension”.
  
  安装为PHPextension模式:(这是大部分采用的方式)
  
  extension="eaccelerator.so"
  
  eaccelerator.shm_size="16"
  
  eaccelerator.cache_dir="/opt/eaccelerator"
  
  eaccelerator.enable="1"
  
  eaccelerator.optimizer="1"
  
  eaccelerator.check_mtime="1"
  
  eaccelerator.debug="0"
  
  eaccelerator.log_file="/var/log/apache2/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文档或者访问官方文档:inisetting
  
  完成安装配置后,我们最后要创建缓存目录
  
  #mkdir/opt/eaccelerator
  
  #chmod777/opt/eaccelerator
  
  重起apache即可访问.
  
  5、验证安装结果
  
  通过浏览器访问您的phpinfo()页面或者运行php-i得到php配置信息,里面如果看到类似下面的信息就表示安装成功了。
  
  ThisprogrammakesuseoftheZendScriptingLanguageEngine:
  
  ZendEnginev2.1.0,Copyright(c)1998-2006ZendTechnologies
  
  witheAcceleratorv0.9.5,Copyright(c)2004-2006eAccelerator,byeAccelerator
  
  我的机器上同时还安装了ZendOptimizer3.0.1,所以看到的信息如下:
  
  ThisprogrammakesuseoftheZendScriptingLanguageEngine:
  
  ZendEnginev2.1.0,Copyright(c)1998-2006ZendTechnologies
  
  witheAcceleratorv0.9.5,Copyright(c)2004-2006eAccelerator,byeAccelerator
  
  withZendExtensionManagerv1.0.10,Copyright(c)2003-2006,byZendTechnologies
  
  withZendOptimizerv3.0.1,Copyright(c)1998-2006,byZendTechnologies
  
  如果你打开了eAccelerator的debug选项,可以从日志中看到类似下面的信息
  
  #tail/var/log/httpd/eAccelerator_log
  
  EACCELERATORhit:"/var/www/toplee.com/blog/index.php"
  
  EACCELERATORhit:"/var/www/toplee.com/blog/wp-blog-header.php"
  
  EACCELERATORhit:"/var/www/toplee.com/blog/wp-config.php"
  
  EACCELERATORhit:"/var/www/toplee.com/blog/wp-settings.php"
  
  EACCELERATORhit:"/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
  
  接口列表:
  
  arrayeaccelerator_cached_scripts()
  
  voideaccelerator_cache_output(string$key,string$eval_code,[int$ttl=0])
  
  voideaccelerator_cache_page(string$key,[int$ttl=0])
  
  voideaccelerator_cache_result(string$key,string$code,[int$ttl=0])
  
  voideaccelerator_caching(boolean$flag)
  
  voideaccelerator_clean()
  
  voideaccelerator_clear()
  
  arrayeaccelerator_dasm_file(mixed$filename)
  
  mixedeaccelerator_encode(mixed$src,[mixed$prefix=''],[string$pre_content=''],[string$post_content=''])
  
  voideaccelerator_gc()
  
  mixedeaccelerator_get(string$key)
  
  arrayeaccelerator_info()
  
  arrayeaccelerator_list_keys()
  
  voideaccelerator_load()
  
  booleaneaccelerator_lock(string$key)
  
  voideaccelerator_optimizer(boolean$flag)
  
  voideaccelerator_purge()
  
  booleaneaccelerator_put(string$key,mixed$value,[int$ttl=0])
  
  arrayeaccelerator_removed_scripts()
  
  booleaneaccelerator_rm(string$key)
  
  voideaccelerator_rm_page(string$key)
  
  booleaneaccelerator_set_session_handlers()
  
  booleaneaccelerator_unlock(string$key)
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-17545-1.html
网站维护教程更新时间:2012-09-21 05:21:02  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer