【发布时间】:2013-11-17 19:18:35
【问题描述】:
我发现了很多这样的错误
[Wed Nov 06 14:34:01 2013] [warn-phpd] mmap cache can't open C:\www\somefile.php (pid 4484 th 1668)
在我的 Apache error.log 文件中。一段时间以来,我试图查明错误的根源,但到目前为止还没有运气。
- 我发现PHP Opcache不是罪魁祸首。
- error_log 没有帮助。我认为我的 PHP 源代码不会影响错误。
我的堆栈: Apache 2.4.6、Windows、PHP 5.4.20
有人遇到同样的错误吗?
注意:我收到的错误消息不与例如the error:
Mon Dec 1 21:08:20 2008] [warn-phpd] mmap cache can't open /var/www/vhosts/domain.com/httpdocs/file.php - Permission denied (pid 7831)
mmap 无法打开文件的原因在哪里。
【问题讨论】:
-
在文件名之后和进程/线程ID之前的错误消息中没有更多有意义的信息吗?否则检查权限,如果网络服务器可以访问文件似乎是一个很好的起点。
-
很遗憾,没有关于该错误的更多信息。我们检查了几次权限,没有发现任何错误。
-
file.php 是否试图在文件系统上写入或读取或编辑文件?运行 apache 的 Web 用户是否有权读取由 file.php 打开的文件?更多详情请见atomicorp.com/forums/viewtopic.php?f=2&t=2960
-
这看起来很可疑。
mmap()是一个 Linux 调用。 Windows 等效项 AFAIK 是CreateFileMapping(),这应该是日志中报告的内容。我来这个问题是因为我在问题标题中看到了 mmap,并且可以帮助您在 Linux 机器上进行一些核心调试,但对 Windows 毫无用处。我建议您在问题中添加一个 Windows 标签。 -
你如何运行 PHP - 作为 CGI 脚本、FastCGI 脚本或 mod_php?