Apache VirtualHost 403 禁止访问

2024-10-22 08:29:00
admin
原创
81
摘要:问题描述:我最近尝试使用 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>

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

讨论下一个问题

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用