首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP APCu/APC 快取擴充完整配置參數詳解與兩套推薦方案

     編輯:PHP 綜合知識

APC (Alternative PHP Cache) 提供 opcode 快取與使用者資料快取。APCu 為去除 opcode 功能的分支 (PHP 5.5+ 內建 OPcache)。本文整理編譯安裝、兩套生產環境配置範本與完整參數說明。

安裝編譯參數

./configure --enable-apc --enable-apc-spinlocks --disable-apc-pthreadmutex
make && make install

在 php.ini 載入:extension=apc.so (或 apcu.so)。

方案一:高效能、低更新頻率 (適合靜態程式碼)

apc.enabled=1
apc.stat = 0                 ; 不檢查檔案修改,效能最高
apc.stat_ctime = 0
apc.shm_size = 64M
apc.shm_segments = 1
apc.num_files_hint = 1000
apc.ttl = 0                  ; 永不過期 (需手動清理或重啟)
apc.slam_defense = 0
apc.write_lock = 1
apc.file_update_protection = 2

部署新版本需重啟 PHP-FPM/Apache 使快取失效。

方案二:平衡效能與即時更新 (適合頻繁部署)

apc.enabled=1
apc.stat = 1                 ; 每請求檢查 mtime
apc.stat_ctime = 1           ; 同時檢查 ctime (防 svn/rsync 導致 inode 不變)
apc.shm_size = 64M
apc.shm_segments = 1
apc.num_files_hint = 1000
apc.ttl = 86400              ; 24 小時 TTL
apc.slam_defense = 0
apc.write_lock = 1
apc.file_update_protection = 2

關鍵參數詳細說明

參數類型說明建議值
apc.enabledbool啟用/停用 APC1
apc.shm_segmentsint共享記憶體區段數1
apc.shm_sizeint每區段大小 (MB)64M-256M
apc.num_files_hintint預估快取檔案數1000+
apc.ttlint快取條目存活秒數 (0=永久)7200-86400
apc.user_ttlint使用者快取 TTL7200-86400
apc.gc_ttlint垃圾回收表條目存活秒數3600
apc.statbool檢查腳本更新 (關閉大幅提升效能)0/1
apc.write_lockbool寫入鎖防止並發編譯同一檔案1
apc.file_update_protectionint忽略修改時間 < N 秒的檔案 (防不完整寫入)2
apc.enable_cliboolCLI 模式啟用 (僅測試用)0
apc.max_file_sizeint超過此大小不快取 (預設 1M)1M
apc.rfc1867bool啟用上傳進度追蹤0/1
apc.lazy_functionsint函式延遲載入 (APCu 5.1+)1
apc.lazy_classesint類別延遲載入 (APCu 5.1+)1

選擇建議

  • PHP 5.5+ 專案:OPcache (opcode) + APCu (user cache) 為標準組合。
  • 舊專案維持 APC:若無法升級,使用方案二平衡維運。
  • 監控指標:apc.php 管理介面觀察 Cache full count、Fragmentation、Hit rate。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved