Apache VirtualHost 403 禁止访问

2024-10-22 08:29:00
admin
原创
275
摘要:问题描述:我最近尝试使用 Apache 设置测试服务器。该站点必须在 domain 下运行www.mytest.com。我总是收到403 Forbidden错误。我使用的是 Ubuntu 10.10 服务器版本。文档根目录位于 dir 下/var/www。以下是我的设置:/var/www 的内容ls -l /...

问题描述:

我最近尝试使用 Apache 设置测试服务器。该站点必须在 domain 下运行www.mytest.com。我总是收到403 Forbidden错误。我使用的是 Ubuntu 10.10 服务器版本。文档根目录位于 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

服务器上 host 文件的内容(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 地址,则网站会正确显示。我更改了桌面上的 hosts 文件以指向www.mytest.com服务器的 IP。当我使用它时,我得到了403。由于此网站的许多功能都与站点名称相关,因此我必须能够通过域名访问该网站。

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

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


解决方案 1:

Apache 2.4.3(或者可能更早)添加了一项新安全功能,该功能经常会导致此错误。您还会看到“服务器配置拒绝客户端”形式的日志消息。该功能要求用户身份才能访问目录。它在 Apache 附带的 httpd.conf 中默认启用。您可以使用指令查看该功能的启用情况

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>

解决方案 2:

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

解决方案 3:

这可能是权限问题。

虚拟文档根目录的每个父路径都必须对 Web 服务器 httpd 用户具有可读、可写和可执行权限

根据此页面有关 Apache 403 错误。

由于您正在使用Allow from all,您的顺序并不重要,但您可以尝试将其切换为以将默认Deny,Allow行为设置为“允许”。

解决方案 4:

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

让我发疯了好久。不知道为什么。这是 Debian 的问题。

解决方案 5:

如果你做的所有事情都正确,只需授予权限主目录,例如:

sudo chmod o+x $HOME

然后

sudo systemctl restart apache2

解决方案 6:

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

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

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

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

解决方案 7:

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

我的目录和.html文件都在我的帐户中。

我设置了所有内容r+x,但仍然出现403错误。

然后我完全返回并尝试将我的主目录设置为执行,这解决了我的问题。

解决方案 8:

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

解决方案 9:

这在 Linux Fedora 的 VirtualHost 上有效:( Lampp/Xampp)

转到:/opt/lampp/etc/extra

打开: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>

ps:不要忘记评论 httpd-vhosts.conf 中已经存在的先前示例

设置您的主机系统文件:

转到:/etc/ 文件夹查找 hosts 文件(/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”> ...

但这应该经过测试,如果有效的话请评论...

补充说明:

  • 本地化 Lampp 文件夹: (路径) /opt/lampp

  • 启动 Lampp: sudo /opt/lampp/lampp start

  • 如果需要,调整权限:sudo chmod o+w /opt/lampp/manager-linux-x64.run

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

解决方案 10:

我在使用 apache2.4 时遇到了同样的问题

  1. 检查配置虚拟主机:

   &lt;Directory /var/www/html/path/to/index>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Require all granted
   &lt;/Directory>
  1. 具体的index.php文件。

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

解决方案 11:

问题在于文件访问权限错误。

我改变了目录的权限并且它起作用了。

解决方案 12:

我刚刚花了几个小时解决这个愚蠢的问题

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

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=&quot;http://www.fakedomain.com/images/photo.png&quot;

一定要

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

您可以在终端中使用 pico 编辑这些

我还专门为图片创建了一个目录,这样当你在浏览器地址栏中输入 domainname.com/images 时,你将获得一个可以下载和需要成功下载的照片列表,以指示图像文件正常运行

&lt;Directory /usr/local/apache2/htdocs/images>
AddType images/png .png
&lt;/Directory>

这些是我尝试过的解决方案,现在我有了可以运行的图像……耶!!!

讨论下一个问题

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用