0

细节:

  • PHP版本:5.3.0
  • 阿帕奇 2.2.37
  • 视窗 XP SP3

我在TXTphp error中创建系统备份错误(和custom error),而不是用户数据,而是动态生成的页面。如果您已经生成了LOG ,则其他用户不需要像以往那样生成。

我模拟了 10 个并发连接/请求,有时会出现这个错误: 没有这样的文件

代码:

<?php
$p = 'errs/'.$arqErr;
$o = 'temp/'.$arqErr;
if(file_exists($o) && is_readable($o) && is_writable($o)){
    if(!copy($o,$p)){
        echo 'Error copy "',$p,'" to "',$o,'"';
    }
    if(file_exists($o) && is_readable($o) && is_writable($o)){
        unlink($o);
    }
}
?>

有时会发生错误: Warning: Unable to open 'temp/6039dd66559c9431004109202d279557.php' for reading: No such file or directory

有时会发生错误: Warning: Unlink failed (No such file or directory)

是 PHP_5.3.0 的 bug 吗?

注意:在带有 PHP5.3.4 的 Windows 7 中,不会发生此故障。

4

1 回答 1

1

问题似乎是有多个并发用户试图访问相同的文件,这似乎不是与 PHP 相关的问题。

尝试考虑不同的日志记录方案,也许使用error_log()可以让 PHP 为您管理并发访问问题的功能。

<?php
error_log('Log message', 3, "md5(address of the page).LOG.txt");
?>
于 2012-11-09T21:25:39.403 回答