在 PHP 5.4+ 或 APC 3.1.13+ 版本中,apc.shm_size 配置指令強制要求使用內存單位後綴(M 兆字節、G 吉字節),不再支持純數字(舊版本默認單位為字節)。若配置文件中寫成 apc.shm_size=64,PHP 啟動時會拋出警告:
Warning: PHP Startup: apc.shm_size now uses M/G suffixes, please update your ini
/etc/php5/fpm/conf.d/20-apc.ini、/etc/php.d/apc.ini 或 php.ini 中)apc.shm_size=64 修改為 apc.shm_size=64Msystemctl restart php-fpm 或 systemctl restart httpd; /etc/php.d/apc.ini
extension=apc.so
apc.enabled=1
apc.shm_segments=1
apc.shm_size=128M ; 必須帶 M 或 G 後綴
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=10000
apc.enable_cli=1
| 配置值 | 實際內存大小 |
|---|---|
64M | 64 MB (67,108,864 bytes) |
128M | 128 MB |
256M | 256 MB |
512M | 512 MB |
1G | 1 GB (1,073,741,824 bytes) |
K (KB):APC 只識別 M 和 G,寫 64K 會報錯。kernel.shmmax 和 kernel.shmall 必須大於配置值,否則啟動失敗。可用 sysctl -w kernel.shmmax=268435456 臨時調整,永久寫入 /etc/sysctl.conf。php -m | grep apc
# 或
php -i | grep apc.shm_size
# 輸出應顯示:apc.shm_size => 128M => 128M
修改後重啟服務,警告即消失。建議趁機評估遷移至 OPcache + APCu/Redis,獲得更好性能與長期維護支持。