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

php.ini 核心配置詳解:效能、安全與環境調優指南

     編輯:PHP 綜合知識

配置檔案載入機制

PHP 依序尋找 php.ini:目前工作目錄 → 環境變數 PHPRC 指定路徑 → 編譯時預設路徑(Windows 為安裝目錄)。CLI 模式可用 -c 參數覆蓋。

語法規則

  • 分號 ; 開頭為註解,空白行被忽略
  • 區段標題 [Section] 目前無實際作用
  • 指令格式:directive = value,指令名稱區分大小寫
  • 值型別:字串、數字、PHP 常數、INI 常數、運算式、帶引號字串
  • 布林值:1/On/True/Yes 為開啟,0/Off/False/No 為關閉
  • 空字串:foo = 或 foo = none;foo = "none" 為字串 "none"

關鍵配置區段解析

語言引擎核心

  • engine = On — 啟用 PHP 引擎
  • short_open_tag = On — 允許 <? ?> 短標籤
  • asp_tags = Off — ASP 風格標籤
  • precision = 14 — 浮點數顯示精度
  • y2k_compliance = Off — Y2K 相容性

輸出緩衝控制

  • output_buffering = Off — 關閉時需在輸出前送出 Header;開啟可延遲輸出但微幅降低效能
  • output_handler = — 重導向輸出至函數(如 ob_gzhandler 啟用 GZIP 壓縮)
  • implicit_flush = Off — 強制每次輸出後刷新,僅建議除錯時開啟

參數傳遞與安全模式

  • allow_call_time_pass_reference = On — 允許呼叫時強制傳址(已棄用,建議關閉並在函數宣告指定)
  • safe_mode = Off — 安全模式(PHP 5.4+ 已移除)
  • disable_functions = — 停用危險函數(如 exec,shell_exec,system),不受 safe_mode 影響

錯誤處理與日誌

  • error_reporting = E_ALL & ~E_NOTICE — 回報所有錯誤除提示
  • display_errors = On — 畫面顯示錯誤(生產環境必須關閉,改用日誌)
  • log_errors = Off — 記錄錯誤至日誌檔(生產環境建議開啟)
  • error_log = — 指定錯誤日誌路徑或 syslog

資源限制

  • max_execution_time = 30 — 腳本最大執行秒數
  • memory_limit = 8M — 單一腳本記憶體上限

變數處理與超全域變數

  • variables_order = "EGPCS" — 變數註冊順序:Environment、GET、POST、Cookie、Server
  • register_globals = On — 嚴重安全風險,將 EGPCS 註冊為全域變數,現代 PHP 預設關閉
  • register_argc_argv = On — 宣告 $argv/$argc(CLI 參數)
  • track_vars = On — 啟用 $HTTP_*_VARS 陣列

Magic Quotes(已棄用移除)

  • magic_quotes_gpc = On — 自動跳脫 GPC 資料
  • magic_quotes_runtime = Off — 執行期資料跳脫
  • magic_quotes_sybase = Off — Sybase 風格跳脫

檔案上傳與路徑

  • file_uploads = On — 允許 HTTP 上傳
  • upload_max_filesize = 2M — 上傳大小限制
  • include_path = — include/require 搜尋路徑
  • extension_dir = — 擴充模組目錄
  • enable_dl = On — 允許 dl() 動態載入(多執行緒伺服器如 IIS 應關閉)

動態擴充模組載入

; Windows
extension=php_mysql.dll
extension=php_gd.dll
extension=php_mbstring.dll

; UNIX/Linux
extension=mysql.so
extension=gd.so

僅需模組檔名,路徑由 extension_dir 指定。

資料庫模組預設連線參數

MySQL、PostgreSQL、ODBC、Sybase 等區段均提供 allow_persistent、max_persistent、max_links、預設主機/使用者/密碼等設定。切勿在 php.ini 寫死資料庫密碼,任何可執行 PHP 的使用者皆可讀取。

Session 處理

  • session.save_handler = files — 儲存機制
  • session.save_path = — 儲存路徑
  • session.use_cookies = 1 — 使用 Cookie 傳遞 SID
  • session.gc_maxlifetime = 1440 — 垃圾回收壽命(秒)
  • session.use_trans_sid = 1 — URL 重寫傳遞 SID
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved