禁用 Apache 虚拟主机403

我最近尝试用 Apache 设置一个测试服务器。站点必须在域 www.mytest.com下运行。我总是得到一个 403 Forbidden错误。我使用的是 Ubuntu 10.10服务器版。Doc root 在 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

网站配置

<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。由于这个网站的许多功能是站点名称敏感的,我必须能够访问该网站的域名。

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

我卡住了,有人能帮忙吗?

218801 次浏览

这可能是权限问题。

虚拟文档根目录的每个父路径都必须是可读、可写和可执行的,由 Web 服务器 httpd 用户实现

根据 这一页关于 Apache 403错误的报告。

因为您使用的是 Allow from all,所以您的顺序应该不重要,但是您可以尝试将其切换到 Deny,Allow以将 默认行为设置为“允许”

将 Directory 子句移出虚拟主机,并将其置于声明虚拟主机之前。

也把我逼疯了很久,不知道为什么,是 Debian 的事。

Apache 2.4.3(或者稍早一些)添加了一个新的安全特性,这个特性经常导致这个错误。您还将看到一条日志消息,其格式为“客户端被服务器配置拒绝”。这个特性需要用户标识来访问目录。它由 Apache 附带的 httpd.conf 中的 DEFAULT 打开。您可以通过指令看到特性的启用

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>

问题是文件访问权限是错误的。

我更改了目录的权限,它工作了。

对于 apacheUbuntu2.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>

我刚花了几个小时研究这个愚蠢的问题

首先,在终端中使用此更改权限

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

我不知道664和775有什么区别 我这样做了两个775 另外 htdocs 需要的目录路径,例如对我来说,它是

/usr/local/apache2/htdocs


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

这也是另一件蠢事

例如,请确保您的图像 src 链接是您的域名

src="http://www.fakedomain.com/images/photo.png"

一定要有

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

您可以在终端中编辑那些使用 pico 的文件

我还专门为图片创建了一个目录,这样当你在浏览器地址栏输入 domainname.com/images 时,你就会得到一个可以下载并且需要成功下载的图片列表,以指示正常工作的图片文件

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

这些都是我尝试过的解决方案,现在我有了正常运转的图像... 耶! ! !

下一个问题

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

对我来说,以下解决方案奏效了:

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

它只是给 /etc/apache2/apache2.conf添加了一个 <Directory >标签

如果所有操作都正确,那么只需要提供诸如下面这样的许可主目录:

sudo chmod o+x $HOME

那么

sudo systemctl restart apache2

我在 Arch Linux 上也有这个问题... 它花费了我一些时间,但我很高兴现在我发现了我的错误:

我的目录与 .html文件在我的帐户。
我把一切都设置在 r+x上,但我仍然得到了 403错误。
然后我完全回去,并试图设置我的 主目录执行,这解决了我的问题。

可能是你还没有设置 PHP ~ !

这可以在 Linux Fedora for VirtualHost: (Lampp/Xampp)上工作

转到:/opt/lampp/etc/more

打开: httpd-vhosts. conf

将其插入 httpd-vhosts. conf 中

<VirtualHost *:80>
ServerAdmin mail@domain.com
DocumentRoot "/opt/lampp/APPS/My_App"
ServerName votemo.test
ServerAlias www.votemo.test
ErrorLog "logs/votemo.test-error_log"
CustomLog "logs/votemo.test-access_log" common
<Directory "/opt/lampp/APPS/My_App">
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>

附注: 不要忘记评论前面的例子 已经存在于 httpd-vhosts. conf 中

设置主机系统文件:

转到:/etc/文件夹查找主机文件(/etc/hosts)

我插入这个: (但不确定是否100% 如果这样好)

127.0.0.1       votemo.test


::1         votemo.test

- > 打开或重新启动 Apache。

打开控制台并粘贴此命令以打开 XAMPP 图形界面:

Sudo/opt/lampp/manager-linux-x64. run

注意: 调整路径如何你想你的应用程序文件夹

例如: DocumentRoot”/home/USER/Desktop/My _ Project

并设置目录路径:

例如: ... < 目录“/home/USER/Desktop/My _ Project”> ..。

但是这个应该被测试,评论如果这个工作..。

附注:

  • 本地化灯文件夹: (路径) /选/灯

  • 启动灯: Sudo/opt/lampp/lampp 启动

  • 必要时调整权利: Sudo chmod o + w/opt/lampp/manager-linux-x64. run

  • 主机文件路径: /etc/hosts

我对 apache2.4也有同样的问题

  1. 检查配置虚拟主机:
   <Directory /var/www/html/path/to/index>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
  1. 特定的 Index.php文件。

我们需要/var/www/html/path/to/index 中的 index.php 或 index.html。