我在文件夹中有一个脚本,它没有相关的执行时间限制(我经常从这个目录运行长达一小时的脚本),其中包含一个文件。此文件从编码器视图上的html表单中调用,并上载csv文件、读取它并用包含在其中的信息更新数据库条目。
如果我有一个较小的csv文件(1-1000个条目),它可以正常工作。这上面的任何内容都将处理大约1000个条目(包括将调试文本回显到屏幕上),然后抛出404错误。
此后,我试图通过让post页面进行ajax调用来避免这个错误,但它也做了完全相同的事情。
"NetworkError: 404未找到-xxxx/xxxx/xxxx.php“
通过确认数据库中的更改并在屏幕上看到echo的调试代码,我已经确认了脚本在404之前运行。
当抛出404时正在执行的代码..。(简而言之,从csv文件中更新id (第一列)为值(第二列)。
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);
}编辑看起来像是抛出了错误?我在谷歌上搜索,看到人们说它是服务器设置(但不是服务器设置,因此,我将最大执行时间设置为300 s,并具有相同的结果)。
xxxxx.php 404 xhr jQuery1.12.4.min.js:41.6 KB 40.07
发布于 2016-11-18 22:29:53
我找到了绊倒的场景。不是使用标准的php执行时间,而是从FastCGI设置中命中超时。无论是从AJAX投递还是从读取操作。
不管怎样,我在服务器上的apache设置中增加了FcgidIOTimeout,并且能够执行完整的脚本。
https://stackoverflow.com/questions/40385438
复制相似问题