file_get_contents() "未能打开流。在Apache服务器中的 "Permission denied

问题描述 投票:0回答:1

我试图读取一个共享网络文件夹中的文件,我可以达到,但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的用户的所有权限,同时也拥有 "Everyone "的所有权限。

我已经尝试研究这个问题,但一直无法找到任何解决方案。我已经检查了 php.iniallow_url_fopen 设置为 On. 我很确定这是Apache,PHP或共享文件夹中的一个设置,因为我可以读取文件,如前所述,但就是不能用我的PHP脚本。

如果有人有任何信息或建议,我们将非常感激。

先谢谢你。

php apache file-get-contents permission-denied network-share
1个回答
1
投票

经过更多的搜索,我终于找到了答案,UNC路径的问题是Apache服务不能进入共享文件夹(也许是一个错误),因为服务的设置方式。要解决这个问题,你必须将Apache链接到用户配置文件,我不知道这是否只是Windows的问题。

要解决Apache不能访问共享文件夹的问题。

  1. 在Windows中进入你的本地服务 services.msc
  2. 右键单击Apache服务并选择属性。
  3. 点击 "登录 "标签
  4. 将 "登录为:"的设置从原来的 Local System accountThis account 并填写账户名和密码

如果你不想保持与你相同的帐户,你的 Localhost 要连接到共享文件夹只需将名称和密码复制到文本框中即可。

我希望这将帮助其他人,遇到同样的问题,我做的。在研究这个问题时,我发现很多人做了很多不同的评论和答案,但没有任何工作。

© www.soinside.com 2019 - 2024. All rights reserved.