[筆記] 延長 PHP-FPM 和 NGINX 執行時間上限
Laravel 或是一般 PHP 專案上常會遇到執行時間超時的問題, 例如遇到了 PHP 超過執行時間上限的錯誤: 'production.ERROR: Maximum execution time of 30 seconds exceeded' 或是遇到 NGINX 的超時錯誤: '504 Gateway Time-out' 是因為 PHP 和 NGINX 預設最長執行時間都是 30 秒,我們可以修改設定來延長它們。這裡我們延長到 Apache、IIS 慣例的 5 分鐘。 這個主題其實很多人寫了,但是資訊有點零散,乾脆自己再寫一篇方便以後找。 (感覺就是很常會改啊) PHP: 延長 max_execution_time PHP 的 runtime 設定中的 max_execution_time 參數可以指定腳本被 parser 中止之前允許的最大執行時間,預設值是 30 秒。我們可以透過修改 php.ini 指定為 300 秒。 修改 php.ini 以 PHP 7.2 為例,php.ini 的位置預設是在 /etc/php/7.2/cli/php.ini 。php.ini 的位置可以經由 php -i 指令查詢的到。順帶一提,PHPBrew 使用者可以透過 phpbrew config 指令直接開啟當前版本對應的 php.ini。 ; /etc/php/7.2/cli/php.ini ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; ; 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 = 300 重新啟動 PHP-FPM 修改完成後,需要重新啟動 PHP-FPM。 PHPBrew 使用者 phpbrew fpm restart Ubuntu/Debian 系 sudo service php7.2-fpm res...