PHP opcache安装配置详解
PHP5.5.0 后OPCACHE已经自动添加在php内核中,不必单独安装,更早之前的PHP版本的安装也同其它php扩展一样,源码地址http://pecl.php.net/package/ZendOpcache,就不赘述了。
OpCache 通过对 opcode 的缓存和优化来提升 PHP 执行速度。在 PHP 5.5、5.6 版本中 OpCache 已内建,编译安装时使用 --enable-opcache 即可。PHP 5.2 - 5.4 也可手动安装。
默认opcache是不开启的,需要手工开启
在文件最后面加入:
附:
一个Opcache的推荐配置:
[opcache]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
opcache.enable_cli=1
opcache.memory_consumption=128 ;共享内存大小, 这个根据你们的需求可调
opcache.interned_strings_buffer=8 ;interned string的内存大小, 也可调
opcache.max_accelerated_files=4000 ;最大缓存的文件数目
opcache.revalidate_freq=60 ;60s检查一次文件更新
opcache.fast_shutdown=1 ;打开快速关闭, 打开这个在PHP Request Shutdown的时候
// 回收内存的速度会提高
opcache.save_comments=0 ;不保存文件/函数的注释
[Zend Opcache]
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
;opcache end
OpCache 通过对 opcode 的缓存和优化来提升 PHP 执行速度。在 PHP 5.5、5.6 版本中 OpCache 已内建,编译安装时使用 --enable-opcache 即可。PHP 5.2 - 5.4 也可手动安装。
默认opcache是不开启的,需要手工开启
开启方法
修改 php.ini 文件sudo vim /etc/php.ini在文件最后面加入:
; 开关打开 opcache.enable=1 ; 可用内存, 酌情而定, 单位 megabytes opcache.memory_consumption=256 ; 最大缓存的文件数目, 命中率不到 100% 的话, 可以试着提高这个值 opcache.max_accelerated_files=5000 ; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒 opcache.revalidate_freq=240 ; interned string 的内存大小, 也可调 opcache.interned_strings_buffer=8 ; 是否快速关闭, 打开后在PHP Request Shutdown的时候回收内存的速度会提高 opcache.fast_shutdown=1 ; 不保存文件/函数的注释 opcache.save_comments=0
检查安装:
php -v PHP 5.5.3-1ubuntu2.2 (cli) (built: Feb 28 2014 20:06:05) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
重启服务
sudo /etc/init.d/php-fpm restart sudo /etc/init.d/nginx restart
查看效果
- 拥有漂亮的图形化界面的项目 : https://github.com/PeeHaa/OpCacheGUI
- 单文件, 方便部署的项目: https://github.com/rlerdorf/opcache-status
小提示
如果在更新代码之后,发现没有执行的还是旧代码,可使用函数opcache_reset() 来清除缓存。该函数将重置整个字节码缓存。 在调用 opcache_reset() 之后,所有的脚本将会重新载入并且在下次被点击的时候重新解析。附:
一个Opcache的推荐配置:
[opcache]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
opcache.enable_cli=1
opcache.memory_consumption=128 ;共享内存大小, 这个根据你们的需求可调
opcache.interned_strings_buffer=8 ;interned string的内存大小, 也可调
opcache.max_accelerated_files=4000 ;最大缓存的文件数目
opcache.revalidate_freq=60 ;60s检查一次文件更新
opcache.fast_shutdown=1 ;打开快速关闭, 打开这个在PHP Request Shutdown的时候
// 回收内存的速度会提高
opcache.save_comments=0 ;不保存文件/函数的注释
[Zend Opcache]
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
;opcache end
顶(0)
踩(0)
- 最新评论
