Apache 随机失去查看文件的权限

Apache 随机失去查看文件的权限

我有一台运行 Apache 和 MySQL 的服务器(Leopard Server,不是我的选择)。几个月前,该服务器开始随机间隔出现“禁止”错误,阻止访问 PHP 应用程序。此行为随机停止。

现在,几天前我安装了 Passenger 并部署了一个 Sintra/Rack 应用程序。该应用程序以acarneg来自 的用户身份运行(例如)/Library/WebServer/Documents/presto/current/publicacarneg拥有整个结构。_www用户可以通过 ACL 访问目录chmod +a "_www allow read,write,..."

一切都很顺利!在一段随机间隔(通常为 ~12 或 ~24 小时)后,Passenger 会抛出一个错误,这也会阻止 PHP 应用程序运行。Passenger Error #2. Cannot stat file config.ru. Permission denied.但权限尚未改变(已确认),解决该错误所要做的就是sudo apachectl graceful

如果权限没有改变,而且 Apache 似乎没有合法问题,那么是什么导致了这种混乱?为什么它之前停止了,为什么又恢复了!?!?!?

谢谢您的帮助!

答案1

您的 Apache 可能已达到最大打开文件数限制。Apache 将导致权限错误,这也解释了为什么需要一段时间,并通过重新加载 Apache 来解决。

我对 Mac 不是很熟悉,但应该有一个命令来检查进程的打开文件。(例如 lsof、pfiles、procfiles)。

可能的解决方案包括:

  • 增加最大打开文件数 (ulimit)
  • 减少日志文件的数量
  • 检查 PHP 代码是否关闭了所有文件

也可以看看文件描述符限制在 Apache 文档中。

答案2

文件系统存储在哪里?是否需要 Kerberos 来访问数据,或者 AFS 或其他什么东西,所以你的问题是一张过期的票?

相关内容