在使用 PHP 執行長時間運行的腳本時,我們經常遇到腳本運行時間過長的問題。當腳本運行時間超過預定的時間限制時,PHP 會自動終止腳本的執行,並傳回錯誤訊息。這個時間限制就是 PHP 的超時時間(timeout)。預設情況下,PHP 的超時時間是 30 秒。對於一些需要大量計算或處理的腳本來說,這個時限可能遠遠不夠,需要手動設定更長的超時時間。
以下介紹在 php.ini 檔案中設定逾時時間的方法。
在Linux 系統中,可以使用下列指令來尋找php.ini 檔案的位置:
php -i | grep php.ini
指令執行後會顯示php.ini 檔案的路徑,例如:
Configuration File (php.ini) Path => /usr/local/php7/lib Loaded Configuration File => /usr/local/php7/lib/php.ini
在Windows 系統中,可以使用搜尋工具尋找php.ini 檔案。
使用文字編輯器開啟 php.ini 檔案。注意:php.ini 檔案通常是系統層級的設定文件,需要管理員權限。
; Maximum amount of time each script may spend parsing request data. ; Default: 60 ; Change: 600 max_input_time = 600 ; Maximum execution time of each script, in seconds ; Default: 30 ; Change: 300 max_execution_time = 300
一般情況下,修改以上兩個設定項目即可將 PHP 逾時時間設為 10 分鐘。其中,
max_input_time
指 PHP 腳本最大的運行時間,以秒為單位。在這個時間內,腳本的輸入資料必須被解析完畢。 max_execution_time
指 PHP 腳本的最大執行時間,以秒為單位。在這個時間內,腳本必須執行完畢,否則 PHP 引擎將終止腳本的執行。 要注意的是,max_execution_time
的設定不能超過 PHP-FPM、Web 伺服器、作業系統等其他元件的限制。如果這些組件的限制時間較短,那麼逾時時間也會被限制在更短的時間內。
修改完 php.ini 檔案後,儲存並重新啟動 PHP。
在 Linux 系統中可以使用命令:
sudo systemctl restart php-fpm
在 Windows 系統中可以在命令列中輸入:
iisreset
或者,在服務管理員中重新啟動 IIS 服務。
經過以上操作,我們就可以將 PHP 的逾時時間設定為我們需要的時間了。當然,設定太長的超時時間也會對伺服器的效能帶來一定壓力,需要根據實際情況和需求進行合理設定。
以上是詳解php.ini超時時間的設定方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!