环境:centos-6.4x86-64
所需软件:php-5.4.24xcache-3.1.0 APC-3.1.10 zendopcache-7.0.2
因为php是脚本类语言执行时要进行翻译成opcode操作码,如果每次访问php页面都要进行翻译会很耗资源而且很慢,所以要加速来提高效率。
(一) APC Alternative PHP Cache
http://pecl.php.net/package-info.php?package=APC
APC运行于Linux和FreeBSD,你需要自己编译安装。按照其开发人员的说法,在他们的测试环境下可以提高脚本速度50%-400%。并且APC是个开源项目,已经加入了PHP的PECL库,很值得一试。
(二) Turck MMCache
http://turck-mmcache.sourceforge.net/
Turck MMCache似乎是此类软件中目前最受欢迎的一种,它开放源代码,完全免费。它将PHP代码预编译并缓存起来,同时也对PHP运行环境进行一定优化。按照其官方文档的说法,MMCache可以明显地减轻服务器的负载,并提高脚本执行速度1-10倍。MMCache与另一个知名的加速软件Zend Optimizer兼容,但注意必需先安装MMCache(php.ini中设置)。除了加快PHP程序的速度,MMCache还可以将PHP代码加密。Turck MMCache同时支持Linux和Win32平台。
(三) PHPA the PHP Accelerator
http://www.php-accelerator
PHPA又是另一个流行的PHP加速软件。在其官方网站上有分别使用PHPA与APC、Zend Cache的PHP脚本执行测试对比,其表现略优于APC,略逊于Zend Cache。
PHPA支持Linux, FreeBSD, OpenBSD, BSDi和Solaris系统.
(四) Zend Performance Suite
http://www.zend.com/
Zend Performance Suite是老牌的PHP加速/优化软件,依托于PHP领域最知名的Zend公司。目前已经推出4.0版本,它可以为PHP应用提供程序加速,内容缓存,文件压缩,下载服务等,功能十分强大,获得好几个PHP杂志的推荐奖—但是不得不提起,它也很昂贵,目前的价格是1875美元。
(五) XCache:XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能.他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率2 到5 倍, 降低服务器负载。
在这里我就介绍opcache xcache Accelerator和zend这四款加速器的使用
首先介绍opcache的安装,opcache在最新的php5.5以上的版本中都集成的有,在源码安装php5.5以上版本时加上 --enable-opcache,开启opcache。因为我这里用的是php5.4.24所以需要另外安装opcache。
安装php5.4.24,解压php-5.4.24.tar.bz2 使用 tar –jxvf php-5.4.24.tar.baz2 –C/usr/local/src
解压完成后切换到该目录中,执行
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all
执行完成后,执行make&& make install
完成之后要指定php的初始化文件php.ini,需要将当前目录下的php.ini-development 拷贝到/usr/local/php/lib/
完成之后安装opcache,解压到 /usr/local/src,切换到该目录中,然后执行/usr/local/php/bin/phpize
执行完成后就会出现configure文件
然后执行./configure--with-php-config=/usr/local/php/bin/php-config,然后执行make && make install,安装完成之后在php.ini里面加入下面几行
zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
然后重启httpd,然后编辑一个php页面,使用phpinfo()函数显示
可以看到opcache已经启动了,接下来我们来测试一下性能如何,测试页面就用我前面安装过的wordpress。先来测试没有启动opcache的性能如何,先吧opcache禁用掉,然后使用httpd自带的ab压力测试工具进行测试,使用方法如下图
测试结果如下
从图中可以看出没用使用加速时测试100000个请求是用时28.383秒,每秒处理请求数3523个
接着我们来测试加速后的效果
从图中可以看出和加速前有了明显的提高
到这里opcache的安装已经介绍完了,接着介绍xcache的安装,安装之前先把opcache给关掉
解压xcache-3.1.0.tar.gz到/usr/local/src下,然后切换到该目录下,和opcache一样先执行/usr/local/php/bin/phpize,之后就会出现configure文件,执行./configure--enable-xcache --with-php-config=/usr/local/php/bin/php-config 之后执行make && make install,完成之后会在/usr/local/php/lib/php/extensions/no-debug-zts-20100525目录下形成xcache.so文件
然后追加/usr/local/src/xcache-3.1.0/xcache.ini到/usr/local/php/lib/php.ini
编辑/usr/local/php/lib/php.ini,指明xcache.so路径
要管理xcache需要有用户名和密码,还在php.ini中指定
管理xcache需要有管理页面将/usr/local/src/xcache-3.1.0/htdocs拷贝到/usr/local/apache/htdocs/admin,测试能否访问
出现验证页面,说明可以访问
然后我们来进行压力测试,看看测试结果
明显比没有加速前快多了。Xcache也就介绍到这里,接下来介绍PHP Accelerator
首先解压APC-3.1.10到/usr/localsrc/,切换到该目录,执行/usr/local/php/bin/phpize
然后执行./configure--with-php-config=/usr/local/php/bin/php-config,完成后执行make && make install 然后编辑php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/apc.so
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 128
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 1024
apc.write_lock = On
apc.gc_ttl=3600
apc.ttl=0
压力测试