简介

Zend OPCache 的前身是Zend Optimizer + (Zend O+),于 2013年3月中旬改名为 Opcache。其通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。

PHP 在5.5发行版后自带了Zend OPCache扩展,但默认没有开启,PHP5.2,5.3,5.4版也可以使用,但需要自行下载扩展。

什么是opcode缓存

->深入理解PHP原理之Opcodes

当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。

Opcode cache 的目地是避免重复编译,减少 CPU 和内存开销。如果动态内容的性能瓶颈不在于 CPU 和内存,而在于 I/O 操作,比如数据库查询带来的磁盘 I/O 开销,那么 opcode cache 的性能提升是非常有限的。

但是既然 opcode cache 能带来 CPU 和内存开销的降低,这总归是好事 —— 本着环保的态度,也应该尽量减少消耗不是? :D

现代操作码缓存器(Optimizer+,APC2.0+,其他)使用共享内存进行存储,并且可以直接从中执行文件,而不用在执行前“反序列化”代码。这将带来显着的性能加速,通常降低了整体服务器的内存消耗,而且很少有缺点。

Windows下的配置

1,PHP5.5版本前到此下载扩展,放到zend_ext目录中。

2,修改php.ini配置

[php]

engine = On

zend_extension=php_opcache.dll

3,根据官方建议php.ini的 [opcache] 下修改配置,以获得更好的性能

[opcache]

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

Linux下的配置

1,安装扩展(PHP5.5版本以上跳过此步)

wget http://pecl.php.net/get/zendopcache-7.0.5.tgz

tar zxvf zendopcache-7.0.5.tgz

cd zendopcache-7.0.5

/path/to/php/bin/phpize

./configure --with-php-config=/path/to/php/bin/php-config

make && make install

2,修改php.ini

①在[php]下添加

zend_extension=php_opcache.so

②在[opcache]下添加

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

配置完成后重启apache或php-fpm,phpinfo()看到Zend OPCache为Enabled

php -m|grep opcache,有显示opcache

php -v 显示with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies 即可。

设置例外

也许服务器上某些内容,比如正在进行调试的网站等,我们不希望对其进行 OPcache。那就可以通过黑名单来将需要例外的文件排除掉。

在 OPcache 的配置文件中有一行配置,如下,

opcache.blacklist_filename=/etc/php.d/opcache*.blacklist

该配置指定用于存储文件名黑名单的那个文件。很显然这里使用通配符 * 来指定了一系列文件而不仅仅是特定某个文件。可以一直启用这一行。等到需要排除某些文件的时候,就编辑对应的黑名单文件。例如,针对 /srv/www/sites/devSite 文件夹下的所有文件,编辑(或者新建)文件,

vim /etc/php.d/opcache-devSite.blacklist

内容为,

/srv/www/sites/devSite/*

通配符 * 表示所有 devSite 文件夹下的文件。

完了之后重新启动 php-fpm 服务就可以了。

php zend gua,PHP安装使用Zend Opcache扩展相关推荐

  1. PHP:使用Zend对源码加密、Zend Guard安装以及Zend Guard Run-time support missing的解决方法

    PHP:使用Zend对源码加密.Zend Guard安装以及Zend Guard Run-time support missing的解决方法 参考文章: (1)PHP:使用Zend对源码加密.Zend ...

  2. IIS/ Apache+PHP+MySQL+ Zend Optimizer完全安装手册

    IIS/ Apache+PHP+MySQL+ Zend Optimizer完全安装手册 下载MySQL.PHP(均为解压缩文件).Zend Optimizer(EXE文件).Apache(msi安装文 ...

  3. Win7 win8 win8.1安装.msi程序时出现2502、2503错误解决办法(zend studio.msi 安装汉化为例)...

    最近安装zend studio的msi安装包的时候常常会出现代码为2502.2503的错误.其实这种错误是由于安装权限不足造成的,可以这种msi的安装包不像其他exe的安装程序,在安装包上点击&quo ...

  4. zend framework php编码规范,Zend Framework常用校验器详解

    本文实例讲述了Zend Framework常用校验器.分享给大家供大家参考,具体如下: Date日期校验器 代码:<?php require_once 'Zend/Validate/Date.p ...

  5. zend optimizer php5.5,zend guard5.5版本下载-zend guard php5.5v5.5 免费版 - 极光下载站

    zend guard5.5旧版在以往版本的基础上又加入了多种功能,简单易上手的操作,将会让你在对php加密时,可以更加的便捷,而且安全的操作环境,根本就不用担心信息会被泄露! zend guard官方 ...

  6. PHP安装加载yaf扩展

    Yaf,全称 Yet Another Framework,是一个C语言编写的PHP框架,是一个用PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快. 它提供了Bootstrap, ...

  7. nginx php 扩展,源码安装Nginx+PHP-FPM及扩展

    安装依赖组建yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel  ...

  8. linux php5.3 ssh2,Linux 安装php 的 ssh2扩展

    发表于 2016-11-10 09:33:40 by 月小升 在PHP中安装SSH2扩展库,用PHP通过SSH操作远程服务器,在远程服务器上执行命令. 这里基于linux(centos)发行版,其他发 ...

  9. ubuntu下安装phpredis的模块扩展

    1.前提是先安装好redis,然后再安装phpredis. .. 2.先下载phpredis-master.tar.gz安装包... 详细详情例如以下: <span style="co ...

最新文章

  1. 部署一个完整的vue webpack项目
  2. 新应用上线 Snippet
  3. docker server 容器连接sql_docker 容器连接 host的sql server失败
  4. SCCM2007系列教程之九SCCM站点备份和恢复
  5. 推荐iOS模拟器截图工具iOS-Simulator Cropper
  6. 自动化企业人才如何定位?
  7. 基于组态王和三菱PLC的modbus仿真(一)——安装三菱PLC环境
  8. C++和ASM文件的互相调用
  9. npm报错, Error: EPERM: operation not permitted, mkdir
  10. 用canvas实现一个简易的涂鸦画板
  11. 单位脉冲(冲激)响应与频率响应
  12. 业务流程管理(BPM)系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  13. youwuku和koudaitong以及weimeng差异
  14. 无线网络组建之设备选型
  15. 一个简单的PHP笔试题
  16. 【0-1背包】二进制灰狼算法解决0-1背包问题【Matlab】
  17. Zabbix监控笔记
  18. html+js画一颗心形,js画花构成心型
  19. 手用计算机电池,二手电脑器材中的电池问题
  20. 威佐夫博弈 poj 1067

热门文章

  1. Windows Phone如何获取和添加联系人
  2. bzoj4563放棋子
  3. 受软银收购利好影响 ARM股价大涨近50%
  4. HDU 1875 畅通工程再续 (最小生成树)
  5. JavaWeb学习总结(四十九)——简单模拟Sping MVC
  6. 如何在 Windows XP 中设置、查看、更改或删除文件和文件夹的特殊权限
  7. [转载] 七龙珠第一部——第034话 红缎带军团
  8. SQL Server Compact的DLL文件介绍
  9. 10 个 GitHub 上超火的 CSS 奇技淫巧项目,找到写 CSS 的灵感!
  10. go gin 第二次使用ShouldBindJSON失效的原因及解决办法:使用ShouldBindBodyWith代替