Laravel 頁面 TTFB (Time To First Byte) 長期徘徊 150ms,安裝 Zend Opcache 後降至 70ms 以內,性能提升顯著。本文記錄從源碼編譯安裝到生產配置的完整流程。
which php
# /usr/local/php/bin/php
ls -l /usr/local/php/bin/php
# 確認 phpize、php-config 路徑
# 1. 獲取源碼(GitHub 官方倉庫)
wget https://github.com/zendtech/ZendOptimizerPlus/archive/master.zip -O zendopcache.zip
unzip zendopcache.zip
cd ZendOptimizerPlus-master
# 2. 編譯安裝
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
編譯成功會提示:Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/。
在 php.ini 末尾追加:
[Zend Opcache]
zend_extension=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
關鍵參數說明:
memory_consumption:共享內存大小,根據項目文件數調整。max_accelerated_files:最大緩存文件數,設大於項目總 PHP 文件數。revalidate_freq:檢查文件更新間隔(秒),開發環境設 0,生產 60+。fast_shutdown:啟用快速關閉序列,加速請求結束。enable_cli:CLI 模式也啟用,方便 Artisan 命令受益。php -m | grep opcache
# Zend OPcache
php -v
# Zend OPcache v7.x.x, Copyright (c) 1999-2014, by Zend Technologies
重啟 php-fpm:service php-fpm restart。
Chrome DevTools Network 面板:
吞吐量 (ab 壓測) 提升約 40%+。
phpize/php-config 編譯。zend_extension 路徑:若非標準擴展目錄,需寫絕對路徑 zend_extension=/full/path/opcache.so。revalidate_freq=0 或配合 opcache_reset() 手動清理。Opcache 是 PHP 性能提升「投入產出比最高」的擴展,Laravel 專案無理由不裝。