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目錄下的機器碼了。

 

緩存機器碼樣式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM