VirtualBox Windows来宾共享文件夹上的PHP权限


PHP permissions on a VirtualBox Windows-guest shared folders

我有一个PHP网站,它有一个后台批处理/CRON作业,经常运行并处理照片。web和数据库服务器以及RAID存储是Fedora 14盒子,照片软件在存储服务器上的Windows 7 VirtualBox中运行。

存储阵列作为共享文件夹加载,并在"网络位置"下显示为E:''。

PHP exec命令通过PHP-CLI每分钟运行一次,如下所示:

exec("C:''service''photo_edit.exe --input-file E:''photos''photo_example.jpg --effect crossprocess --output-file E:''photos''user''finished_example.jpg")

直接在命令行中运行命令即可。问题是,PHP似乎根本不能使用E:'',即使我可以通过命令提示符访问它。我还必须将Windows保留在VirtualBox中,因为我有更多的服务可以编辑文件并在Linux中运行。

我需要PHP能够在Windows内部的网络存储中处理这些文件。

这不是权限问题。映射到驱动器号的网络共享是按用户设置的。Apache作为运行的用户没有将该共享映射为E:

备选方案包括:

  1. 使用UNC语法:''vboxsvr'whatever
  2. 为当前Apache用户映射驱动器(LOCAL_SYSTEM?)--似乎不可能
  3. 更改Apache服务运行的用户

PHP是否有访问E:'的权限?请记住,当您运行该命令时,您可能是一名管理员。另一方面,PHP可能以较低的权限运行。