8

我发现了很多这样的错误

[Wed Nov 06 14:34:01 2013] [warn-phpd] mmap cache can't open C:\www\somefile.php (pid 4484 th 1668)

在我的 Apacheerror.log文件中。一段时间以来,我试图查明错误的根源,但到目前为止还没有运气。

  • 我发现 PHP Opcache 不是罪魁祸首。
  • error_log没有帮助。我认为我的 PHP 源代码不会影响错误。

我的堆栈: Apache 2.4.6、Windows、PHP 5.4.20

有没有人遇到同样的错误?

注意:我得到的错误信息例如错误不同:

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 无法打开文件是有原因的。

4

3 回答 3

0

这是由服务器打开的文件总数引起的。如果这是在托管公司上,那么他们将能够为您解决此问题,如果您在自己的系统上,请尝试以下步骤:

  1. 编辑 apache 启动脚本,\Program Files\Apache Software Foundation\Apache2.2\etc\init.d\httpd(在您的系统上可能不同)并在其他任何内容之前添加:
  2. ulimit -n 20480 #将ulimit提高到一个更高的值然后你有
  3. 然后使用 httpd.exe restart 重启 apache

希望这可以为您指明一个大致的方向

于 2013-11-13T14:41:56.887 回答
0

禁用 MMAP。它在 Windows 上不受支持。

这是一种将文件映射到内存以处理其内容的有效方法。与 sendfile 类似的故事,一种发送文件内容作为响应的有效方法。

# https://httpd.apache.org/docs/2.4/en/mod/core.html#enablemmap
EnableMMAP On
EnableSendfile Off
于 2019-02-04T01:58:25.537 回答
-1

Mon Dec 1 21:08:20 2008] [warn-phpd] mmap 缓存无法打开 /var/www/vhosts/domain.com/httpdocs/file.php - 权限被拒绝(pid 7831)

似乎 mmap 没有打开文件的权限,请检查文件的文件夹权限。检查文件的文件夹属性。

于 2013-11-11T11:23:43.160 回答