共计 3373 个字符,预计需要花费 9 分钟才能阅读完成。
简介:
Zend Opcache、APC 这都是 PHP 代码加速器,将 PHP 源代码的编译结果缓存起来,再次调用时对比时间标记,如果没有改变则使用缓存数据,免去再次解析代码的开销。
APC 止步于 PHP 5.4,Zend Opcache 从 PHP 5.5 开始集成,取代 APC。
一、安装 Zend Opcache
1、源码编译 PHP 时,加入 –enable-opcache 即可开启该扩展,之后稍做配置即可
2、手动添加 Zend Opcache 扩展。
shell > cd /usr/local/src/php-5.6.17/ext/opcache # 进去 PHP 源码目录下的插件目录
shell > /usr/local/php/bin/phpize # 生成 configure
shell > ./configure –with-php-config=/usr/local/php/bin/php-config
shell > make; make install # 完成安装
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
二、配置 Zend Opcache
shell > vim /usr/local/php/php.ini
[opcache] # 找到该模块
zend_extension=’/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so’ # 指定库文件
opcache.enable=1 # 开启 Zend Opcache
opcache.enable_cli=1 # 开启在命令行使用 Opcache
opcache.memory_consumption=32 # 共享内存大小,单位 MB,根据实际情况设置
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000 # 最大缓存文件数量,命中率低时,可以提高该限制 (4000 并不是整 4000,会比这个数多一些)
opcache.revalidate_freq=60 # 查找文件更新间隔
opcache.save_comments=0 # 不保存文件、函数的注释,可以提升性能,但是对有些框架会产生问题,建议测试后设置!(默认为 1 保存)
opcache.fast_shutdown=1 # 启用内存快速回收
shell > service php-fpm restart # 现在 phpinfo 界面就可以看到成功加载了 Zend Opcache,或 php -m | grep -i opcache
三、监控、管理 Zend Opcache
两个开源项目 (第二个貌似好搞一点):
1、https://github.com/PeeHaa/OpCacheGUI
2、https://github.com/amnuts/opcache-gui
# 可以直观的看到内存使用量、命中率、缓存文件等等信息!
# 第二个项目是单文件部署,很方便。不过要给该 URL 设置好权限。
shell > unzip opcache-gui-master.zip
shell > mkdir /data/www/opcache ; cp opcache-gui-master/index.php /data/www/opcache/
shell > vim /usr/local/nginx/conf/nginx.conf
location ~ /opcache/index.php {# 在 server{} 中加入配置,可以使用 .*opcache.* 来代替 /opcache/index.php
access_log off;
allow 127.0.0.1;
allow 36.110.41.194; # 只允许某 IP 访问
deny all;
location ~ \.php$ {# 这里也要加入对 PHP 的解析,否则会报 404 权限拒绝
root /data/www;
fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass unix:/dev/shm/php-cgi.sock; # 127.0.0.1:9000
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
include fastcgi_params;
}
}
shell > kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
# 现在去浏览器访问 http://IP/opcache/index.php 吧!
# 这就是 Zend Opcache,挺方便、又实用!(原来的 APC 也蛮好的!)
四、压力测试
shell > yum -y install siege
shell > siege -c 100 -t 30s http://127.0.0.1/info.php # 100 个并发,测试 30 秒 (示例)
Transactions: 5624 hits # 总请求数
Availability: 100.00 % # 成功率
Elapsed time: 29.56 secs # 总耗时
Data transferred: 117.17 MB # 数据总传输量
Response time: 0.01 secs # 响应时间
Transaction rate: 190.26 trans/sec # 平均每秒完成多少次请求
Throughput: 3.96 MB/sec # 平均每秒数据传输量
Concurrency: 2.32 # 实际最高并发连接数
Successful transactions: 5624 # 成功处理次数
Failed transactions: 0 # 失败处理次数
Longest transaction: 0.15 # 每次传输最长时间
Shortest transaction: 0.00 # 每次传输最短时间
深入理解 PHP 中的 ini 配置 http://www.linuxidc.com/Linux/2016-02/128442.htm
剖析 PHP 脚本的超时机制 http://www.linuxidc.com/Linux/2016-02/128441.htm
Ubuntu 14.04 下搭建 PHP 开发环境 PDF http://www.linuxidc.com/Linux/2016-02/128330.htm
PHP 7 革新与性能优化 http://www.linuxidc.com/Linux/2015-09/123136.htm
PHP 7,你值得拥有 http://www.linuxidc.com/Linux/2015-06/118847.htm
在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0 http://www.linuxidc.com/Linux/2015-05/117960.htm
CentOS 6.3 安装 LNMP (PHP 5.4,MyySQL5.6) http://www.linuxidc.com/Linux/2013-04/82069.htm
在部署 LNMP 的时候遇到 Nginx 启动失败的 2 个问题 http://www.linuxidc.com/Linux/2013-03/81120.htm
Ubuntu 安装 Nginx php5-fpm MySQL(LNMP 环境搭建) http://www.linuxidc.com/Linux/2012-10/72458.htm
《细说 PHP》高清扫描 PDF+ 光盘源码 + 全套教学视频 http://www.linuxidc.com/Linux/2014-03/97536.htm
CentOS 6 中配置 PHP 的 LNMP 的开发环境 http://www.linuxidc.com/Linux/2013-12/93869.htm
PHP 的详细介绍 :请点这里
PHP 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-03/129666.htm
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)