linux - Apache VirtualHost 403 被禁止

我最近尝试使用 Apache 设置测试服务器。该站点必须在域 www.mytest.com 下运行。我总是收到 403 Forbidden 错误。我在 Ubuntu 10.10 服务器版上。文档根目录位于 /var/www 目录下。以下是我的设置:

/var/www 的内容

ls -l /var/www/

total 12
drwxr-xr-x 2 root root 4096 2011-08-04 11:26 mytest.com
-rwxr-xr-x 1 root root 177 2011-07-25 16:10 index.html

服务器上主机文件的内容(IP为192.168.2.5)

cat /etc/hosts

127.0.0.1 localhost 
127.0.1.1 americano
192.168.2.5 americano.mytest.com www.mytest.com

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

网站配置

<VirtualHost *>
ServerAdmin admin@mytest.com
ServerName www.mytest.com
ServerAlias mytest.com

DocumentRoot "/var/www/mytest.com"

ErrorLog /var/log/apache2/mytest-error_log
CustomLog /var/log/apache2/mytest-access_log combined

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/var/www/mytest.com">
Options -Indexes FollowSymLinks
AllowOverride None

Order allow,deny
Allow from all
</Directory>
</VirtualHost>

我的文档根目录中没有 .htaccess 文件。权限设置正确(www-data 可读)。

如果我从我的桌面输入 IP 地址,网站就会正确显示。我将桌面上的主机文件更改为将 www.mytest.com 指向服务器的 IP。当我使用它时,我得到 403。由于该站点的许多功能都对站点名称敏感,因此我必须能够通过域名访问该站点。

另一个奇怪的事情是,即使所有日志文件都正确创建,它们也没有关于此错误的信息。

我被困住了。有人可以帮忙吗?

最佳答案

Apache 2.4.3(或稍早一些)添加了一个新的安全功能,该功能通常会导致此错误。您还会看到“客户端被服务器配置拒绝”形式的日志消息。该功能需要用户身份才能访问目录。它由 Apache 附带的 httpd.conf 中的 DEFAULT 开启。您可以使用指令查看该功能的启用

Require all denied

这基本上是说拒绝所有用户的访问。要解决此问题,请删除 denied 指令(或更好),将以下指令添加到您要授予访问权限的目录中:

Require all granted

<Directory "your directory here">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

https://stackoverflow.com/questions/6959189/

相关文章:

python - 如何将字符串复制到剪贴板?

python - "for line in..."导致 UnicodeDecodeError : '

linux - 在 tmux 客户端之间移动窗口

ruby - 即使在使用 rvm pkg install zlib 后也无法加载此类文件 - zli

linux - 如何列出(ls)目录中最后修改的 5 个文件?

python - Python中的异步方法调用?

linux - 如何找到某个命令的目录?

linux - 如何查看符号链接(symbolic link)的完整绝对路径

python - 名称错误 : name 'reduce' is not defined in Py

linux - 如何在 Linux shell 中对变量进行除法?