系统配置:
操作系统:Red Hat Linux 6.2
Web服务器:Apache 3.1.1+jakarta-tomcat 3.1.1
数据库服务器:oracle 8i
Apache服务器是目前应用最多的web服务器,据统计在世界上的服务器中有超过一半采用
Apache服务器.关于它的好处,您可以自己到http://www.apache.org/上去看。
今天我们的服务器出了一点儿问题:任何访问都会返回一个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,重新启动服务器,咦,还是不行?头开始大了,心想:今儿个我是载这儿了。又翻了n多遍httpd.conf文件几乎都要背下来了还找不到问题。也怪,突然就想起来了,www.apache.org不是有个问题数据库吗,几乎所有的问题都可以在上面找到答案,于是进入http://bugs.apache.org/,查找关键字forbidden,果然就让我查到了,原来是我们一位同事想做一个虚拟主机,用了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!
Linux下apache 提示“You don't have permission to access /test.php on this server.”
修改httpd.conf文件,将
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
中的“Deny from all”这一行注释掉就行了。修改后为
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
#Deny from all
</Directory>
列表页:
Fatal error: Cannot redeclare addlisttemp() (previously declared in /www/basketball/e/admin/template/ListListtemp.php:19) in /www/basketball/e/class/functions.php on line 0
内容页:
Fatal error: Cannot redeclare addnewstemplate() (previously declared in /www/basketball/e/admin/template/ListNewstemp.php:19) in /www/basketball/e/class/functions.php on line 0
这是什么问题啊,怎么解决?
函数重复定义,检查是不是修改过什么文件,用原版文件覆盖
Forbidden
You don't have permission to access /e/admin/template/ListListtemp.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
找到编辑模板时的一个小BUG 希望以后能更新掉
模板管理里面
假如你的模板有2个模板组,一个是系统自带的,一个是自己添加的。
默认选择的不是系统自带的而是自己添加的。
当你选择“列表模板”->“管理列表模板”,打开列表模板页面。
再新打开一个页面进入“自定义列表”->“增加自定义列表”,然后点击“管理列表模板”,出来的页面和上面那个页面对比一下看看。
(为了方便看出差别,可以事先在自己添加的模板组里增加一个列表模板)
查看两个页面的地址属性就可以发现,
第一个是:http://localhost/e/admin/template/ListListtemp.php?gid=2
第二个是:http://localhost/e/admin/template/ListListtemp.php
原来官方那些按钮都是固定链接的,少了一个gid的判断。
以上问题以前一直没有注意到,造成我以前编辑模板时出现一些困扰,有时候就经常纳闷怎么明明添加了模板了,却找不到呢?但是在别处又找到了 今天编辑模板的时候才发现这个细节。