apache 403错误 Forbidden解决方法

记录一个悲催的故事,两年了第一次通宵搞这种事了。也许可能是因为过得太安稳了,不懂得居安思危了。致使太多的事都一直停滞不前了,现在,在轻松的时间里,终于可以找回这种紧迫的动力了。

朋友公司的服务器出现了状况需要重新服务器环境什么的,本来重装环境和搬迁数据这些都是分分钟就可以完成的事。但是其中有一个站点需要配置到ssl,然后选择的是apache的环境,之前虽然有配置过ssl,但是却是nginx上面的。Apache也只是在本地的phpstudy上面配置过。但是lamp上面的却真的没有配置过。

所以悲惨的是,那家伙重装了的时候并不是重装了干净的系统,是还原了开始的时候配置的环境,然后在我装lamp的时候,却被转成了另外的一个环境。当时是真的有点奔溃了,网络的原因,和服务器的配置问题,编译环境的时候都编译了差不多一个小时了。然后当时已经是凌晨两点了,我的天,重新装的话肯定得到三点了。本来打算明天再重新安装了,但是又发现恢复不到原来的备份数据了~~~然后又不可拖到明天了,不然他肯定会被老板大屌一顿的,无奈啊顶着困意重新安装了一遍。编译环境什么的都很顺利,最后跪在了apache的配置上面。本来已经基本都配置好了,无奈尼玛的一致显示You don’t have permission to access / on this server的403错误提示,由于当时是真的很困了,也没有去查大概的翻译意思是没有权限访问,我一直把源头锁定在了配置文件上面,左改又改还是没有实现。

最后实在是太困了,然后那斯又说先找别的方法替换吧。后来,分离了下服务器,我以为搞定了,就爬床上去了。

早上睡到八点多的时候,醒来了特别有精神。吃过了午饭之后就又继续折腾了,这次我话了一个洛杉矶的服务器去折腾,尼玛的网络的速度简直不能比,快得一逼啊。

然后又是从下午的两点到下午的五点,终于排查出了问题了,真是悲伤的故事。

打开网页,结果访问提示:403错误!关闭了IE的”显示友好的HTTP错误”,显示没有权限访问(You don’t have permission to access / on this server)!

Apache,版本2.2.8,安装完成后,进行相关测试; 配置了下php的php.in文件,再次localhost打开发现错误: HTTP 错误 403 - 禁止访问,即403 Forbidden:You don’t have permission to access / on this server.

可能是权限不足引起的问题。

解决方法:

打开apache的配置文件httpd.conf,逐行检查。 找到:

Options FollowSymLinks AllowOverride None Order deny,allow Deny from all

由于配置了php后,此处“Deny from all”为拒绝一切连接。

把此行修改为 “Allow from all”,即可解决问题。

修改后的代码为:

Options FollowSymLinks AllowOverride None Order deny,allow allow from all

浏览器里打开http://localhost,显示it works!问题解决。

总结: 在apache服务器中,遇到403禁止访问时,重点关注下apache的httpd.conf配置文件中,是否有“Deny from all”这样的代码。 这个可能是修改了某些配置文件后,重启apache,被自动更改的。

附,另外一个apache 403错误的例子。

apache 403错误,显示信息如下: 您无权查看该网页 您可能没有权限用您提供的凭据查看此目录或网页 如果您确信能够查看该目录或网页,请尝试使用 192.168.1.5 主页上所列的电子邮件地址或电话与网站联系。 可以单击搜索,寻找 Internet 上的信息。

HTTP 错误 403 - 禁止访问 Internet Explorer

去掉显示友好信息的钩后显示Forbidden You don’t have permission to access \ on this server. 检查了一遍配置文件httpd.conf,找到这么一段:

Options FollowSymLinks AllowOverride None Order deny,allow deny from all Satisfy all

然后试着把deny from all中的deny改成了allow,保存后重起了apache,访问测试网站完全正常了。 APACHE升级到2.2版本之后,提供和支持不少模块的支持,性能和安全上也有不少改进。 以前配置好apache的httpd.conf之后,即可使用。 但现在必须额外对这个文件进行其他方面的配置,不然会出现 http 403权限问题错误。

解决方法。 以下为httpd.conf文件的其中一段原代码。 把下面代码红色标志进行更改:

# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # [url]http://httpd.apache.org/docs/2.2/mod/core.html#options[/url] # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride all # # Controls who can get stuff from this server. # # onlineoffline tag - don't remove Order Deny,Allow Deny from all Allow from 127.0.0.1

红色部分更改为 Allow from all ,也就是所有访问允许通过。

下面是补充:

关键错误:You don’t have permission to access / on this server 打开网页,结果访问提示:403错误!关闭了IE的”显示友好的HTTP错误”,显示没有权限访问(You don’t have permission to access / on this server)!

403 Forbidden主要原因分析

1你的IP被列入黑名单 2你在一定时间内过多地访问此网站(一般是用采集程序),被防火墙拒绝访问了 3网站域名解析到了空间,但空间未绑定此域名 4你的网页脚本文件在当前目录下没有执行权限 5在不允许写/创建文件的目录中执行了创建/写文件操作 6服务器繁忙,同一IP地址发送请求过多,遭到服务器智能屏蔽

END网站出现403 Forbidden解决办法

用以下命令修改文件夹安全属性 chcon -R -t httpd_user_content_t public_html/

所用命令解析:

ls -Z -d public_html/ #显示文件/目录的安全语境-Z, –context Display security context so it fits on most displays. Displays only mode, user, group, security context and file name.-d, –directory list directory entries instead of contents, and do not dereference symbolic links

chcon -R -t httpd_user_content_t public_html/ #修改文件/目录的安全语境-R, –recursive change files and directories recursively-t, –type set type TYPE in the target security context

END其他解决办法:

重建dns缓存就行 在运行中输入cmd,然后输入ipconfig /flushdns即可 或HTTP 错误 403 - 限制为仅本地主机访问 Internet 服务管理器 (HTML) HTTP 错误 403 403.1 禁止:禁止执行访问 如果从并不允许执行程序的目录中执行 CGI、ISAPI 或其他执行程序就可能引起此错误。 如果问题依然存在,请与 Web 服务器的管理员联系。 HTTP 错误 403 403.2 禁止:禁止读取访问 如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的 HTML 页时就会导致此错误。 如果问题依然存在,请与 Web 服务器的管理员联系。 HTTP 错误 403 403.3 禁止:禁止写访问 如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。 如果问题依然存在,请与 Web 服务器的管理员联系。 HTTP 错误 403 403.4 禁止:需要 SSL 此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入 https:// 以启用 SSL。 如果问题依然存在,请与 Web 服务器的管理员联系。 HTTP 错误 403 403.5 禁止:需要 SSL 128 此错误消息表明您试图访问的资源受 128 位的安全套接字层(SSL)保护。要查看此资源,需要有支持此 SSL 层的浏览器。 请确认浏览器是否支持 128 位 SSL 安全性。如果支持,就与 Web 服务器的管理员联系,并报告问题。403.6 禁止:拒绝 IP 地址

我想着大概是没有权限去访问该目录,因为一般情况下,NTFS对访问权限控制的很严格的! 于是打开目录,一看,访问权限居然是everyone的完全控制!那用户在文件夹访问权限上是绝对没有问题了!肯定是apache的配置问题了,于是上网搜索,找到如下相关信息用于修改权限.

以下为引用的内容:

Options FollowSymLinks AllowOverride All Order deny,allow Deny from all Satisfy all

根据配置文件提示,此设置是用于修改Apache对所有目录的访问权限的,如果任意修改,可能会带来安全隐患的!那我们来看看到底是什么在作祟,让我们无法访问网页的吧! Deny from all 有点英文基础的都可以看的出来,这里是关键:拒绝所有! 将Deny改为Allow试试!(因为可能会存在大小写敏感的问题,所以推荐用首字母大写,有兴趣的可以自己尝试小写!)一下通过了,但是这样配置的话服务器安全性会… 于是我继续往下看配置文件!

发现了以下内容 #

This should be changed to whatever you set DocumentRoot to.

# 以上这行注释的意思:无论你的服务器根目录设置为什么,你都必须保证此处配置保持一致!

以下为引用的内容:

# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Order allow,deny Allow from all

再将以上的”默认目录”设置为”目标目录”,(当然已经将对所有权限访问的设置修改为拒绝了!)刷新一下页面,OK,通过了!代码来自:脚本之家

Comments: 8

「人生在世,留句话给我吧」

提交评论