php7 使用opcache把编译后的php文件存储为文件,实现php源码保护和脚本加速

时间:2022-10-23 08:35:47

工作原理:

php7 使用opcache把编译后的php文件存储为文件,实现php源码保护和脚本加速

 

 

备注:

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目录下的机器码了。

 

缓存机器码样式

php7 使用opcache把编译后的php文件存储为文件,实现php源码保护和脚本加速