Windows Server 父目录权限问题

今天在本机做Drupal测试,按以往经验本以为一帆风顺风雨无阻安装完毕,
哪知浏览install.php安装却出现以下致命错误:

Warning: require_once() [function.require-once]: Unable to access ./includes/install.inc in D:wwwdrupalinstall.php on line 4

Warning: require_once(./includes/install.inc) [function.require-once]: failed to open stream: No error in D:wwwdrupalinstall.php on line 4

Fatal error: require_once() [function.require]: Failed opening required ‘./includes/install.inc’ (include_path=’.;C:php5pear’) in D:wwwdrupalinstall.php on line 4

按理说我从官方下载的Drupal源程序应该不会有什么问题,
打开install.php看了下第4行的内容为:require_once ‘./includes/install.inc’;
这条语句本身没有任何问题,更何况Drupal经过上万人的测试也不可能有这么低级的BUG,
于是首先怀疑此乃服务器配置不当造成,
检查了权限均无问题,父路径早已开启,可问题依然存在,
根据错误字面上的意思是不能访问到install.inc这个文件,但此文件确实存在,
根据偶N年经验+感觉,判断出此应为找不到路径问题,
于是尝试修改源文件require_once ‘./includes/install.inc’;
为require_once ‘includes/install.inc’;( 去掉了./ )
问题果然解决。
看来虽然开启了IIS的父路径但程序仍然不认父路径,
知道了原因,带着疑问baidu了一下,发现不少Discuz用户也有类似错误出现,
但观其错误提示均有几个共同点:
1.大多为Windows用户
2.大多为本机环境测试
3.大多把Discuz安装在网站根目录
经过分析得出:
1.其中Windows环境没什么好评价的,Windows本来就麻烦。
2.大多为本机环境测试,说明此类问题已被服务器专业技术人员所熟知,只是个人用户缺乏经验设置不当造成。
3.第三条比较可疑,程序安装到网站根目录,那么网站根目录的父目录就是IIS权限以外的目录了,
Discuz是这个道理,Drupal也必定是,
于是尝试修改网站根目录Drupal文件夹的父目录www的权限为 Internet来宾用户可读,问题果然解决。
总结:
1.在通常情况下,我们配置IIS目录权限都是只设置网站的根目录及其子目录的权限,往往忽略网站根目录的上级目录。
2.以后遇上这种情况要么修改网站根目录的上级目录权限为可读,要么把此类需要父目录读权限支持的程序放到网站根目录的子目录中。
3.Drupal和Discuz这种国际知名的开源软件有待提高环境兼容性,因为我看到很多其他知名开源软件的require_once路径并没有加上 ./ 。

TrackBack: http://mimiz.cn/index.php/windows-os/windows-server-parent-directory/trackback/

Leave a Reply !

^_^您敢留下回复吗?