我的主机设置在超时方面存在问题,但实际上我不知道哪一个确切地对此负责。当我在php页面中运行此代码时:
<?PHP
sleep(30);
echo "Done";
?>
它给了我"tcp error operation timeout"
。
但当我将其更改为sleep(20)
时,它会成功运行。所以请帮我找出我的php ini文件中哪个项目负责此超时。然而,我试图谷歌它已经尝试了很多建议,但没有运气,最后我被困在这一点让我的PHP脚本上线。
答案 0 :(得分:2)
基于错误消息,我怀疑这不是PHP超时,而是实际的Web服务器“拉动插件”(虽然30秒是一个非常短的时间限制)。
这肯定不是正常的PHP错误消息,您不应该使用sleep
来引发PHP超时,因为它不会占用实际的CPU时间。
不知道你正在运行什么样的主机(Apache?Nginx?IIS?共享主机?VPS?等),很难知道在哪里,即使你可以改变它。
答案 1 :(得分:0)
查看配置中的时间限制。
您可以使用以下代码行修改脚本的时间限制:
set_time_limit(60);
默认值为30s
。如果您在内部使用不带参数的set_time_limit(),则只会重置计数器,并且可用的总时间将增加30秒。
答案 2 :(得分:0)
30秒是默认的php超时,如果你需要sleep(30)
你必须增加超时,有两种方法可以改变它,来自php脚本。
set_time_limit ( int $seconds );
OR
ini_set('max_execution_time', int $seconds);
答案 3 :(得分:0)
我想与每个正在寻找类似问题的人分享这个答案。在花了几个小时搜索根本原因之后,我终于发现了Network Error (tcp_error) A communication error occurred: "Operation timed out"
错误 disappeared when i ran my script on another machine
的任何代码,因此 the issue was with either my machine or my internet speed
< / strong>我真的不知道。无论如何,错误可能只在代码中找不到。