如果你读到这个结尾,你会笑的:)这现在让我疯了 - 不能让php包含一个具有适当权限设置等的现有文件。
我有test.php文件和“lib / tools.php”文件。
我运行以下代码:
$fn = 'C:\Sasha\ThreeDiamonds\www\lib\tools.php';
if(file_exists($fn)){
echo "Trying to INCLUDE THE BLoody file: $fn";
if(require_once($fn)==false) echo("failed to include: ".$fn);
}
并获得以下内容:
尝试包含BLoody文件: C:\萨沙\ ThreeDiamonds \ WWW \ LIB \ tools.php 警告: require_once(C:\萨莎\ ThreeDiamonds \ WWW): 无法打开流:权限 否认了 C:\ Sasha \ ThreeDiamonds \ www \ test.php on 第5行致命错误:require_once(): 打开失败''' (include_path ='。; C:\ php5 \ pear')in C:\ Sasha \ ThreeDiamonds \ www \ test.php on 第5行
现在,这是运行Windows / IIS和最新版本的php。
如果我使用tools.php目录调用另一个php文件并且其中包含以下代码,则以下工作正常:
require('tools.php');
$mytools = new tools();
$mytools->ShowGallery();
这让我很生气:) IIS设置为使用应用程序池标识的annon auth - 我可以看到php-cgi.exe在本地服务帐户下运行,我确实确保tools.php有效权限允许完全访问权限这个帐户。
我为此tools.php文件启用了失败尝试的安全审核,并且没有显示任何问题。
好吧,我继续安装ProcMon,看看这里发生了什么。对于“查询打开”操作,我得到的是“FAST IO DISALLOWED”。 MMMMM? Windows7是的。我迷路了,请帮忙:)。
答案 0 :(得分:0)
没关系 - 让它排序。
事实上这个问题与权限无关:在工具类构造函数中出错,这导致了这个问题。为什么php抛出此权限错误 - 这是另一个问题:)
谢谢,全部!
答案 1 :(得分:0)
查看警告引发的确切路径,它仍然看起来像www目录或下面的那个(ThreeDiamonds)的权限问题
可能是C:\Sasha\ThreeDiamonds
有权限问题,而下面的目录没有?这将解释为什么它与相对路径一起工作。