我在本地网络中有一个存储空间,它有一个包含文件的文件夹树。
我在同一网络中的另一台机器上有一个Web服务器,Apache + PHP。
我需要通过php脚本访问存储上的这些文件..
我尝试了以下内容:
$ data = file_get_contents(“\\ SomeServer \ SomeFolder \ test.txt”);
我得到了
Warning: file_get_contents(\\SomeServer\SomeFolder\test.txt) [function.file-get-contents]: failed to open stream: Invalid argument
我尝试使用登录身份验证运行Apache,该身份验证可以访问存储文件夹,无需更改。
任何帮助?
答案 0 :(得分:1)
如果不映射驱动器访问权限,则无法直接读取文件。
如果服务器系统具有LINUX环境,则必须在服务器系统上安装驱动器并提供驱动器盘符名称,然后尝试访问数据。
如果Windows身份验证访问网络文件,HTTP服务器可能没有正确的权限,因此它会返回权限被拒绝。
这是你可以尝试的:
尝试访问Windows资源管理器中的文件,如果提示输入用户名和密码,则可能是身份验证问题。尝试删除所有限制,看看它是否有效。然后为 * apache服务提供对所访问目录的完全权限
用正斜杠替换你的反斜杠
确保您的目录名称不包含空格
将网络资源映射到驱动器名称,请参阅https://www.microsoft.com/windowsxp/using/networking/maintain/mapdrive.mspx
注意:提供的共享驱动器/文件夹必须写入写入。默认情况下,仅提供读取权限。
我确信您已完成上述操作但未提供对apache服务器的完全访问权限。请执行以下步骤以提供对apache服务器的完全访问权限。
在httpd.conf中设置
的httpd-vhosts.conf
Options Indexes FollowSymLinks Includes ExecCGI
默认情况下,您的全局目录设置为:
<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
将选项设置为:选项索引FollowSymLinks包含ExecCGI
最后,它应该看起来像:
<Directory />
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order deny,allow
Allow from all
</Directory>