2017-03-31 88 views
1

我有一個腳本,需要通過cron作業運行長達15分鐘。但我無法讓腳本繼續運行。它在120秒內錯誤地出現404消息。很奇怪。我甚至打電話給我的主機提供商。我很茫然。當腳本運行時間超過120秒時,頁面超時,404錯誤

我已經設置了max_execution_time = 5000

有沒有人有任何建議?

set_time_limit(0); 

$array = array('1','2', '3'); 

foreach ($array as $row) { 

    echo $row . '<br>'; 
       sleep(50); 

} 

回答

0

您可能還需要看看Apache的超時設置,你可以在php.ini中改變最大的執行時間價值,仍然可以得到通過在httpd.conf文件Apache的超時值停止。

你可以通過在終端中運行httpd -V來找到httpd.conf(命令名取決於你的系統/ apache版本,它也可以是apache -V)〜如果你沒有終端接入,你可能需要聯繫您的虛擬主機。示例輸出:

bash-3.2# httpd -V 
Server version: Apache/2.2.22 (Unix) 
Server built: Aug 24 2012 17:16:58 
Server's Module Magic Number: 20051115:30 
Server loaded: APR 1.4.5, APR-Util 1.3.12 
Compiled using: APR 1.4.5, APR-Util 1.3.12 
Architecture: 64-bit 
Server MPM:  Prefork 
    threaded:  no 
    forked:  yes (variable process count) 
Server compiled with.... 
-D APACHE_MPM_DIR="server/mpm/prefork" 
-D APR_HAS_SENDFILE 
-D APR_HAS_MMAP 
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) 
-D APR_USE_FLOCK_SERIALIZE 
-D APR_USE_PTHREAD_SERIALIZE 
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT 
-D APR_HAS_OTHER_CHILD 
-D AP_HAVE_RELIABLE_PIPED_LOGS 
-D DYNAMIC_MODULE_LIMIT=128 
-D HTTPD_ROOT="/usr" 
-D SUEXEC_BIN="/usr/bin/suexec" 
-D DEFAULT_PIDLOG="/private/var/run/httpd.pid" 
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status" 
-D DEFAULT_LOCKFILE="/private/var/run/accept.lock" 
-D DEFAULT_ERRORLOG="logs/error_log" 
-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types" 
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"  <-- HERE IT IS 

httpd.conf文件看起來是這樣的:https://www.devside.net/guides/config/linux/httpd-conf

通知行:

Timeout 300 
+0

確定。愚蠢的問題...我在哪裏可以找到該文件?我需要聯繫我的虛擬主機嗎? – foxtangocharlie

+0

我沒有花時間去尋找那個,但是......我可以在沒有使用終端的情況下找到它嗎?如果我找到該文件,它會顯示與max_execution_time = 120類似的行嗎? – foxtangocharlie

+0

做一個簡短的搜索......看來我的主機dreamhost不允許編輯httpd.conf文件。他們表示我可以編輯我的.htaccess文件。任何想法如何做到這一點?並且在我進行更改後檢查它是否正常工作(除了長腳本的成功運行)? – foxtangocharlie

相關問題