Php Apache服务器中的文件\u get\u contents()“无法打开流:权限被拒绝”

Php Apache服务器中的文件\u get\u contents()“无法打开流:权限被拒绝”,php,apache,file-get-contents,permission-denied,network-share,Php,Apache,File Get Contents,Permission Denied,Network Share,我试图读取共享网络文件夹中的文件,我可以访问该文件夹,但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_

我试图读取共享网络文件夹中的文件,我可以访问该文件夹,但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);
}
?>
奇怪的是,我可以在浏览器和windows资源管理器中打开路径并读取文件。共享文件夹拥有我运行Apache的用户的所有权限以及所有人的所有权限

我试过研究这个问题,但没有找到任何解决办法。我已经检查了php.ini并将allow_url_fopen设置为On。我很确定这是Apache、PHP或某个共享文件夹中的一个设置,因为我可以像前面所说的那样读取文件,但不能使用我的PHP脚本

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


提前感谢。

在对这个问题进行了更多的搜索之后,我终于找到了答案,UNC路径的问题是Apache服务无法进入默认服务器上的共享文件夹。这可能是服务设置方式的一个错误原因。要解决此问题,您必须将Apache链接到用户配置文件,我不知道这是否只是Windows中的问题

要修复Apache无法访问共享文件夹的问题,请执行以下操作:

转到Windows services.msc中的本地服务 右键单击Apache服务并选择属性。 单击“登录”选项卡 将登录方式:设置从本地系统帐户更改为此帐户,并填写帐户名和密码 如果不想保留与本地主机相同的帐户以连接到共享文件夹,只需将名称和密码复制到文本框中即可


我希望这能帮助其他遇到和我一样问题的人。在研究这一点时,我发现很多人都这样做了,并且有很多不同的评论/答案,但都不起作用

你的if…else条件会告诉你文件路径不存在。为什么您要尝试以else/fasly状态获取内容?我将根据脚本的上下文验证您使用的路径是否准确。你能包括你的文件结构吗?你的逻辑是错误的…你正在检查文件是否存在,然后如果它不存在,你告诉代码尝试读取它@segFault我回显文件\u get\u内容,这是从PHP获取错误消息的一种简单方法,文件路径是正确的,因为我可以在PHP之外打开它,并且我经常检查它。如果文件路径正确,我将得到一个无法打开的流:没有这样的文件或目录。错误消息。@ADyson正如我上次在你提交评论时写的评论中所说的,我这样做纯粹是为了看PHP的错误消息,我会在问题中说得更清楚。还有四个反斜杠是怎么回事?UNC文件共享路径应以两个反斜杠开始,而不是四个
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