【发布时间】:2015-02-11 00:23:31
【问题描述】:
下午好, 我目前正在开发一个 PHP 项目,该项目需要一个 php 脚本来挂载 Windows 共享驱动器。目前使用 OSX 和 XAMPP 构建。
exec('mount -t smbfs //user:pass@192.168.1.1/Share /Volumes/Share 2> temp/error.txt');
现在我明白为什么这不起作用了。它是由于权限。 Apache 作为用户守护进程运行。现在我可以更改 Apache 运行的用户来解决这个“挑战”,但如果可能的话,我希望避免对服务器进行任何更改。 我想联系一下,看看是否有更好的方法来解决这个问题。
有什么想法吗?
【问题讨论】:
-
你为什么不把它放在 PHP 之外并保持它挂载?
-
因为只需要挂载一小段时间就可以卸载了。
-
是的,但是允许网络服务器用户挂载它可能是一个可怕的想法,而将它挂载到系统中的缺点较小,除非它对 SMB 服务器有很大的问题。部署后将在什么类型的机器上运行?
-
一天结束,多平台是目标。我还考虑过可能会做一个 sudo ,但这也可能是一个可怕的想法。我不想让驱动器挂载,因为该项目在任何给定时间需要任何数量的共享,事情就会变得一团糟。因此,一种 PHP 挂载、运行所需脚本和卸载驱动器的方法。
-
如果您不想更改服务器,那么唯一的选择就是更改驱动器权限。将 Apache 用户添加到驱动器的权限?哎呀,即使打字听起来也是个可怕的主意。我永远不会希望一个开放的 apache 用户拥有对我的驱动器之一的用户访问权限 0_o