Apache 服务器中的 file_get_contents()“无法打开流:权限被拒绝”

我试图读取我可以访问但 php 无法访问的共享网络文件夹中的文件。


共享文件夹“xtern”位于计算机“saturn”上,文件名为“seq_ws.csv”。


这是我的代码:


<?php 

$fileURL = "\\saturn\xtern\seq_ws.csv";

$fileAvailable = file_exists($fileURL);


if($fileAvailable){

    echo "Succes";

}else{

    echo "fail";

    echo file_get_contents($fileURL);

}

?>

结果如下;


fail

Warning: file_get_contents(\saturn\xtern\seq_ws.csv): failed to open stream: No such file or directory in C:\Apache24\htdocs\file.php on line 9

奇怪的是,我可以在浏览器和 Windows 资源管理器中打开路径并读取文件。共享文件夹拥有我运行 Apache 的用户的所有权限以及“所有人”的所有权限。


我曾尝试研究此问题,但未能找到任何解决方案。我已经检查php.ini并allow_url_fopen设置为On. 我很确定它是 Apache、PHP 或某处共享文件夹中的设置,因为我可以按照前面所述读取文件,但不能使用我的 PHP 脚本。


如果有人有任何信息或建议,我们将不胜感激,


叮当猫咪
浏览 151回答 1
1回答

哆啦的时光机

经过对这个问题的更多搜索后,我终于找到了答案,UNC 路径的问题是 Apache 服务无法默认进入共享文件夹(可能是一个错误),这是服务设置方式的原因。要解决此问题,您必须将 Apache 链接到用户配置文件,我不知道这是否只是 Windows 中的一个问题。要修复 Apache 无法访问共享文件夹的问题:在 Windows 中转到本地服务services.msc右键单击 Apache 服务并选择属性。单击“登录”选项卡将“登录为:”设置从更改为Local System account并This account填写帐户名和密码如果您不想使用Localhost与连接到共享文件夹相同的帐户,只需将名称和密码复制到文本框中即可。我希望这会帮助其他遇到与我相同问题的人。在研究这个时,我发现很多人都这样做了,而且有很多不同的评论/答案,但没有任何效果。
打开App,查看更多内容
随时随地看视频慕课网APP