当脚本运行时间超过120秒时,页面超时,404错误
问题描述:
我有一个脚本,需要通过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);
}
答
您可能还需要看看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
确定。愚蠢的问题...我在哪里可以找到该文件?我需要联系我的虚拟主机吗? – foxtangocharlie
我没有花时间去寻找那个,但是......我可以在没有使用终端的情况下找到它吗?如果我找到该文件,它会显示与max_execution_time = 120类似的行吗? – foxtangocharlie
做一个简短的搜索......看来我的主机dreamhost不允许编辑httpd.conf文件。他们表示我可以编辑我的.htaccess文件。任何想法如何做到这一点?并且在我进行更改后检查它是否正常工作(除了长脚本的成功运行)? – foxtangocharlie