通过 UNC 网络路径从 Apache 中的 PHP 脚本访问服务器硬件

通过 UNC 网络路径从 Apache 中的 PHP 脚本访问服务器硬件

我有一台运行 Apache 2.2 的 Windows XP Pro 服务器,它配置了一个指向 UNC 网络路径 (//server/projects) 的别名 /p。Apache 在用户 Apache 下运行,该用户(作为先前故障排除的一部分)是管理员组的成员。我碰巧写了一篇博客文章这里如果您需要更多详细信息,其中详细说明了设置。

这个 Apache 服务器运行一个 PHP 应用程序,除其他功能外,它还需要访问服务器的串行端口(如果您一定要知道,这是一个 POS 应用程序,是的,我完全知道 Web 应用程序在这里不是理想的方法——这不是我的决定)。这对于在 C 盘上运行的 PHP 脚本来说工作得很好,但网络服务器上的脚本似乎无法访问服务器的硬件。

访问串行端口如下:

<?php
$fh = fopen('com3', 'w+');
fwrite($fh, $data_to_send);

再次强调,这对于位于 C 盘的文件来说工作正常,但 UNC 路径上的相同文件则不起作用。

我需要找到一个解决方案,让这些 PHP 脚本能够相同地访问硬件,无论它们是在 C 盘上还是从网络共享中提取的。

附加信息:

  • 这是 VirtualBox 中的虚拟机;网络共享实际上是 VirtualBox 共享文件夹,它以 SMB 网络共享的形式实现。完全的读/写访问权限,除此以外,其他一切都适用。
  • 服务器的安全性不是问题——这是一个开发/测试设置,位于 3 个不同的防火墙和 NAT 层(私有 LAN 中的私有 LAN 中的私有 LAN)后面,绝对无法通过任何一个访问它。
  • PHP 被配置为 CGI 而不是 Apache 模块(我无法更改,因为这是该应用程序的部署方式);尽管如此,它也在 Apache 用户下运行。

相关内容