隨著業務發展,網站訪問量越來越大,很多時候我們需要執行較長時間的 PHP 腳本。但是 PHP 預設的超時時間僅為 30 秒,遠遠無法滿足業務需求。為了解決這個問題,我們需要對 PHP 的逾時時間進行修改。
以下是一些可以改變PHP 逾時時間的方法:
這是最常見的方式,透過修改php.ini 檔案中的max_execution_time 參數,可以改變PHP 的超時時間。在 php.ini 檔案中找到以下內容:
; Maximum execution time of each script, in seconds ; http://php.net/max-execution-time ; Note: This directive is hardcoded to 0 for the CLI SAPI max_execution_time = 30
將其中的 max_execution_time 參數改為大於 30 秒的值即可。
值得一提的是,若修改 php.ini 檔案無效,則需要看看目前 PHP 使用的是哪個 php.ini 檔案。可以在 PHP 程式碼中使用 phpinfo() 函數查看。
set_time_limit() 函數是 PHP 內建的函數,可以用來改變腳本執行的最大時間。例如,在程式碼的開頭加入以下程式碼:
set_time_limit(600);
則 PHP 腳本的最大執行時間將會設定為 600 秒,也就是 10 分鐘。
值得一提的是,如果將參數傳入 0,則表示取消執行時間限制,腳本可以一直執行下去。
如果 PHP 的運作方式是 Apache 模組,那麼可以透過修改 .htaccess 檔案中的 php_value 來改變 PHP 的逾時時間。
在 .htaccess 檔案中加入以下程式碼:
php_value max_execution_time 600
此時,PHP 的最大執行時間將會設定為 600 秒,也就是 10 分鐘。
如果使用的是Nginx 或FastCGI,那麼可以在設定檔中加入以下程式碼:
fastcgi_read_timeout 600;
此時,PHP 的最大執行時間將被設定為600 秒,也就是10 分鐘。
如果使用的是 PHP-FPM,則可以透過修改 php-fpm.conf 或 www.conf 檔案來設定 PHP 的逾時時間。這裡以 php-fpm.conf 檔案為例:
找到以下內容:
; Process timeouts in seconds. Negative values disable timeouts. ; Default Value: ; process.timeout = 0s process.timeout = 30s
將 process.timeout 參數改為大於 30 秒的值即可。
總結
以上是改變 PHP 逾時時間的方法,依照不同的環境和使用,選擇不同的方法來修改 PHP 的逾時時間。除此之外,我們還需要注意調整 PHP 記憶體限制(memory_limit)以及 Apache 或 Nginx 的 伺服器請求回應時間等參數,以提高網站的效能和穩定性。
以上是php怎麼改變超時時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!