我正在尝试在 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>