keyword: Apache   403  Forbidden


系统配置:

操作系统:Red Hat Linux 6.2

Webserver:Apache 3.1.1+jakarta-tomcat 3.1.1

数据库server:oracle 8i

    Apacheserver是目前应用最多的webserver,据统计在世界上的server中有超过一半采用Apacheserver.关于它的长处,您能够自己到http://www.apache.org/上去看。

    今天我们的server出了一点儿问题:任何访问都会返回一个403的错误:

  Forbidden  

  You don't have permission to access  on this server。

  不正确呀,原来还好好的,在排除了文件夹的权限等的问题外,我差点儿翻遍了系统的全部文件,尤其是/etc/httpd/conf下的全部配置文件,因为我已经将access.conf,srm.conf文件添加到httpd.conf文件中,同一时候在httpd.conf文件的最后加上了一句:

Include /etc/httpd/conf/tomcat.conf,以便将tomcat和apache连接起来。

在经过了一番思考之后,我认为问题肯定出在httpd.conf文件中,于是就又又一次检查httpd.conf文件,终于让我发现了当中有这样一段:

<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是这儿!!--->把这行去掉或凝视掉就可以!!!
</Files>


心头一阵狂喜,哈哈,想起赵本山说的一句话“小样儿,脱了马甲我也认得你”,于是改成:

Allow from all,重启server,咦,还是不行?头开始大了,心想:今儿个我是载这儿了。又翻了n多遍httpd.conf文件差点儿都要背下来了还找不到问题。也怪,突然就想起来了,www.apache.org不是有个问题数据库吗,差点儿全部的问题都能够在上面找到答案,于是进入http://bugs.apache.org/,查找keywordforbidden,果然就让我查到了,原来是我们一位同事想做一个虚拟主机,用了linux的配置工具linuxconf,这个工具因为版本号的问题,会导致httpd.conf文件的改动,事实上我仅仅要将上面的那一段去掉就能够万事大吉了



终于总结经验:遇到事情首先要想到到软件所在的站点上找答案,免得浪费时间。



写此文的目的:以我为反面教材,遇到问题不要自己总是认为自己能够解决,而不到专业站点上请教。许多的站点已经有了很完好的faq,基本上能够满足大家平时的需求,比方pb的要多到www.sybase.com上走走,java到http://developer.java.sun.com上转转,vc到坏孩子家溜溜。事实上一些高手不是他们有多聪明,而是他们懂得如何从实用的地方找到自己想要的东西。

我也象他那样找到了希望,也没管用。后来我乐了,但后来我又乐不起来了。那着在我这里不行啊?谁能帮我?我找!我找!不行就自救。

===================================================
===================================================
解决Apache下403 Forbidden错误

正 文:
    今天在公司电脑上安装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,逐行检查。在大约快一半的地方有下面这段代码:

 

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

 

    发现了吧。因为配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,改动后的代码例如以下,问题解决。

 

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>

 

    再次在浏览器里打开http://localhost,显示it works!

 

    总结:如果你也发生了这样的403禁止访问,最好还是注意下apache的httpd.conf配置文件里有“Deny from all”这行的代码处,看看是不是哪里被系统悄悄地改动了。


系统配置:

操作系统:Red Hat Linux 6.2

Webserver:Apache 3.1.1+jakarta-tomcat 3.1.1

数据库server:oracle 8i

    Apacheserver是目前应用最多的webserver,据统计在世界上的server中有超过一半采用Apacheserver.关于它的长处,您能够自己到http://www.apache.org/上去看。

    今天我们的server出了一点儿问题:任何访问都会返回一个403的错误:

  Forbidden  

  You don't have permission to access  on this server。

  不正确呀,原来还好好的,在排除了文件夹的权限等的问题外,我差点儿翻遍了系统的全部文件,尤其是/etc/httpd/conf下的全部配置文件,因为我已经将access.conf,srm.conf文件添加到httpd.conf文件中,同一时候在httpd.conf文件的最后加上了一句:

Include /etc/httpd/conf/tomcat.conf,以便将tomcat和apache连接起来。

在经过了一番思考之后,我认为问题肯定出在httpd.conf文件中,于是就又又一次检查httpd.conf文件,终于让我发现了当中有这样一段:

<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是这儿!!--->把这行去掉或凝视掉就可以!!!
</Files>


心头一阵狂喜,哈哈,想起赵本山说的一句话“小样儿,脱了马甲我也认得你”,于是改成:

Allow from all,重启server,咦,还是不行?头开始大了,心想:今儿个我是载这儿了。又翻了n多遍httpd.conf文件差点儿都要背下来了还找不到问题。也怪,突然就想起来了,www.apache.org不是有个问题数据库吗,差点儿全部的问题都能够在上面找到答案,于是进入http://bugs.apache.org/,查找keywordforbidden,果然就让我查到了,原来是我们一位同事想做一个虚拟主机,用了linux的配置工具linuxconf,这个工具因为版本号的问题,会导致httpd.conf文件的改动,事实上我仅仅要将上面的那一段去掉就能够万事大吉了



终于总结经验:遇到事情首先要想到到软件所在的站点上找答案,免得浪费时间。



写此文的目的:以我为反面教材,遇到问题不要自己总是认为自己能够解决,而不到专业站点上请教。许多的站点已经有了很完好的faq,基本上能够满足大家平时的需求,比方pb的要多到www.sybase.com上走走,java到http://developer.java.sun.com上转转,vc到坏孩子家溜溜。事实上一些高手不是他们有多聪明,而是他们懂得如何从实用的地方找到自己想要的东西。

我也象他那样找到了希望,也没管用。后来我乐了,但后来我又乐不起来了。那着在我这里不行啊?谁能帮我?我找!我找!不行就自救。

===================================================
===================================================
解决Apache下403 Forbidden错误

正 文:
    今天在公司电脑上安装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,逐行检查。在大约快一半的地方有下面这段代码:

 

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

 

    发现了吧。因为配置了php后,这里的“Deny from all”已经拒绝了一切连接。把该行改成“allow from all”,改动后的代码例如以下,问题解决。

 

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>

 

    再次在浏览器里打开http://localhost,显示it works!

 

    总结:如果你也发生了这样的403禁止访问,最好还是注意下apache的httpd.conf配置文件里有“Deny from all”这行的代码处,看看是不是哪里被系统悄悄地改动了。