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
我的问题是,文件访问权限是错误的,我改变了目录的权限,它为我工作