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 /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 时遇到了同样的问题
检查配置虚拟主机:
<Directory /var/www/html/path/to/index>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
具体的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="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>
这些是我尝试过的解决方案,现在我有了可以运行的图像……耶!!!
讨论下一个问题
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件