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

解決 PHP APC 擴展啟動警告:apc.shm_size 必須使用 M/G 後綴

     編輯:PHP 綜合知識

在 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

快速修復

  1. 找到 APC 配置文件(通常在 /etc/php5/fpm/conf.d/20-apc.ini、/etc/php.d/apc.ini 或 php.ini 中)
  2. 將 apc.shm_size=64 修改為 apc.shm_size=64M
  3. 重啟 PHP-FPM / Apache:systemctl 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

單位換算對照

配置值實際內存大小
64M64 MB (67,108,864 bytes)
128M128 MB
256M256 MB
512M512 MB
1G1 GB (1,073,741,824 bytes)

注意事項

  • 不要使用 K (KB):APC 只識別 M 和 G,寫 64K 會報錯。
  • 共享內存限制:系統內核參數 kernel.shmmax 和 kernel.shmall 必須大於配置值,否則啟動失敗。可用 sysctl -w kernel.shmmax=268435456 臨時調整,永久寫入 /etc/sysctl.conf。
  • APC 已棄用:PHP 5.5+ 內置 OPcache 替代 APC 字節碼緩存;用戶緩存建議遷移至 APCu 或 Redis。

驗證修復

php -m | grep apc
# 或
php -i | grep apc.shm_size
# 輸出應顯示:apc.shm_size => 128M => 128M

修改後重啟服務,警告即消失。建議趁機評估遷移至 OPcache + APCu/Redis,獲得更好性能與長期維護支持。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved