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

PHP.INI 設定檔深度導覽(二):擴展啟用、資源限制、動態配置與效能調校

     編輯:PHP 相關知識

擴展模組啟用

extension_dir = "C:\Program Files\Apache\bin\php4\extensions"
; Windows: 移除行首分號啟用
extension=php_domxml.dll
extension=php_dbase.dll
; 或動態指定
extension=php_mysql.dll
  • Unix:編譯時靜態連結或 --enable-xxx=shared 產生 .so。
  • Windows:預編譯 .dll,放入 extension_dir,php.ini 啟用。

模組專屬設定區塊

[Mail]
SMTP = myserver.localnet.com
sendmail_from = me@localhost.com
sendmail_path = /usr/sbin/sendmail

[Java]
java.class.path = .\php_java.jar
java.home = c:\jdk
java.library = c:\jdk\jre\bin\hotspot\jvm.dll
java.library.path = .

[Session]
session.save_path = c:\windows\temp
session.cookie_lifetime = 1800

安全模式與存取控制

safe_mode = Off
safe_mode_include_dir = /usr/local/lib/php/safe-include
safe_mode_exec_dir = /usr/local/lib/php/safe-bin
open_basedir = /home/web/
max_execution_time = 90
  • safe_mode:限制檔案操作僅限同擁有者、禁用高危函式 (PHP 5.4 移除)。
  • open_basedir:限制腳本存取路徑樹,共享主機必備。
  • max_execution_time:防止無限迴圈佔用資源,大檔上傳需調大。

檔案上傳與表單限制

file_uploads = On
upload_max_filesize = 2M
register_globals = Off          ; 關閉自動全域變數 (安全)
post_max_size = 8M              ; 需 > upload_max_filesize
max_input_time = 90             ; PHP 5+ 接收資料最長秒數

效能調校參數

memory_limit = 8M               ; 單腳本記憶體上限 (需 > post_max_size)
register_argc_argv = false      ; 關閉 $argc/$argv (CLI 參數),省記憶體
register_long_arrays = false    ; PHP 5 關閉 $HTTP_*_VARS 長陣列,改用 $_GET/$_POST

執行期動態修改:ini_set()

<?php
// 僅影響當前腳本,結束自動還原
ini_set('max_execution_time', 600);  // 10 分鐘
ini_set('memory_limit', '256M');
ini_set('display_errors', '1');
// 查詢當前值
echo ini_get('max_execution_time');
?>
  • 適用於共享主機無法修改主 php.ini 的情況。
  • 並非所有指令可動態修改 (如 extension_dir, open_basedir 通常僅 PHP_INI_SYSTEM 層級)。
  • 可用 ini_get_all() 列出所有指令當前值與修改層級。

指令修改層級對照

層級常數可修改範圍範例
PHP_INI_USER腳本 (ini_set)、.user.ini、註冊表display_errors, memory_limit
PHP_INI_PERDIRphp.ini, .htaccess, .user.iniopen_basedir, upload_max_filesize
PHP_INI_SYSTEMphp.ini, httpd.confextension_dir, max_execution_time (部分)
PHP_INI_ALL任意error_reporting

結語

php.ini 是 PHP 行為的總控制台。掌握擴展載入機制、安全限制、資源配額、動態覆寫能力,能在開發、測試、生產各環境精準調校。現代部署建議:最小化啟用擴展、open_basedir 隔離、disable_functions 封鎖高危、opcache 加速、.user.ini 目錄級覆寫、容器化環境透過環境變數注入配置。

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