Apache VirtualHost 403禁止

我最近试图用Apache来设置一个testing服务器。 该网站必须在www.mytest.com域名下运行。 我总是得到一个403 Forbidden错误。 我在Ubuntu 10.10服务器版上。 doc根目录在dir /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 

网站configuration

 <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可读)。

如果我从我的桌面inputIP地址,该网站显示正确。 我更改了桌面上的hosts文件,将www.mytest.com指向服务器的IP。 当我使用它,我得到403 。 由于本网站的许多function都是对网站敏感的,我必须能够通过域名访问网站。

另一个时髦的是,即使所有的日志文件都正确创build,他们没有关于这个错误的信息。

我被困住了。 任何人都可以帮忙吗?

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

 Require all 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> 

对于apache Ubuntu 2.4.7,我终于发现你需要在apache2.conf中列出你的虚拟主机

 # access here, or in any related virtual host. <Directory /home/gav/public_html/> Options FollowSymLinks AllowOverride None Require all granted </Directory> 

这可能是一个权限问题。

虚拟文档根目录的每条父path必须由Web服务器httpd用户可读,可写和可执行

根据这个页面了解Apache 403的错误。

既然你使用Allow from all ,你的顺序应该没有关系,但你可以尝试将其切换到Deny,Allow将默认行为设置为“允许”。

将Directory子句移出虚拟主机,并在声明虚拟主机之前放置它。

也驱使我坚持了很久。 不知道为什么。 这是一个Debian的东西。

我刚刚在这个愚蠢的问题上花了几个小时

首先,在terminal中使用这个更改权限

 find htdocs -type f -exec chmod 664 {} + -o -type d -exec chmod 775 {} + 

我不知道664和775之间的区别是什么我都做了775这样也htdocs需要例如我的目录path它是

 /usr/local/apache2/htdocs find htdocs -type f -exec chmod 775 {} + -o -type d -exec chmod 775 {} + 

这也是另一个愚蠢的东西

确保你的图片链接是你的域名

 src="http://www.fakedomain.comhttp://img.dovov.comphoto.png" 

一定要有

 EnableSendfile off in httpd.conf file EnableMMAP off in httpd.conf file 

你在terminal中编辑使用pico的那些

我还专门为图像创build了一个目录,以便当您在浏览器地址栏domainname.com/images中input时,您将获得一个可以下载并需要下载的照片列表,以指示正在正常工作的图像文件

 <Directory /usr/local/apache2/htdocs/images> AddType images/png .png </Directory> 

而这些都是我尝试过的解决scheme,现在我已经运作的图像…耶!

关于下一个问题(S)

我在Ubuntu 14.04上遇到了与虚拟主机相同的问题

对我来说,下面的解决scheme工作

http://ubuntuforums.org/showthread.php?t=2185282

这只是添加一个<Directory >标签到/etc/apache2/apache2.conf

我的问题是,文件访问权限是错误的,我改变了目录的权限,它为我工作