PHP 文件在执行过程中抛出 404(约 45 秒后)
PHP File throwing 404 in the middle of executing (After ~45 seconds)
我在一个没有相关执行时间限制的文件夹中有一个脚本(我经常从这个目录中 运行 一个小时长的脚本),其中有一个文件。该文件从 codeingiter 视图上的 html 表单调用,并上传一个 csv 文件,读取它并使用其中包含的信息更新数据库条目。
如果我有一个较小的 csv 文件(1-1000 个条目),它工作正常。超出此范围的任何内容都将处理大约 1000 个条目(包括将调试文本回显到屏幕上),然后抛出 404 错误。
从那以后,我试图通过让 post 页面进行 ajax 调用来规避错误,但它做的事情完全相同。
"NetworkError: 404 Not Found - xxxx/xxxx/xxxxx.php"
我已通过确认数据库中的更改并在屏幕上看到回显的调试代码,确认脚本 运行ning 在 404 之前。
抛出 404 时正在执行的代码...
(简而言之,更新 id(第一列)以从 csv 文件中获取值(第二列)。
if(file_exists($targetdir))
{
$file = fopen($targetdir, 'r');
$count = 0;
while(!feof($file))
{
$x = (fgetcsv($file));
if(is_numeric($x[1]) && $x[1] > 9999 && $x[0] != '-')
{
$count++;
// echo "UPDATE xxxx SET xxxxx ='".$x[0]."' WHERE id=".$x[1];
$db->query("UPDATE xxxx SET xxxxx ='".$x[0]."' WHERE id=".$x[1]);
//echo $x[1].' - '.$x[0]."<br/>";
}
}
fclose($file);
}
编辑
看起来 Jquery 正在抛出错误?我四处搜索,看到有人说这是服务器设置(但不是什么服务器设置,所以我把最大执行时间设置为 300 秒并得到相同的结果)。
xxxxx.php 404 xhr jquery-1.12.4.min.js:4 1.6 KB 40.07
Image of 404 rendering after text is echo'd
我找到了跳闸的设置。
不是使用标准 php 最大执行时间,而是从 FastCGI 设置中命中超时。来自 AJAX 发布或读取操作。
不管怎样,我在服务器上的 apache 设置中增加了 FcgidIOTimeout,并且能够执行完整的脚本。
我在一个没有相关执行时间限制的文件夹中有一个脚本(我经常从这个目录中 运行 一个小时长的脚本),其中有一个文件。该文件从 codeingiter 视图上的 html 表单调用,并上传一个 csv 文件,读取它并使用其中包含的信息更新数据库条目。
如果我有一个较小的 csv 文件(1-1000 个条目),它工作正常。超出此范围的任何内容都将处理大约 1000 个条目(包括将调试文本回显到屏幕上),然后抛出 404 错误。
从那以后,我试图通过让 post 页面进行 ajax 调用来规避错误,但它做的事情完全相同。
"NetworkError: 404 Not Found - xxxx/xxxx/xxxxx.php"
我已通过确认数据库中的更改并在屏幕上看到回显的调试代码,确认脚本 运行ning 在 404 之前。
抛出 404 时正在执行的代码... (简而言之,更新 id(第一列)以从 csv 文件中获取值(第二列)。
if(file_exists($targetdir))
{
$file = fopen($targetdir, 'r');
$count = 0;
while(!feof($file))
{
$x = (fgetcsv($file));
if(is_numeric($x[1]) && $x[1] > 9999 && $x[0] != '-')
{
$count++;
// echo "UPDATE xxxx SET xxxxx ='".$x[0]."' WHERE id=".$x[1];
$db->query("UPDATE xxxx SET xxxxx ='".$x[0]."' WHERE id=".$x[1]);
//echo $x[1].' - '.$x[0]."<br/>";
}
}
fclose($file);
}
编辑 看起来 Jquery 正在抛出错误?我四处搜索,看到有人说这是服务器设置(但不是什么服务器设置,所以我把最大执行时间设置为 300 秒并得到相同的结果)。
xxxxx.php 404 xhr jquery-1.12.4.min.js:4 1.6 KB 40.07
Image of 404 rendering after text is echo'd
我找到了跳闸的设置。 不是使用标准 php 最大执行时间,而是从 FastCGI 设置中命中超时。来自 AJAX 发布或读取操作。
不管怎样,我在服务器上的 apache 设置中增加了 FcgidIOTimeout,并且能够执行完整的脚本。