推荐地址:http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps1/
由于国内网站备案比较麻烦,所以笔者便把网站放到了香港。虽然网站免去了备案的困扰,但是从访问速度上来看,一般要比放于国内的网站慢2-3倍,所以便想办法对网站做了一些简单的优化,比如使用缓存系统来提升网站页面访问速度。
目前用于Web的缓存系统很多,包括squid、varnish、Nginx自带的proxy_cache、FastCGI中的fastcgi_cache、APC、Xcache等。
像squid、varnish、Nginx自带的proxy_cache这类系统,属于重量级产品,配置维护比较麻烦,不适合小型网站,而且一般用这类系统缓存静态内容,比如图片、css、JavaScript等;像FastCGI中的fastcgi_cache,它主要用于缓存动态内容,所以在访问使用fastcgi_cache的网站时速度极快,但是笔者使用时发现其维护比较麻烦,特别是每次网站有数据要更新后,如果不等到缓冲期过期后得需要手动清除缓存才能看到网站更新的内容;至于APC个人感觉性能就一般了,拿它和Xcache比较时发现访问使用Xcache网站的速度明显高于使用APC网站的速度(笔者没有具体测试),所以最终选择了使用Xcache。
我们都知道PHP是一种动态语言,它在执行时是以解释的方式执行,所以PHP代码每次执行时都会被解析和转换成操作码(opcode)。而Xcache是一个开源的操作码缓存器/优化器,它通过把解析/转换PHP后的操作码缓存到文件(直到原始代码被修改)从而避免重复的解析过程,提高了代码的执行速度,通常能够提高页面生成速率2-5倍,降低了服务器负载,提高了用户访问网站的速度。
一、安装Xcache
# wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz # tar zxvf xcache-1.3.0.tar.gz # cd xcache-1.3.0 # /usr/local/php/bin/phpize # ./configure --enable-xcache--enable-xcache-coverager --enable-xcache-optimizer--with-php-config=/usr/local/php/bin/php-config # make && make install
注:--enable-xcache表示启用Xcache支持;--enable-xcache-coverager表示包含用于测量加速器功效的附加特性;--enable-xcache-optimizer表示启用操作码优化
安装完毕后系统会提示xcache.so模块生成路径,本次生成路径为/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/,然后把xcache.so移动到/usr/local/php/include/php/ext目录下。
二、配置管理Xcache
1、修改php配置文件
配置时我们可以参考xcache的配置模板xcache.ini,此文件位于Xcache安装程序中
# vi /usr/local/php/lib/php.ini
然后添加如下内容
extension_dir=/usr/local/php/include/php/ext [xcache-common] extension = xcache.so [xcache.admin] xcache.admin.enable_auth = On xcache.admin.user = "xcache" xcache.admin.pass = "" [xcache] xcache.shm_scheme ="mmap" xcache.size=60M xcache.count =1 xcache.slots =8K xcache.ttl=0 xcache.gc_interval =0 xcache.var_size=4M xcache.var_count =1 xcache.var_slots =8K xcache.var_ttl=0 xcache.var_maxttl=0 xcache.var_gc_interval =300 xcache.test =Off xcache.readonly_protection = On xcache.mmap_path ="/tmp/xcache" xcache.coredump_directory ="" xcache.cacher =On xcache.stat=On xcache.optimizer =Off [xcache.coverager] xcache.coverager =On xcache.coveragedump_directory =""
2、生成Xcache缓存文件
# touch /tmp/xcache# chmod 777 /tmp/xcache
3、生成Xcache管理员的秘密(MD5密文)
# echo -n "123456" |
md5sume10adc3949ba59abbe56e057f20f883e
然后将上述生成的MD5密文粘贴到php.ini文件中xcache.admin.pass = ""选项,xcache.admin.pass= "e10adc3949ba59abbe56e057f20f883e"
4、拷贝Xcache管理程序到网站根目录下
# cp -a /tmp/xcache-1.3.0/admin//usr/local/nginx/html/
然后重新启动PHP,然后访问http://localhost/admin ,用户名为xcache 密码为123456;另外,还可以通过phpinfo来验证PHP是否支持Xcache
这里要注意的一点就是Xcache只能缓存默认的一些对象,如int, string, array等,不能缓存对象,否则读取的时候就会报错。
如果你非要缓存对象的话也有办法就是将对象序列化,读取的时候再反序列化一次。
下面我写的一个Xcache的简单类:
程序代码
<?php /** * Xcache moudle */ class cacheHelper{ public $prefix; function __construct(){ if(!function_exists('xcache_get')){ exit("This application must required XCache module."); } } /** * __set * * @param mixed $name * @param mixed $value * @access public * @return void */ public function __set($name, $value){ xcache_set($this->prefix.$name, $value); } /** * __get * * @param mixed $name * @access public * @return mixed */ public function __get($name){ return xcache_get($this->prefix.$name); } /** * __isset * * @param mixed $name * @access public * @return bool */ public function __isset($name){ return xcache_isset($this->prefix.$name); } /** * __unset * * @param mixed $name * @access public * @return void */ public function __unset($name){ xcache_unset($this->prefix.$name); } } ?>
问题内容: 我正在研究要使用其中哪一种,而我却找不到哪一种脱颖而出。 加速器比APC快,但是APC维护得更好。Xcache更快,但是其他的语法更简单。 任何人都有关于使用哪个以及为什么使用的建议? 问题答案: APC将包含在PHP 6中,我猜它之所以被选中是有充分理由的:) 它相当容易安装,并且肯定可以加快速度。
本文向大家介绍PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC ),包括了PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )的使用技巧和注意事项,需要的朋友参考一下 PHP中有eAccelerator、memcached、xcache、APC 4个加速、缓存扩展,下面给大家介绍下其
本文向大家介绍Yii配置与使用memcached缓存的方法,包括了Yii配置与使用memcached缓存的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii配置与使用memcached缓存的方法。分享给大家供大家参考,具体如下: 1. 下载memcached软件包,解压,把memcached.exe 放到随意一个地方,比如:d:/memcached/ 下。 2. 开始->运行->输
通常,开发者会使用redis等内存数据库作为缓存加速的首选手段。但是对hi-nginx-java来说,这些反而是次优的选择。hi-nginx本身即包含缓存加速器,无需额外与其他服务器建立连接即可实现高速缓存加速。 系统缓存加速 系统缓存加速机制包含在hi-nginx的工作进程之中。只需添加hi-nginx的四个配置项,即可实现: hi_need_cache on;
本文向大家介绍简单实用的网站PHP缓存类实例,包括了简单实用的网站PHP缓存类实例的使用技巧和注意事项,需要的朋友参考一下 缓存技术在实际使用当中应用非常广泛,可以有效减轻对服务器数据库的访问压力,提高运行速度。目前很多CMS内容管理系统中频繁使用缓存机制来提高系统运行的效率。本文以一个简单实用的缓存类为例,帮助大家参考下缓存的机制与写法。 缓存文件cache.php代码如下: 缓存类的使用:
本文向大家介绍刷新PHP缓冲区为你的站点加速,包括了刷新PHP缓冲区为你的站点加速的使用技巧和注意事项,需要的朋友参考一下 在当前 PHP 版本的默认配置下,“输出缓冲(Output Buffering)”是被打开的。旧版本则不是这样,在旧版本的 PHP 中,字符串在每次被输出的时候(通过 echo 或 print 函数),都会触发一次发送到客户端浏览器的动作。 “输出缓冲”的引入,使得这一过程更