【问题标题】:Getting PHP to access a 32-bit COM object in a 64-bit OS让 PHP 在 64 位操作系统中访问 32 位 COM 对象
【发布时间】:2012-10-12 07:06:09
【问题描述】:

我最近将旧的家庭服务器系统升级到 64 位系统 (Win 7),但在访问 PHP 中的 32 位家庭自动化 DCOM 对象时遇到问题。我正在运行 32 位 Apache,据我所知,32 位 PHP(我认为没有 64 位版本可用)。此设置与我的旧(但工作)设置之间的唯一区别是我运行的是 64 位 Windows 7 而不是 32 位。

当我重新安装所有东西时,我最初很困惑为什么我无法配置对 DCOM 对象的访问,因为 dcomcnfg.exe 没有显示它。过了一段时间我才意识到我必须启动 32 位版本的 dcomcnfg.exe 才能看到 DCOM 对象 (mmc comexp.msc /32)。

我现在尝试在 PHP 中访问这个 32 位 DCOM 对象,但它不起作用。考虑到 Apache 和 PHP 是 32 位的,我很奇怪我不能在 PHP 中编写脚本来访问这个 COM 对象。

有谁知道我如何在 PHP 中访问这个(非常旧的)32 位 COM 对象?

这里显示了我正在尝试做的代码 sn-p:

    $hs = new COM("HomeSeer.clsString") or die("Unable to get DCOM object");
    $hs->ExecX10("a5","on","0","0");
    unset($hs);

我真的希望有人能提供帮助,否则向 64 位 Windows 的过渡对我来说将是一场灾难!

我在不同的地方读过如何将文件放入 c:\windows\syswow64\ 文件夹可能是一种解决方法,但我只是不知道要放入哪些文件?我们是说我应该在那个文件夹中安装家庭自动化软件吗?肯定不是……!

谢谢!

【问题讨论】:

    标签: php windows apache com dcom


    【解决方案1】:

    我也有这个问题。

    到目前为止,我的研究表明这是不可能的。一种可能的方法是通过 IIS(为 64 位应用程序启用 32 位 DLLS)。我试过了,但没有用。

    希望比我更了解 Windows 的人知道如何执行此操作。

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      相关资源
      最近更新 更多