php.ini 控制 PHP 引擎核心行為,隨版本演進選項增減頻繁。升級 PHP 前務必研讀新版 php.ini,避免相容性問題。本文整理常用區塊重點說明。
| 指令 | 預設 | 說明 |
|---|---|---|
| engine | On | 啟用 PHP 引擎 |
| short_open_tag | On | 允許 <? ?> 短標籤,建議關閉改用 <?php 確保可攜性 |
| asp_tags | Off | ASP 風格 <% %>,建議關閉 |
| precision | 14 | 浮點數顯示精度 |
| y2k_compliance | Off | Y2K 相容,現代環境建議 On |
| output_buffering | Off | 開啟可在輸出內容後送 header,微幅影響效能 |
| implicit_flush | Off | 強制每次輸出 flush,僅除錯時開啟 |
| allow_call_time_pass_reference | On | 允許呼叫時傳址,已棄用,建議關閉並在函式宣告指定 |
safe_mode = Off:已淘汰,改用 open_basedir、disable_functions 等機制disable_functions:禁用高危函式(如 exec, shell_exec, system, passthru)| 指令 | 建議值 | 說明 |
|---|---|---|
| error_reporting | E_ALL & ~E_NOTICE | 開發環境建議 E_ALL,生產環境隱藏 NOTICE |
| display_errors | Off (生產) | 生產環境必須關閉,避免洩露路徑等敏感資訊 |
| log_errors | On | 啟用錯誤日誌記錄 |
| error_log | /var/log/php_error.log | 指定日誌檔案路徑 |
variables_order = "GPCS":註冊順序 GET/POST/COOKIE/SERVERregister_globals = Off:務必關閉,防止變數汙染(PHP 5.4 移除)post_max_size = 8M:POST 資料上限,需大於 upload_max_filesizemagic_quotes_gpc = Off:已棄用(PHP 5.4 移除),改用 prepared statements 防 SQL 注入max_execution_time = 30:腳本最長執行秒數memory_limit = 128M:單腳本記憶體上限(視專案調整)最佳實務:維護專屬 php.ini 版本控制,區分開發/測試/生產環境設定,部署時自動套用對應配置。