Debian下安装Zend Opcache加速PHP

作者:简简单单 2015-10-09

现在基于PHP的网站越来越多,也有很多成熟的cms程序方便使用。在网站的流量逐渐增大之后,服务器对CPU及内存的要求也就越来越高。一味的增加硬件成本是不可取的,采用合理的缓存策略是减少服务器访问压力的有效方法。tennfy将会在后面陆续介绍一些php及数据库的缓存方法。今天主要来介绍使用Zend Opcache加速PHP。

PHP缓存原理介绍

PHP是脚本语言,在解释器完成对脚本代码的分析后,会将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。Opcode cache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的。但是既然opcode cache能带来CPU和内存开销的降低,这总归是好事。

现代操作码缓存器( APC、 eAccelerator、 XCache以及Zend Opcache)使用共享内存进行存储,并且可以直接从中执行文件,而不用在执行前“反序列化”代码。这将带来显着的性能加速,通常降低了整体服务器的内存消耗,而且很少有缺点。其中Zend Opcache插件作为zend公司官方推出的缓存插件,缓存效果更好,可以保证与最新PHP版本的兼容与更新。因此,tennfy推荐安装Zend Opcache进行php的缓存加速。

Zend Opcache已经集成在了PHP 5.5里面,但也支持低版本的 PHP 5.2.*, 5.3.*, 5.4.*,下面介绍Zend Opcache的安装方法。

Zend Opcache安装方法

安装方法如下:


# Install "pecl" via php-pear
apt-get install -y php-pear
 
# Install build dependencies
apt-get install -y build-essential php5-dev
 
# Install Zend OpCache
pecl install zendopcache-7.0.5
添加opcache.ini文件

vi /etc/php5/mods-available/opcache.ini

在opcache.ini中加入如下几行


zend_extension=/usr/lib/php5/20100525+lfs/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
其中128的意思是给它分配128M内存。

最后将该文件链接至conf.d目录下


ln -s /etc/php5/mods-available/opcache.ini /etc/php5/conf.d/20-opcache.ini

修改完成后,重启nginx以及php。

查看Zend Opcache效果

输入php -v,得到如下信息


PHP 5.4.45-1~dotdeb+7.1 (cli) (built: Sep  5 2015 00:21:03)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
打印出phpinfo()信息,可以看到Zend OPcache的相关信息:

phpinfo-opcache

在phpinfo()信息中, 目前来看有两条信息犹为重要:

Cache hits     (高级缓存命中)
Cache misses   (高级缓存未命中)
通过以上两条信息就可以观察到缓存情况。

注意事项

安装完成后,最好将php5-dev卸载:

apt-get remove --purge build-essential php5-dev

不要同时安装APC、 eAccelerator、 XCache以及Zend Opcache。

相关文章

精彩推荐