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

PHP ini_set() 動態修改配置完整指南

     編輯:PHP 綜合知識

ini_set() 允許在腳本執行期間動態修改 php.ini 設定值,效力僅限於當前腳本生命週期,腳本結束自動恢復。這對無法修改主配置文件的虛擬主機環境極為實用。本文整理常用設定項、語法與注意事項。

語法格式

string ini_set(string $varname, string $newvalue)
  • 成功返回舊值,失敗返回 false。
  • 並非所有指令皆可修改,可修改指令列表請參考官方文件 php.ini directives,模式為 PHP_INI_USER 或 PHP_INI_ALL 者可用。
  • 建議前綴 @ 抑制失敗時的警告。

高頻使用場景與範例

設定項說明範例
memory_limit腳本最大可用記憶體,防止失控腳本耗盡資源@ini_set('memory_limit', '256M');
display_errors是否顯示錯誤訊息,開發環境建議開啟@ini_set('display_errors', '1');
error_reporting錯誤報告等級@ini_set('error_reporting', E_ALL);
session.auto_start是否自動啟動 Session,0 需手動 session_start()@ini_set('session.auto_start', '0');
session.gc_maxlifetimeSession 資料在伺服器保存秒數(預設 1440)@ini_set('session.gc_maxlifetime', '7200');
session.cookie_lifetimeSession Cookie 存活秒數,0 為瀏覽器關閉即失效@ini_set('session.cookie_lifetime', '3600');
max_execution_time腳本最大執行秒數,0 為無限制@ini_set('max_execution_time', '300');
post_max_sizePOST 資料最大尺寸(影響檔案上傳)@ini_set('post_max_size', '50M');
upload_max_filesize單檔上傳最大尺寸@ini_set('upload_max_filesize', '50M');
default_socket_timeoutSocket 操作超時秒數(影響 file_get_contents 等)@ini_set('default_socket_timeout', '60');

Session 相關進階設定

// 使用 Cookie 傳遞 Session ID(預設開啟)
@ini_set('session.use_cookies', '1');
// 禁止在 URL 中透傳 Session ID(安全風險:易洩漏、被收藏、郵件傳播)
@ini_set('session.use_trans_sid', '0');
// 僅允許 HTTPS 傳輸 Session Cookie(需 HTTPS 環境)
@ini_set('session.cookie_secure', '1');
// 防止 JavaScript 存取 Session Cookie(XSS 防護)
@ini_set('session.cookie_httponly', '1');
// 設定 SameSite 屬性(PHP 7.3+,防 CSRF)
@ini_set('session.cookie_samesite', 'Lax'); // 或 'Strict', 'None'

常見誤區與最佳實踐

  1. 修改時機:必須在相關功能使用前呼叫(如 session_start() 前設定 Session 參數)。
  2. 權限限制:若主機設定 disable_functions 包含 ini_set 或指令模式為 PHP_INI_SYSTEM,則無法生效。
  3. 生產環境:display_errors 應關閉,改用 log_errors + error_log 記錄至檔案。
  4. 永久生效:若需永久修改,請編輯 php.ini、.user.ini(CGI/FPM 模式)或 Apache .htaccess(php_value 指令)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved