字體:  

安裝 OPcache 提升 PHP7 Laravel 性能

allentsai 發表於: 2019-6-13 11:12 來源: ADJ網路控股集團


Opcache 的前生是 Optimizer+ ,它是PHP的官方公司 Zend 開發的一款閉源但可以免費使用的 PHP 優化加速組件。
Optimizer+ 將PHP代碼預編譯生成的腳本文件 Opcode 緩存在共享內存中供以後反複使用,從而避免了從磁盤讀取代碼再次編譯的時間消耗。
同時,它還應用了一些代碼優化模式,使得代碼執行更快。從而加速PHP的執行。

安裝 opcache:

# yum install epel-release
# yum install php-opcache

下述設定可以參考看看,請再依照自己的環境修改:

# vi /etc/php.d/10-opcache.ini

QUOTE:


zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=64
opcache.max_accelerated_files=32531
opcache.validate_timestamps=0
opcache.save_comments=1
opcache.fast_shutdown=0


重啟服務
# systemctl restart php-fpm.service
# systemctl restart nginx.service

再來安裝 Laravel OPcache

# composer require appstract/laravel-opcache
# php artisan vendor:publish --provider="Appstract\Opcache\OpcacheServiceProvider" --tag="config"

這樣就可以囉~

相關的command:

QUOTE:


Clear OPcache:
# php artisan opcache:clear

Show OPcache config:
# php artisan opcache:config

Show OPcache status:
# php artisan opcache:status

Pre-compile your application code:
# php artisan opcache:optimize


有一點要留意的.就是我們有關閉 opcache.validate_timestamps=0
改配置值用於重新驗證腳本,如果設置為 0(性能最佳),需要手動在每次 PHP 代碼更改後手動清除 OPcache。如果你不想要手動清除,可以將其設置為 1 並通過 opcache.revalidate_freq 配置重新驗證間隔,這可能會消耗一些性能,因為需要每隔 x 秒檢查更改。

所以更新代碼都要注意,先清緩存,再整體執行優化,命令:
# php artisan opcache:clear && php artisan opcache:optimize


參考資料:https://learnku.com/articles/18782