Apache VirtualHost 403 禁止访问

2024-10-22 08:29:00
admin
原创
298
摘要:问题描述:我最近尝试使用 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大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2560  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1552  
  IPD(Integrated Product Development)流程作为一种先进的产品开发管理模式,在众多企业中得到了广泛应用。其中,技术评审与决策评审是IPD流程中至关重要的环节,它们既有明显的区别,又存在紧密的协同关系。深入理解这两者的区别与协同,对于企业有效实施IPD流程,提升产品开发效率与质量具有重要意义...
IPD管理流程   1  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、ClickUp、Freshdesk、GanttPRO、Planview、Smartsheet、Asana、Nifty、HubPlanner、Teamwork。在当今快速变化的商业环境中,项目管理软件已成为企业提升效率、优化资源分配和确保项目按时交付的关键工具。然而...
项目管理系统   2  
  建设工程项目质量关乎社会公众的生命财产安全,也影响着企业的声誉和可持续发展。高质量的建设工程不仅能为使用者提供舒适、安全的环境,还能提升城市形象,推动经济的健康发展。在实际的项目操作中,诸多因素会对工程质量产生影响,从规划设计到施工建设,再到后期的验收维护,每一个环节都至关重要。因此,探寻并运用有效的方法来提升建设工程...
工程项目管理制度   3  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用