gpt4 book ai didi

PHP GoDaddy 最大执行时间不起作用

转载 作者:可可西里 更新时间:2023-10-31 23:30:13 25 4
gpt4 key购买 nike

默认的 maximun_execution_time 是 120 秒。我已按照所有说明创建 php.ini 文件并放置在正确的位置 public_html。我运行了 phpinfo(),发现 maximun_execution_time 已经成功调整为 600 秒。

但是问题是超过120秒的脚本还是执行不了。执行时间 2 分钟后,将返回错误代码 500 Internal server error。

sleep.php 文件:

<?php
$sleepTime = isset($_POST['sleepTime'])? intval($_POST['sleepTime']): 0;
sleep($sleepTime);
echo " woke up";
?>

sleep.html 文件:

<script>
var beginSleep=function() {
var timeNow = new Date();
$('input[type=button]').attr("disabled", true);
$('#msg').html(timeNow.getHours()+":"+timeNow.getMinutes()+":"+timeNow.getSeconds()+" Sleeping...<br>");
$.ajax({
url: "sleep.php",
data: $('#formSleep').serialize(),
type:"POST",
dataType:'text',
success: function(msg) {
timeNow = new Date();
$('#msg').append(timeNow.getHours()+":"+timeNow.getMinutes()+":"+timeNow.getSeconds()+msg);
$('input[type=button]').removeAttr("disabled");
},
error:function(xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
};
</script>

<form id="formSleep" method="post" action="sleep.php">
<p>Sleep time(seconds):</p><input type="text" name="sleepTime" value="5" />
<input type="button" value="submit" onclick="beginSleep()" />
</form>
<p id="msg"></p>

屏幕截图:

http://i.imgur.com/IAiSpPS.jpg

http://i.imgur.com/w7A1nKA.jpg

如果我设置sleep Time为121秒提交,不会返回“醒来”信息,而是提示错误码500。

最新更新

我已与 GoDaddy 支持人员交谈,他们说我的 php.ini 工作正常,因为他们可以看到 max_execution_time 值已更改为 600 秒。但是他们无法回答我为什么会出现超时问题。他们坚称这是我的脚本问题,并说我的测试脚本对于测试执行时间无效。

我向他们展示了另一个我认为是最简单的测试脚本。该消息将永远不会显示,因为它超过 120 秒,并且会返回错误代码 500 内部服务器错误。

<?php
sleep(121); echo "sleep(121) completed";
?>

他们向我展示了他们的测试脚本,并声称 max_execution_time 设置工作正常。

test.php: test.php 将在 30 秒后重定向到我的主页。

header( "refresh:30; url=http://my-site.net" );
echo "please wait 30 seconds";

他们给我看的另一个测试脚本是一个无限循环“for(;;) ;”。此测试脚本也会在超过 120 秒时自动超时。除此之外,无限循环消耗了我 80% 的 CPU 资源。

register_shutdown_function(function() {
echo "shutdown function called\n";
});

set_time_limit(600); // Set time limit to 1 second (optional)
for (;;) ;

他们得出结论,我的 max_execution_time 无法正常工作是因为我没有足够的 CPU 资源。

我不相信他们说的话,因为 sleep() 不会使用太多资源。我试过并行运行测试脚本,但 CPU 使用率为 0%。除此之外,我不认为 header( "refresh:30", url=...) 函数可以算作一个长时间运行的脚本。 GoDaddy 支持服务不如我预期的好。

最佳答案

000webhost和bluehost和ProISP同样的问题,任何运行超过120秒的PHP进程都会终止,无论设置如何,以防止服务器过载,你必须问工程师(实际上知道问题是什么) 为您的帐户/脚本获得此安全功能的豁免(祝你好运。只有 ProISP 实际上给了我豁免,对于 1 个特定的 php 脚本..) - 或者你可以购买 VPS(例如,ramnode.com) ,或使用没有此限制的虚拟主机(如 syse.no ),或使用可能是愿意给你豁免(比如 proisp.no )

GoDaddy 支持人员是智障人士。为什么? header( "refresh:30; url= http://my-site.net ");这将使您的浏览器重定向并且与 php 执行时间无关,他们无法找到问题的真正原因,真正的问题与您的 cpu 使用无关。

关于PHP GoDaddy 最大执行时间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30022099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com