DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案

yipeiwu_com7年前PHP代码库
【宜配屋www.yipeiwu.com】注:
理论上下面的方法可以可以的,但前提是保证你的php配置的没有错误,建议大家用新版的php版本,与discuz程序,相关的服务器相关软件可以到s.jb51.net下载。

这两天论坛经常报错误信息

Warning: require_once(./include/common.inc.php) [function.require-
once]: failed to open stream: No such file or directory in
E:\host\aydsw\index.php on line 12

Fatal error: require_once() [function.require]: Failed opening required
'./include/common.inc.php' (include_path='.;C:\php5\pear') in
E:\host\aydsw\index.php on line 12

我在网上查了一下,应该是权限问退,不知道论坛是否能用得上。

解决方法一:

其实这个问题不用说的那么复杂。导致这个问题是因为目录权限问题所致。
大家都知道通常在2003中的权限设置比较混乱。
形象点表达的解决方法是这样的:
比如:你的论坛放在WEBROOT的BBS目录下,如果你仅仅赋予了BBS目录INTERNET来
宾用户(或者你指定的用户)的访问权限,而BBS的上级目录webroot没有
INTERNET来宾用户(或者你指定的用户)访问权限就有上述问题出现。
只要赋予WEBROOT这个目录(就是论坛目录的上级目录)以INTERNET来宾权限(或
你指定的用户)问题即可解决!
原因是:官方把所有 php 文件里的 ./include/,如果改为 include/即可解决,
但总不能一个个替换吧,个人解决的办法,就是建个父目录了。

解决方法二:

今个服务器重装系统了
配置了php mysql 是win下的 可是访问dz(Discuz)论坛的时候出现如下错误:
Warning: require_once() [function.require-once]: Unable to access
./include/common.inc.php in E:\mysite\ceshi\index.php on line 12
Warning: require_once(./include/common.inc.php) [function.require-
once]: failed to open stream: No such file or directory in
E:\mysite\ceshi\index.php on line 12
Fatal error: require_once() [function.require]: Failed opening required
'./include/common.inc.php' (include_path='d:/php5/includes') in
E:\mysite\ceshi\index.php on line 12
此网站没有任何问题,提示的是文件没有找到

弄了半天终于解决了
问题是:
1、IIS6.0有没启用父路径
2、权限问题给了users权限(注上机目录也必须有权限,不然就出现这个问题)

其它参考:

把论坛转移到了自己的服务器上,服务器是win2003+iis+php+mysql,但访问论坛总是提示以下信息:

Warning: require_once() [function.require-once]: Unable to access ./include/common.inc.php in E:\im286\index.php on line 12
Warning: require_once(./include/common.inc.php) [function.require-once]: failed to open stream: No such file or directory in E:\im286\index.php on line 12

Fatal error: require_once() [function.require]: Failed opening required './include/common.inc.php' (include_path='d:/php5/includes') in E:\im286\index.php on line 12
方法一:在网上也google baidu了一下 出现这个问题的还真不少,修改./include/为include/问题解决,但rewrite加载总是不成功,倒腾了半天才发现原来是权限问题,给设置了veryone权限,一切就ok了,最后提醒大家,iis要启用父路径。

方法二:
1、IIS6.0有没启用父路径
2、权限问题给了users权限(注上机目录也必须有权限,不然就出现这个问题)

方法三:
是权限问题,在上级目录加了everyone读权限,仅针对上级目录,但非常久,等不及,停掉。换了个目录为e:\im286\bbs,给上级目录everyone读权限,访问,提示:
No input file specified.

方法四:
搜 索一下,1种说是把php.ini中的doc_root ="注释掉,我看了下本身就是注释掉的,不是这个问题。第2种是说应用池的问题。IIS新建了一个应用池,给这个站点用。刷新,网站可以访问了。再试一 下,是不是和上级目录权限有关,把上级目录everyone读权限去掉,再刷新,又提示和上面的错误一样了,确定与此有关了,然后再加上,问题解决。

方法五:
我这也出现这种问题,刚刚找了半天没结果,试着改(./include/common.inc.php),结果成功了,有问题的不妨试试!
修改 common.inc.php里所有 './ 为 '/ (就是把中间的点去掉)

方法六:终极解决方法
这样的问题如果别的程序正常,但只有一些php系统有问题,这里以phpmyadmin为例,如当前目录是d:\werroot\phpmyadmin只要将在phpmyadmin目录里面再创建一个目录web,然后iis中定位路径为d:\werroot\phpmyadmin\web就可解决问题。这个应该是程序中用了./的问题。

相关文章

简单谈谈PHP中的Reload操作

前言 有很多前辈告诫过我们,reload 能保证整个过程的平滑性,所谓平滑性指的是在 reload 的过程中,旧的进程在处理完当前请求前不会提前终止。很多年来,我从来没有质疑过这种说法,...

PHP显示今天、今月、上月、今年的起点/终点时间戳的代码

$t = time(); $t1 = mktime(0,0,0,date(“m”,$t),date(“d”,$t),date(“Y”,$t)); $t2 = mktime(0,0,0,d...

配置php网页显示各种语法错误

发现问题比解决问题重要,使用php集成开发环境Appserv网页会提示各种语法错误,但自己配置开发环境无法提示错误,特别当不是语法错误,比如com组件的调用,当不知道问题出现在何处,是不...

PHP基于timestamp和nonce实现的防止重放攻击方案分析

本文实例讲述了PHP基于timestamp和nonce实现的防止重放攻击方案。分享给大家供大家参考,具体如下: 以前总是通过timestamp来防止重放攻击,但是这样并不能保证每次请求都...

PHP将二维数组某一个字段相同的数组合并起来的方法

本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法。分享给大家供大家参考,具体如下: 例子: array(3) { [0]=> array(16) { [...