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

php.ini-dist 與 php.ini-recommended 差異深度解析:開發與生產環境配置檔選擇指南

     編輯:PHP 相關知識

核心結論

配置檔適用場景核心特性PHP 5.3+ 新命名
php.ini-dist開發/測試環境錯誤顯示開啟、嚴格標準報告、寬鬆安全設置php.ini-development
php.ini-recommended生產/上線環境錯誤隱藏、安全加固、效能優化、建議值預設php.ini-production

歷史演進與命名變更

  • PHP ≤ 5.2: 提供 php.ini-dist (開發) 與 php.ini-recommended (生產)
  • PHP 5.3+: 重命名為 php.ini-development 與 php.ini-production,語義更清晰
  • PHP 7.0+: 進一步調整預設值 (如 error_reporting 排除 E_DEPRECATED),但兩檔定位不變

關鍵差異逐項對照

指令php.ini-developmentphp.ini-production影響
display_errorsOnOff生產環境防止敏感資訊洩露到瀏覽器
display_startup_errorsOnOff同上
error_reportingE_ALLE_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED生產環境降低日誌噪音
log_errorsOnOn兩者都建議開啟日誌記錄
expose_phpOnOff生產環境隱藏 PHP 版本資訊
register_globalsOffOffPHP 5.4+ 已移除,歷史遺留
magic_quotes_gpcOffOffPHP 5.4+ 已移除
allow_url_includeOffOff防止遠程檔案包含漏洞
session.use_only_cookies11防 Session Fixation 攻擊
session.cookie_httponly11防 XSS 竊取 Session ID
output_bufferingOff4096生產環境開啟 4KB 緩衝提升吞吐
zlib.output_compressionOffOff建議由 Web 伺服器 (Nginx/Apache) 處理壓縮
max_execution_time3030同
memory_limit128M128M同,視應用調整

實務操作建議

  1. 基準選擇: 複製 php.ini-production 為 php.ini 作為所有環境基準
  2. 環境差異化:
    • 開發機:覆蓋 display_errors=On、error_reporting=E_ALL、xdebug.mode=develop
    • 測試/預發:貼近生產,僅開啟錯誤日誌詳細度
    • 生產:嚴格遵循 production 預設,關閉所有顯示類錯誤
  3. 版本控制: 將 php.ini 納入專案配置管理 (Ansible/Docker/Chef),避免手動修改導致環境漂移
  4. 遷移檢查: 升級 PHP 版本時,對比新舊 php.ini-production 差異,同步調整自定義配置

常見誤區澄清

誤區: 「開發環境用 php.ini-development,生產用 php.ini-production,直接改名即可。」

真相: 兩份檔案只是預設值基準,實際部署仍需根據具體應用調整關鍵參數 (如 memory_limit、post_max_size、date.timezone、extension_dir、資料庫連線池設定等)。絕不可直接改名上線。

快速生成對比報表 (Linux/Mac)

# 安裝後對比兩份檔案差異
diff -u /etc/php/7.4/fpm/php.ini-development /etc/php/7.4/fpm/php.ini-production | less

# 或使用圖形化工具
meld /etc/php/7.4/fpm/php.ini-development /etc/php/7.4/fpm/php.ini-production

總結

理解 php.ini-development (舊 dist) 與 php.ini-production (舊 recommended) 的設計初衷與差異,是構建安全、穩定、可維護 PHP 環境的基礎。以 production 為基準,按環境微調,配合自動化部署工具落地,才是專業的配置管理之道。

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