PHP 5.5.0 以下版本开启 OPcache 扩展

认识OPcache

Zend OPcache的前身是Zend Optimizer+,作为第一个PHP加速器,Zend Optimizer曾长期占据PHP加速器半壁江山,2013年3月,Zend公司将OPtimizer+改名为Opcache后,在PHP License下开源发布。

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。

PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 对于 PHP 5.2,5.3 和 5.4 版本可以使用 » PECL 扩展中的 OPcache 库。

woydpress php 优化提速建议阅读

WordPress使用Redis缓存加速|511遇见强烈推荐

windows server 2003 开启PHP扩展APC

wordpress使用memcached缓存数据提高访问速度

windows server 下安装PHP5.4 redis扩展模块

PHP 5.5.0 以下版本开启 OPcache 扩展

Note:
如果需要将 » Xdebug 扩展和 OPcache 一起使用,必须在 Xdebug 扩展之前加载 OPcache 扩展。

安装OPcache扩展

1、下载php_opcache.dll文件,分ts和nts版本,必须下载和php兼容的版本!
Zend OPcache 7.0.2 for PHP 5.4 vc9
http://pan.baidu.com/s/1bO0vX8
Zend OPcache 7.0.2 for PHP 5.4 nts vc9
http://pan.baidu.com/s/1c24tKzu
Zend OPcache 7.0.2 for PHP 5.3 vc9
http://pan.baidu.com/s/1pLStOYR
Zend OPcache 7.0.2 for PHP 5.3 nts vc9
http://pan.baidu.com/s/1dFI4Ptn

2、将php_opcache.dll放进php/ext目录下。
3、打开php.ini,使用下列推荐设置来获得较好的性能:添加如下配置(注意路径要修改成你自己的):

  1. zend_extension = "c:/xxx/php/ext/php_opcache.dll"
  2. extension = php_opcache.dll
  3. opcache.memory_consumption=128
  4. opcache.interned_strings_buffer=8
  5. opcache.max_accelerated_files=4000
  6. opcache.revalidate_freq=60
  7. opcache.fast_shutdown=1
  8. opcache.enable_cli=1

4、参数配置说明:

  1. [opcache]
  2. ;dll地址
  3. zend_extension=php_opcache.dll
  4. ;开关打开
  5. opcache.enable=1
  6. ;开启CLI
  7. opcache.enable_cli=1
  8. ;可用内存, 酌情而定, 单位为:Mb
  9. opcache.memory_consumption=528
  10. ;Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
  11. opcache.interned_strings_buffer=8
  12. ;对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值
  13. opcache.max_accelerated_files=10000
  14. ;Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒
  15. opcache.revalidate_freq=1
  16. ;打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
  17. opcache.fast_shutdown=1

5、重新启动apache服务器。
6、查看opcache是否开启成功,可以通过phpinfo();函数查看opcache的相关信息。

opcache

yum install php-pecl-zendopcache  

安装时产生的 opcache 的配置文件位于默认的 /etc/php.d 目录中:

opcache-default.blacklist 
opcache.ini

这个配置文件采用的基本就是 README 中的推荐设置,只有几个地方需要修改。

vi /etc/php.d/opcache.ini  

对照如下推荐配置修改并保存即可:

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

不需要修改 php.ini 配置,重起 Apache 服务使之生效:

service httpd restart  

查询一下看看是否正确启动了:

php -v  

输出结果类似于:

PHP 5.4.14 (cli) (built: Apr 11 2013 11:04:35)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.1, Copyright (c) 1999-2013, by Zend Technologies

注意事项

1、开启opcache后,更改PHP代码,程序运行结果不会立刻有变化,缓存时间过期了就更新了。
2、如果想立刻看到更新后的效果,可以重启下apache服务器。
3、建议开发环境下,关闭zend opcache功能,便于调试。
4、你也可以禁用 opcache.save_comments 并且启用 opcache.enable_file_override。 需要提醒的是,在生产环境中使用上述配置之前,必须经过严格测试。 因为上述配置存在一个已知问题,它会引发一些框架和应用的异常, 尤其是在存在文档使用了备注注解的时候。
5、在很多的测试中都表明OPcache的性能要优于APC、XCachee、Accelerator等PHP加速器,Zend OPcache通过opcode缓存和优化提供更快的PHP执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。
6、与APC相比,Zend OPcache拥有如下几个特点
性能。根据测试,Zend OPcache始终优于 APC。随代码差异,每秒钟处理的请求数高 5~20%。Google doc 上记录的测试结果中,WordPress 2.1.1(不知道为什么不用个新版本的 WP 来测试),性能提高约 8%。理论上来说,对于 WP 3.5.1,性能应该也能得到大约 5~10% 的提升吧。对于运行 WordPress 的服务器而言,使用 OPcache 可以显著降低 CPU 使用率和提高页面加载速度。
支持新的 PHP 版本。Zend 和 PHP 社区都会帮助 OPcache 能够支持最新版本的 PHP。
可靠性。OPcache 拥有可选的损坏检测能力,可以防止因数据损坏而导致的服务器崩溃。
更好的兼容性。PHP 社区打算让 OPcache 与社区支持的所有 PHP 版本相兼容。
7、APC的优势则主要体现在
APC 有数据缓存 API,而 OPcache 没有。
APC 能够回收旧的无效的脚本占用的内存。APC 有内存管理器,可以将那些不再使用的脚本关联的内存进行回收。而 OPcache 不同,它将这样的内存标记为“脏的”,但并不会回收它们。一旦“脏的”内存占用配置阈值的百分比达到一定值,OPcache 就将自己重新启动。这种行为在稳定性上既有优势也有劣势。
8、如果要和Zend Guard Loader并存,则需要放到Zend Guard Loader的前面,不可与其他php加速插件并存。加载完成后可用php -v进行检查。
9、下载地址:http://pecl.php.net/package/ZendOpcache
10、官网文档:http://php.net/manual/zh/book.opcache.php


发布日期:

所属分类: Php, 后端 标签: