2

我们有一个将数据写入 Linux 节点的 Windows 主实例,目前运行良好。在 windows 上运行的 PHP 文件可以使用一个简单的脚本来写入 linux 机器,如下所示:

file_put_contents('\\\\hostname\\share\\testfile.txt', 'testing123');

linux节点存储了windows php用户,并允许写入文件。但是,我们希望能够在 linux 机器上做同样的事情,并写入 windows 实例上的共享文件夹。与上面相同的行,但使用 windows 主机和共享,仍然返回 true,但实际上并未创建文件。

  • 如果它不起作用,为什么该行返回 true?这使得调试和测试错误变得非常困难。
  • 我们怎样才能让脚本工作?是在linux中挂载windows共享的解决方案吗?这似乎不是一个合适的解决方案,因为我们可能会更改 Windows 共享或添加新的共享,我们不想在每个 linux 实例上继续挂载和卸载共享。

我们已将 linux 用户添加到 windows 共享权限,但它似乎不起作用。

任何帮助将不胜感激,谢谢。

4

1 回答 1

3

我正在处理的一个项目只是挂载 Windows 共享。我们在 /etc/fstab 文件中有条目,这些条目会在机器启动时自动挂载共享。例如:

//alpha/inetpub  /mnt/alpha  cifs  credentials=/root/credentials,_netdev,file_mode=0644,dir_mode=0755,uid=1000,gid=1000,rw  0  0
//beta/inetpub   /mnt/beta   cifs  credentials=/root/credentials,_netdev,file_mode=0644,dir_mode=0755,uid=1000,gid=1000,rw  0  0

在我们的环境中,Windows 共享永远不会更改名称。我们的 Linux 实例不需要访问所有 Windows 共享,因此我们只需为需要访问任何新共享的实例更新 fstab 文件。

凭证文件是一个简单的文本文件,格式如下:

username=SOME_USERNAME
password=THE_PASSWORD_FOR_USERNAME

当用户可能在没有访问权限的情况下查看其他脚本/文件时,这只是保持用户名/密码对安全的一种简单方法root

于 2013-01-02T17:45:38.417 回答