本文目錄一覽:
- 1、php報錯,超過最大執行時間
- 2、PHP函數執行時間過長無響應,有什麼優化的辦法?
- 3、php 執行時間超過2秒 就會提示錯誤信息
- 4、php進程超時介面返回504錯誤分析
- 5、php處理大量數據時,運行到一定時間就中斷了,請問如何解決
php報錯,超過最大執行時間
php報錯,超過最大執行時間
sql語句執行效率慢,或者資料庫連接慢,導致程序執行時間超出100秒; 修改php.ini調整最大執行時間,或者程序開始時聲明最大執行時間。
PHP函數執行時間過長無響應,有什麼優化的辦法?
這個優化要看下你資料庫的結構了,最簡單的使用 set_time_limit(0);函數修改php文件執行30秒的限制,禁對單個文件可用,這樣不需要修改php的配置!
php 執行時間超過2秒 就會提示錯誤信息
?php
// 創建一個cURL資源
$ch = curl_init();
// 設置URL和相應的選項
curl_setopt($ch, CURLOPT_URL, “”);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 2); //2秒超時
// 抓取URL並把它傳遞給瀏覽器
curl_exec($ch);
// 關閉cURL資源,並且釋放系統資源
curl_close($ch);
?
php進程超時介面返回504錯誤分析
在一次介面測試中,發現返回的http 504 time out 的錯誤,然後查看了php-fpm的錯誤日誌,發現了如下錯誤
從表現上看,是php進程超時導致的進程被kill了,那麼這個超時時間以及kill的機制是跟哪些參數有關呢,這裡系統這裡一下。
Nginx服務一般因為php的錯誤或者超時會有兩種錯誤碼502 bad Gateway 或者 504 Gateway Time-out
一種情況是php產生了語法錯誤,比如循環調用、變數作用域錯誤、方法不存在等,如果開啟錯誤日誌輸出的話,這種錯誤在php-fpm的錯誤日誌中是可以看到調用棧信息的。
另外一種情況可能就是超時引起的php-fpm主動kill的情況,在php.ini和php.fpm中有兩個配置項,用來管理php腳本的最大執行時間
當php腳本的執行時間超過這個時間時,PHP-FPM不只會終止腳本的執行,還會終止執行腳本的Worker進程。所以Nginx會發現與自己通信的連接斷掉了,就會返回給客戶端502錯誤。
以頂部的錯誤為例,當報502錯誤是,nginx的errorlog中有如下日誌,:
所以只需將這兩項的值調大一些就可以讓PHP腳本不會因為執行時間長而被終止了。request_terminate_timeout可以覆蓋max_execution_time,
所以如果不想改全局的php.ini,那隻改PHP-FPM的配置就可以了。
此外要注意的是Nginx的upstream模塊中的max_fail和fail_timeout兩項。這兩個配置表示在fail_timeout事件內,如果fail的測試達到max_fail,那麼在接下來的fail_timeout時間內,Nginx都會認為上游伺服器掛掉了,都會返回502錯誤。
所以可以將max_fail調大一些,將fail_timeout調小一些。
PHP-FPM設置的腳本最大執行時間已經夠長了,但執行耗時PHP腳本時,發現Nginx報錯從502變為504了。這是為什麼呢?
因為我們修改的只是PHP的配置,Nginx中也有關於與上游伺服器通信超時時間的配置
以Nginx超時時間為90秒,PHP-FPM超時時間為300秒為例,報504 Gateway Timeout錯誤時的Nginx錯誤訪問日誌如下:
調高這三項的值(主要是read和send兩項,默認不配置的話Nginx會將超時時間設為60秒)之後,504錯誤也解決了。
而且這三項配置可以配置在http、server級別,也可以配置在location級別。擔心影響其他應用的話,就配置在自己應用的location中吧。
要注意的是factcgi_connect/read/send_timeout是對FastCGI生效的,而proxy_connect/read/send_timeout是對proxy_pass生效的。
參考鏈接: 感謝分享!
php處理大量數據時,運行到一定時間就中斷了,請問如何解決
php處理數據時會有一個等待時間,就是所說的超時時間,而且如果使用mysql的話,它也有一個超時時間,運行一串代碼時間如果超過配置文件的時間,會被中斷不運行。第一種你可以修改php配置文件timeout的運行時間,第二你可以分批處理大量數據,注意是分批處理,就OK了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/242081.html