Apache“您没有权限访问此服务器上的xx”

3

我正在使用Ubuntu 12.04和Apache(两者都是新的),我想添加一个新的虚拟目录,所以我修改了文件/etc/apache2/sites-available/default,添加了以下内容:

Alias /docs/ "/home/kk/workspace/javascript/maplib/"
<Directory "/home/kk/workspace/javascript/maplib/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
</Directory>

接下来我在浏览器中打开URLhttp://localhost/docs/,然后会看到如下信息:

You don't have permission to access /docs/ on this server.

我认为这可能是由于文件/文件夹权限引起的。因此,我通过以下方式为所有用户添加了读取权限:

sudo chmod a+r /home/kk/workspace/javascript/maplib/

然后我运行。
ls -ld ~/workspace/javascript/maplib/ 

而我得到了这个:

drwxr--r-- 14 kk kk 4096 Mar 11 08:36 /home/kk/workspace/javascript/maplib/

正如您所看到的,每个用户都应该对目录具有读取访问权限,但是什么也没有改变(我还收到了403消息)。

然后我尝试查找/var/www的权限,我得到了:

drwxr-xr-x 2 root root 4096 Mar  8 15:33 /var/www

看起来只是给文件夹添加了execute权限,但我不认为这是问题所在。

那么到底出了什么问题?


顺便问一下,为什么Apache将/docs/docs/视为两个不同的URL?因为我会通过localhost/docs得到404错误?


@ultranaut:感谢您的编辑。 :) - hguser
你在修改配置文件后重启了Apache吗? - ultranaut
当然,我会使用 sudo /etc/init.d/apache2 restart 重启它。 - hguser
1个回答

2
在您的Apache安装中,访问受etc/apache2/envars控制,并在etc/apache2/apache2.conf中实现。
在/etc/apache2/apache2.conf中,您将在文件的中间找到以下行。
#These need to be set in /etc/apache2/envars
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}

在 /etc/apache2/envars 文件中,您会找到:
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data 

您希望Web服务器访问的目录需要在运行Web服务器的组中。我建议检查组权限,如有必要,请修复它们。如果您已正确设置这些内容,请返回并发布Apache访问日志。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接