为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
叮当猫咪 2023-03-04 17:54:46
我试图读取我可以访问但 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);}?>结果如下;failWarning: 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 脚本。如果有人有任何信息或建议,我们将不胜感激,
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

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

要修复 Apache 无法访问共享文件夹的问题:

  1. 在 Windows 中转到本地服务services.msc

  2. 右键单击 Apache 服务并选择属性。

  3. 单击“登录”选项卡

  4. 将“登录为:”设置从更改为Local System accountThis account填写帐户名和密码

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

我希望这会帮助其他遇到与我相同问题的人。在研究这个时,我发现很多人都这样做了,而且有很多不同的评论/答案,但没有任何效果。


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号