目前PHP的缓存插件一般有三个:APC、eAccelerator、XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache( http://pecl.php.net/package/ZendOpcache ),功能和前三者相似但又有少许不同,缓存速度据说比它们更快.
主 要原理: 就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的, 像drupal这种庞大的CMS,每次打开一个页面要调用数十个PHP文件,执行数万行代码,效率可想而知,在安装APC等加速器后打开页面的速度明显加 快。
Zend Opcache 已经集成在了PHP 5.5里面,编译安装PHP5.5的时候加上--enable-opcache就行了。但也支持低版本的 PHP 5.2.*, 5.3.*, 5.4.*,未来会取消对5.2的支持,下面是我在PHP 5.4下的安装方法:
wget http://pecl.php.net/get/zendopcache-7.0.2.tgz
tar xzf zendopcache-7.0.2.tgz
cd zendopcache-7.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
如果显示Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/ 表示安装完成,下面要修改php的配置文件让它生效
在 php.ini 的最后面加入下面几行
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/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内存,重新启动apache, 打印phpinfo();信息后, 即可找到Zend OPcache信息. 如图片
在phpinfo()信息中, 目前来看有两条信息犹为重要:
Cache hits (高级缓存命中)
Cache misses (高级缓存未命中)
在这两条信息中即可观察缓存运行情况, 一目了然
高速缓存带来哪些优化呢? 对代码运行有多大帮助?
我们做个测试, 验证一下什么是opcache.
<?php
echo 'opcache';
?>
这是一段非常简单的php代码, 请保存为demo.php文件然后访问, 随意刷新, Cache hits数值会不停地增加, 说明起作用了,
然后你修改代码为:
<?php
echo 'cache new';
?>
再刷新demo.php, 应该可以看到效果, 打印出来的值仍然是opcache, 即源码被缓存了, 它不再解析demo.php文件, 试着不停地刷新, 检测多少秒后才更新.
可设置:
opcache.force_restart_timeout=180
的时间来控制更新速度.
这就类似于web项目中的静态文件缓存一下, 比如我们加载一个网页, 浏览器会自动帮我们把jpg, css缓存起来, 唯独php没有缓存, 每次均需要open文件, 解析代码, 执行代码这一过程, 而opcache即可解决这个问题, 代码会被高速缓存起来, 提升访问速度.
如果嫌phpinfo()不直观可以装个PHP文件查看,地址 https://g ist.github.com/JingwenTian/9508141,把上面的代码保存为一个php文件放到你的网站目录下面打开就可以看到.
个人建议: 本地环境非必要情况下不要开启opcache, 服务器上可以开启, 必竟不是天天更新. 缓存起来有它的历史意义.
参考阅读:
http://blog.sina.com.cn/s/blog_5f5a3dff0101gf9e.html
http://www.oschina.net/question/998019_110792
http://cnzhx.net/blog/zendopcache-accelerate-php/
http://www.vpser.net/opt/apc-eaccelerator-xcache.html
转载自: http://www.jingwentian.com/t-173
相关推荐
大家知道目前PHP的缓存插件一般有三个:APC、eAccelerator、XCache,但未来它们可能都会消失,因为PHP 5.5已经集成Zend Opcache,功能和前三者相似但又有少许不同,缓存速度据说比它们更快(注意:只是据说,我没...
php原版本情况: [root@www sbin]# php -v PHP 5.6.23 (cli) (built: Dec 7 2018 09:00:11) ...Zend Engine v2.6.0, Copyright (c) 1998-2016 ...[opcache] zend_extension=/usr/local/php/lib/php/extensions/no-debu
主要介绍了laravel安装end opcache加速器教程,需要的朋友可以参考下
一个干净的响应式界面,用于Zend OPcache信息,显示统计信息,设置和缓存的文件,并提供信息的实时更新。 该接口使用ReactJS和Axios,适用于现代浏览器,并且至少需要PHP 7.1。 如果您喜欢该软件或对它有所帮助,...
zend_extension = "D:\PHP\ext\php_opcache.dll" ; 这里一定要用绝对路径 opcache.enable = 1 opcache.enable_cli = 1 opcache.memory_consumption = 256 opcache.interned_strings_buffer = 8 opcache.max_...
Ansible 角色:Zend OpCache [ ]( 角色:Zend OpCache&language=&tags=github&category=software) 安装和配置 Zend OpCache 的 Ansible 角色。 功能包括: Zend OpCache 及其依赖项的安装自动配置安装使用ansible-...
正确设置并使用此仪表板监视Zend OPcache,它将帮助您检查内存,命中和状态,配置最佳性能(在缓存已满,验证等时警告您)以及一键重置一个或所有脚本。 安装 作曲家的安装: composer require carlosio/opcache-...
主要介绍了php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法,结合实例形式分析了php加速缓存器opcache,apc,xcache,eAccelerator的基本功能、原理及扩展配置相关操作技巧,需要的朋友可以参考下
本篇文章主要介绍了PHP 的Opcache加速的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认...这个PHP加速插件的主要原理就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服
Ansible playbook,用于设置 WordPress、Apache、PHP + Zend OpCache、MySQL、自动 MySQL 备份、Memcached、Monit、Git、UFW。 功能包括: 安装任何 WordPress 版本 wp-config.php 的配置 为 wp-config.php ( ) ...
我这个博客为了提高运行效率在vps上装了opcache扩展,结果发现有个页面返回502,其他页面正常。 检查了php-fpm日志,发现是php-fpm子进程不知道为什么... 您可能感兴趣的文章:php加速缓存器opcache,apc,xcache,eAcce
Munin插件,用于监视PHP OPcache 要求 php_opcache_插件是为Munin v1.4.0 +监视系统制作的。 Munin主页可以在以下位置找到: : 文献资料 项目主页: : 安装及使用 将文件php_opcache.php复制到Web服务器可访问...
Magento-OpCache, Magento后端的OpCache ( Zend优化器) 控制面板 ( GUI ) opcache用于Magento后端的OpCache 控制面板 。基于:https://gist.github.com/ck-on/4959032 重新检查缓存重置缓存编译目录应用程序和lib中...
Zend OPcache 1).从PHP5.0开始,内置了字节码缓存功能,名为Zend OPcache。因为PHP是解释性语言,PHP解释器执行PHP脚本时会解析PHP脚本代码,生成一系列的Zend操作码,然后执行字节码,每次的HTTP请求都是这样,会...
该插件无需使用和反PHP对象来存储到平面文件中,而是通过将对象转换为纯PHP代码来存储数据,从而在启用Zend OPcache的情况下实现了更快的数据检索和更好的性能。 请参阅以获取完整说明。 文献资料 要通过命令行...
PHP5.5开始内置了Zend OPcache的缓存系统,这个系统在5.2-5.4下也是可以使用的。经过测试,在php5.4下的加速性能明显,效果比5.2+ea还要好,在此推荐安装
Moodle插件,向Moodle站点管理添加了一个PHP Opcache管理GUI,一个用于重置PHP Opcache的CLI工具,以及一个用于PHP Opcache的Nagios检查。 要求 这个插件需要Moodle 3.10+ 该插件的动机 出于性能原因,应该始终在...