【问题标题】:apache says my DocumentRoot directory doesn't existapache 说我的 DocumentRoot 目录不存在
【发布时间】:2011-04-26 06:30:02
【问题描述】:

我正在使用 Phusion Passenger 在 CentOS 5.5 上使用 apache2 部署 Rails 应用程序。出于某种原因,我在启动 apache 时不断收到此消息:

> service start httpd
Starting httpd: Warning: DocumentRoot [/home/deploy/my_app/public] does not exist
[ OK ]

该目录肯定存在。以下是我的配置中的一些重要文件:

/etc/httpd/conf/httpd.conf
...
用户部署
组部署
...

/etc/httpd/conf.d/my_app.conf
< VirtualHost *:80>
    ServerName my_app.com
    DocumentRoot /home/deploy/my_app/public
    < Directory /home/deploy/my_app/public>
        Allow from all
        Options -MultiViews
    < /Directory>
< /VirtualHost>

目录 /home/deploy、/home/deploy/my_app 和 /home/deploy/my_app/public 都属于部署用户。

【问题讨论】:

  • 目录的权限是什么?我不是专家,但首先想到的是,即使您在 httpd.conf 中指定了正确的用户,也不一定是 那个 用户来检查目录是否存在。 ..
  • 我将所有内容设置为 rwxrwxrwx 或 rwxrw-rw-。 root 拥有 /home,deploy 拥有通往 /home/deploy/my_app/public 的所有其他东西。不过,谢谢。
  • 对另一个问题的回答可能会帮助未来的发现者遇到这个问题;它调查了一些与 Web 服务器和 SELinux 相关的事情:serverfault.com/a/551801/101931

标签: ruby-on-rails apache2 passenger


【解决方案1】:

我也遇到了这个问题。你在运行 SELinux 吗?检查 /etc/sysconfig/selinux,或以 root 身份尝试 echo "0" &gt;/selinux/enforce 以查看禁用它是否有帮助。

如果是这样,您可以修改您的 selinux 策略以允许访问这些文件,或者完全禁用 selinux。

【讨论】:

  • 我遇到了和@muirbot一样的问题,这个解决方案没有帮助。
  • 相同。使用临时的 setenforce 0 有效,但永久解决方案无效。有什么想法吗?
  • 感谢您的解决方案。不确定这是永久解决方案
【解决方案2】:

您应该能够相当轻松地解决上下文问题,而不是关闭 SELinux。

您可以使用以下命令检查public 目录的当前上下文。

ls -Z /home/deploy/my_app/

如果您的服务器上有不同的路径正在运行(例如:/home/deploy/foo/bar/),请使用相同的命令检查它并与之前的结果进行比较。

ls -Z /home/deploy/foo/

修复:然后您可以像这样从工作目录中复制上下文...

chcon /home/deploy/my_app/public/ --reference=/home/deploy/foo/bar/

【讨论】:

    【解决方案3】:

    请检查/etc/sysconfig/selinux文件是否有执行权限。如果否,请授予执行权限,重新启动 Web 服务器,然后再次尝试访问该页面

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,发现了这个:

      https://www.centos.org/forums/viewtopic.php?t=1742#p9988

      使用semanage 工具并不难,据我所知,SELinux 应该是如何使用的。我相信这比完全关闭它更安全。

      提供的链接示例:

      [root@elite user]# semanage fcontext -a -t public_content_rw_t '/home/user(/.*)?'
      [root@elite user]# restorecon -R /home/user
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-26
        • 2017-06-22
        • 1970-01-01
        • 2020-04-16
        • 2014-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多