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>

然后我在浏览器中打开网址http://localhost/docs/,我收到以下消息:

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

然后我认为这可能是由文件/文件夹权限引起的。所以我通过read以下方式向所有用户添加权限:

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/

正如您所看到的,每个用户都有权read访问该目录,但没有任何改变(我也收到了403消息)。

然后我尝试找到的许可,/var/www我得到:

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

似乎它只是将execute权限添加到文件夹,但我认为这不是问题。

那么发生了什么?


顺便说一句,为什么 apache 会识别/docs/docs/使用两个不同的 url?既然我会404localhost/docs

4

1 回答 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 

您希望网络服务器访问的目录需要在运行网络服务器的组中。我会说检查组权限并在必要时修复它们。如果您正确设置了这些,请返回并发布 Apache 访问日志。

于 2013-03-11T21:03:51.447 回答