在 Fedora 中设置 Apache DocumentRoot

在 Fedora 中设置 Apache DocumentRoot

我正在尝试在 Fedora 16 中将我的 DocumentRoot 从 APACHE_ROOT/htdoc 更改为 /home/user/www。我收到 403 Forbidden:您无权访问此服务器上的 /。

我修改了 conf/httpd.conf 中的 DocumentRoot 如下:

..
DocumentRoot "/home/user/www"
...

我改变了我的“www”权限

chmod -R 777 www

我重新启动了 Apache 服务器,但仍然收到错误“您无权访问此服务器上的 /”

我甚至尝试关闭 SELinux

echo 0 > /selinux/enforce

但问题仍然存在。

我认为这是配置文件本身的问题。还有其他参数需要更改吗?

答案1

声明你还必须更改目录指令,即你的根路径

....
DocumentRoot /home/user/www
....
<Directory /home/user/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

你还应该更好地调整你的许可政策给我......

答案2

我建议不要使用 777。首先,您需要找到 httpd/apache 设置为在哪个用户下运行。通常是 www-data 或“nobody”。它将位于主 apache conf 文件(“httpd.conf”?)中。我也得到了该组,并且任何 ftp 开发人员帐户都是 apache 组的一部分。

然后你就可以

chown -Rv nobody /home/user/www

其中没有人是 apache 用户,或者如果你想使用该组,请执行

chown -Rv nobody:nogroup /home/user/www

然后我建议将你的 chmod 设置为更安全的方式

chmod -Rv 0775 /home/user/www

您必须自己决定最佳的 chmod。如果您使用组来管理谁可以编辑文件,那么可能是 775,如果不是,那么可能是 755。我通常从 644 开始,并在需要时授予其他权限。但这在大型系统上可能会很烦人

答案3

以 root 身份在终端中更改 SELinux 上下文:

chcon -R -t httpd_user_content_t /home/user/www

不要修改 conf/httpd.conf。创建文件 /etc/httpd/conf.d/mysites.conf 并插入以下内容:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/user/www
    <Directory /home/user/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

相关内容