为什么PHP无法将文件复制到LAN中的共享文件夹?

时间:2014-02-06 09:56:02

标签: php copy samba network-shares

我需要将文件从一台计算机复制到另一台连接到局域网的计算机。我有两台机器的IP地址。我使用这样的代码来实现它,

$file = 'file.text';// inside htdocs folder
$newfile = '\\\\192.168.1.15\\htdocsfolder\\';
if ( copy($file, $newfile) ) {
    echo "Copy success!";
}else{
    echo "Copy failed.";
}

但复制失败。如何调试,为什么文件没有复制到另一台计算机的htdocs文件夹?我是否需要更改两台计算机上的共享访问权限?

请帮忙。 感谢

2 个答案:

答案 0 :(得分:0)

你似乎在Windows机器上。以下是一些要记住并检查的事项(这是同一主题的变体):

  1. 如果这是一个计划的任务/批处理作业,请尝试从终端执行它并检查您可能遇到的任何错误(注意相对路径):

    C:\> path-to-php script.php

  2. 否则,如果可以,请将其作为网络服务器的用户运行,并参阅以下内容:

    • 网络服务器流程需要具有\\192.168.1.15\htdocsfolder的写访问权限和htdocs folder的读取权限。
    • 检查用户的网络服务器进程是否正常运行。使用您最喜欢的进程/任务/服务管理器检查确切的用户名,看看该用户是否具有所需的访问模式。
    • 如果您在Active Directory环境中,则可以访问上面标识的用户名
    • 如果OTOH在局域网中,请确保用户名存在(是有效用户),并在两台计算机上使用相同的密码。
    • 如果你这样做,那么每个人的权限都不是必需的(通常是坏事)
    • 不要在MS和Windows上选择,但确保来自"管理我的计算机"的共享和权限。 - > "系统工具" - > "共享文件夹" as specified by Microsoft
  3. 调试很难,您必须自己进行大量的进一步研究,Google和SO是您的朋友。

答案 1 :(得分:0)

请检查执行php脚本的用户是否具有远程文件系统的访问权限。 如果在Linux上执行脚本,则它对于挂载远程共享很有用。 只是补充一点,你的代码在我的案例中运行良好。