工作原理:
备注:
opcache.file_cache缓存为本地文件仅php7以后支持。php5未支持该配置,仅可用户脚本加速。
一、安装opcache.
windows扩展下载地址 https://windows.php.net/downloads/pecl/releases/opcache/
linux:
wget http://pecl.php.net/get/zendopcache-7.0.2.tgz
tarzxvf zendopcache-7.0.2.tgz
cdzendopcache-7.0.2
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config
make&& make install
二、配置opcache
配置参考:http://php.net/manual/zh/opcache.configuration.php
;opcache
[Zend Opcache]
zend_extension=/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/opcache.so
opcache.enable=On
;OPcache 的共享内存大小,以兆字节为单位。
opcache.memory_consumption=128
;用来存储预留字符串的内存大小,以兆字节为单位。
opcache.interned_strings_buffer=8
;哈希表中可存储的脚本文件数量上限。设置值取值范围最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。
opcache.max_accelerated_files=10000
;opcache不保存注释
opcache.save_comments=0
;关闭PHP文件时间戳验证
opcache.validate_timestamps=Off
;每60秒验证php文件时间戳是否更新
;opcache.revalidate_freq=60
opcache.fast_shutdown=1
;注意,PHP7下命令行执行的脚本也会被 opcache.file_cache 缓存.
opcache.enable_cli=
;设置不缓存的黑名单
;opcache.blacklist_filename=/png/php/opcache_blacklist
;设置字节码保存路径
opcache.file_cache=/www/server/php/72/lib/php/extensions/opcache_file_cache
;启用或禁用在共享内存中的 opcode 缓存。
opcache.file_cache_only=0
三、配置完成后。
可通过运行脚本或 opcache_compile_file() 函数将php编译后的机器码保存在opcache.file_cache目录下。就可以加速脚本了
如需保护php源码则可在缓存机器码后将网站目录PHP脚本内容变更为任意内容(不可删除文件),运行的也是保存在opcache_cache目录下的机器码了。
缓存机器码样式