2017-03-31 110 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