Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:Opendir不同域的网络驱动器_Php - Fatal编程技术网

PHP:Opendir不同域的网络驱动器

PHP:Opendir不同域的网络驱动器,php,Php,所以我有两台服务器(同一个域(domainB)上的Webserver和NAS) 我在Web服务器(domainB)上有一个PHP脚本,其中列出了NAS上的特定目录 当我在我的Web服务器上执行脚本时,它就工作了。但是,如果我从不同的域(domainA)执行脚本,例如从我的本地机器执行脚本,它就无法工作。它似乎在opendir()行停止 我已经在我的机器上安装了XAMPP,如果我从本地Web服务器执行该脚本,它也可以工作 “testfolder”是NAS上的共享文件夹,每个人都有读取权限 有人知道

所以我有两台服务器(同一个域(domainB)上的Webserver和NAS)

我在Web服务器(domainB)上有一个PHP脚本,其中列出了NAS上的特定目录

当我在我的Web服务器上执行脚本时,它就工作了。但是,如果我从不同的域(domainA)执行脚本,例如从我的本地机器执行脚本,它就无法工作。它似乎在opendir()行停止

我已经在我的机器上安装了XAMPP,如果我从本地Web服务器执行该脚本,它也可以工作

“testfolder”是NAS上的共享文件夹,每个人都有读取权限

有人知道问题出在哪里吗

代码:


当然,问题可能在于访问限制。 试举


在代码的第一行。

问题当然可能是访问限制。 试举


在代码的第一行。

我可能找到了问题的根源,当然也找到了解决方案

我没有工作,因为我的IIS使用的是模拟程序(可能是IUSR用户),他对我的NAS没有权限

更多信息:(请参阅模拟和文件系统访问)

解决方案: 我将带有脚本的文件夹设置为IIS上的应用程序,并将其配置为作为具有NAS权限的特定用户进行连接


如果我给IUSR用户NAS上的读取权限,它可能也会起作用。

我可能找到了问题的根源,当然也找到了解决方案

我没有工作,因为我的IIS使用的是模拟程序(可能是IUSR用户),他对我的NAS没有权限

更多信息:(请参阅模拟和文件系统访问)

解决方案: 我将带有脚本的文件夹设置为IIS上的应用程序,并将其配置为作为具有NAS权限的特定用户进行连接


如果我向IUSR用户授予NAS上的读取权限,它可能也会起作用。

我同意:从第二个域访问脚本时,您基本上是来宾。如果存在权限错误,opendir将返回false。它将输出:警告:opendir(//NAS.domainB.test/testfolder,//NAS.domainB.test/testfolder):访问被拒绝。第19行C:\inetpub\wwwroot\navigator\functions.php中的(代码:5)警告:opendir(//NAS.domainB.test/testfolder):无法打开第19行C:\inetpub\wwwroot\navigator\functions.php中的dir:Bad文件描述符警告:closedir()预期参数1是资源,第37行C:\inetpub\wwwroot\navigator\functions.php中给出的布尔值。我发现一个php错误报告,其中显然有相同的问题错误#52376。我的IIS7.5和PHP5.3.6也一样。我同意:当从第二个域访问脚本时,您基本上是一个来宾。如果存在权限错误,opendir将返回false。它将输出:警告:opendir(//NAS.domainB.test/testfolder,//NAS.domainB.test/testfolder):访问被拒绝。第19行C:\inetpub\wwwroot\navigator\functions.php中的(代码:5)警告:opendir(//NAS.domainB.test/testfolder):无法打开第19行C:\inetpub\wwwroot\navigator\functions.php中的dir:Bad文件描述符警告:closedir()预期参数1是资源,第37行C:\inetpub\wwwroot\navigator\functions.php中给出的布尔值。我发现一个php错误报告,其中显然有相同的问题错误#52376。我的IIS7.5和PHP5.3.6也一样。请按照此链接的答案进行操作,希望对您有所帮助。请按照此链接的答案进行操作,希望对您有所帮助。
$dir = "//NAS.domainB.test/testfolder";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
error_reporting(E_ALL);