PHP 依序尋找 php.ini:目前工作目錄 → 環境變數 PHPRC 指定路徑 → 編譯時預設路徑(Windows 為安裝目錄)。CLI 模式可用 -c 參數覆蓋。
; 開頭為註解,空白行被忽略[Section] 目前無實際作用directive = value,指令名稱區分大小寫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 = — 指定錯誤日誌路徑或 syslogmax_execution_time = 30 — 腳本最大執行秒數memory_limit = 8M — 單一腳本記憶體上限variables_order = "EGPCS" — 變數註冊順序:Environment、GET、POST、Cookie、Serverregister_globals = On — 嚴重安全風險,將 EGPCS 註冊為全域變數,現代 PHP 預設關閉register_argc_argv = On — 宣告 $argv/$argc(CLI 參數)track_vars = On — 啟用 $HTTP_*_VARS 陣列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.save_handler = files — 儲存機制session.save_path = — 儲存路徑session.use_cookies = 1 — 使用 Cookie 傳遞 SIDsession.gc_maxlifetime = 1440 — 垃圾回收壽命(秒)session.use_trans_sid = 1 — URL 重寫傳遞 SID