Skip to content

PHP: Zend Optimizer and eAccelerator

1. PHP加速器的概念
PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP操作码,这样速度上就提高了不少。

Apache中使用mod_php的请求、响应执行流程:

1、Apache接收请求。
2、Apache传递请求给mod_php。
3、mod_php定位磁盘文件,并加载到内存中。
4、mod_php编译源代码成为opcode树。
5、mod_php执行opcode树。

PHP加速器相应的就是第四步,它的目的就是防止PHP每次请求都重复编译PHP代码,因为在高访问量的网站上,大量的编译往往没有执行速度快。所以这里面有个瓶颈就是PHP的重复编译既影响了速度又加载了服务器负载,为了解决此问题,PHP加速器就这样诞生了。

2. eAccelerator加速器
eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使您的PHP程序代码执效率能提高1-10倍。
安装:
从官网下载源代码,现在最新代码是0.9.6. http://eaccelerator.net/wiki/Release-0.9.6

$ phpize
$ sudo ./configure --enable-eaccelerator=shared
$ sudo make
$ sudo make install

接下来修改php.ini文件

sudo vi /etc/cgi/php.ini

在文档上加上:

zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/var/cache/eaccelerator"
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.allowed_admin_path="/var/www/nginx-default/control.php"

最后一行的eaccelerator.allowed_admin_path的意思是eAccelerator的在线控制文件的实际路径,这样一来就可以使用http://你的网址/control.php来控制eAccelerator了。
下面再建立cache目录:

sudo mkdir /var/cache/eaccelerator
sudo chown root:www-data /var/cache/eaccelerator
sudo chmod u=rwx,g=rwx,o= /var/cache/eaccelerator

然后copy eAccelerator源码中的control.php到web根目录下。这样就可以通过浏览器来浏览控制了,如访问http://localhost/control.php
如果需要control访问权限控制,修改control.php文件,修改$user和$pw的内容。

最后重启nginx

sudo /etc/init.d/nginx restart

现在就安装完成了。
写个测试文件,输出phpinfo,可以看到如下内容:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.6-rc1, Copyright (c) 2004-2007 eAccelerator, by eAccelerator

3. Zend Optimizer
Zend Optimizer 是一个免费软件,它的主要功能是加速PHP脚本文件的运行。用Zend Encode编译好的二进制代码可以被Zend Optimizer透明读取,客户只要在他的服务器上安装Zend Optimizer就可以执行由Zend Encode编译好的PHP程序。编译程序中包含有Zend Optimizer的部分代码,所以编译过程中对程序代码进一步作了优化处理,这即意味着脚本的执行效率提高了。一般情况下,执行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。并且降低了程序对系统资源的耗用。

安装:
首先去官方文章下载:http://www.zend.com/products/guard/downloads
下载后,解压缩后,文件夹下有个data目录,然后根据自己的php的版本选择合适的ZendOptimizer.so
然后把这个so加载到php.ini中。

zend_optimizer.optimization_level=15
zend_extension="/usr/lib/php5/ZendOptimizer.so"

nginx重启

sudo /etc/init.d/nginx restart

检查安装是否成功,写一个脚本并运行它,输出phpinfo().
如果在出现:

with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies

就安装成功了。




Related posts

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*
备案/许可证编号为: 浙ICP备09097601号 | 网址专家互链 | 友情链接站