本文目錄一覽:
PHP-Fcgi下PHP的執行時間設置方法
昨天,一個程序需要導出500條數據,結果發現到150條是,Nginx報出504
Gateway
Timeout錯誤,原來PHP-Fcgi下的設置執行時間與isapi的不同
一般情況下設置PHP腳本執行超時的時間
一、在php.ini裡面設置
max_execution_time
=
1800;
二、通過PHP的ini_set
函數設置
ini_set(“max_execution_time”,
“1800”);
三、通過set_time_limit
函數設置
set_time_limit(1800);
PHP-Fcgi下PHP的執行時間設置方法
昨天,一個程序需要導出500條數據,結果發現到150條是,Nginx報出504
Gateway
Timeout錯誤
經觀察,發現大約30秒時超時,php.ini中執行時間配置已經是300秒:
複製代碼
代碼如下:
max_execution_time
=
300
再查nginx的相關配置,無果。
寫了一個php的測試頁再測
複製代碼
代碼如下:
echo
‘aaa’;
set_time_limit(0);
sleep(40);
echo
‘aa’;
依然超時,可以確定set_time_limit這個函數沒生效。
再查php-fcgi的配置php-fpm.conf,下邊這個設置疑似有問題
複製代碼
代碼如下:
VALUE
name=”request_terminate_timeout”30s/VALUE
查官方文檔:
複製代碼
代碼如下:
request_terminate_timeout
–
The
timeout
(in
seconds)
for
serving
a
single
request
after
which
the
worker
process
will
be
terminated.
Should
be
used
when
‘max_execution_time’
ini
option
does
not
stop
script
execution
for
some
reason.
Default:
“5s”.
Note:
‘0s’
means
‘off’
大意是php中set_time_limit設置的時間內如果php還沒執行完,則走此處的配置,也就是request_terminate_timeout=30秒。
先把這個參數改的和php中set_time_limit值一樣,都是300秒,還不行,不理解為什麼,如果高手知道請賜教。
最終把request_terminate_timeout關閉,程序可以正常執行了,問題解決
複製代碼
代碼如下:
VALUE
name=”request_terminate_timeout”0s/VALUE
補充:如果前端的nginx伺服器使用了upstream負載均衡,那個負載均衡配置中以下幾個參數也需要相應修改
複製代碼
代碼如下:
proxy_connect_timeout
300s;
proxy_send_timeout
300s;
proxy_read_timeout
300s;
如何用php獲取程序執行的時間
在文件頭加入$stime=microtime(true);
在文件尾加入
$etime=microtime(true);//獲取程序執行結束的時間
$total=$etime-$stime; //計算差值
echo “br /[頁面執行時間:{$total} ]秒”;
例如
文件頭
?php
$stime=microtime(true);
?
文件尾
?php
$etime=microtime(true);//獲取程序執行結束的時間
$total=$etime-$stime; //計算差值
echo “br /[頁面執行時間:{$total} ]秒”;
這樣就可以計算出整個PHP頁面執行的時間。純手打,望採納。
php有沒有可以檢測函數執行時間的功能
PHP 中的 microtime() 函數可以實現
microtime() 函數返回當前 Unix 時間戳和微秒數。
microtime(get_as_float)
參數說明
get_as_float 如果給出了 get_as_float 參數並且其值等價於 TRUE,該函數將返回一個浮點數。
本函數僅在支持 gettimeofday() 系統調用的操作系統下可用。
例如:
?php
$start_time = microtime(true);
for($i=1;$i=1000;$i++){
echo $i.’br’;
}
$end_time = microtime(true);
echo ‘循環執行時間為:’.($end_time-$start_time).’ s’;
?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/300819.html