【问题标题】:Executing a Windows program by PHP on Linux Server在 Linux 服务器上通过 PHP 执行 Windows 程序
【发布时间】:2014-04-02 09:36:37
【问题描述】:

我有一个 MySQL 数据库,它带有一个使用 PHP 构建的用户前端。数据库和 PHP 在 Linux 上。目前用户可以通过网络前端上传文件。然后 PHP 从文件中提取信息并将其插入 MySQL 数据库。我现在想购买一些可以分析上传文件内容的软件。理想情况下,我希望发生以下情况:

  1. 用户上传文件
  2. PHP 创建输入文件
  3. PHP执行分析软件,提交准备好的输入文件
  4. 分析软件运行并生成输出文件
  5. PHP 获取输出文件的结果并将其插入数据库(这部分可能会作为每日 cron 作业运行)

问题是该软件只能在 Windows 而不是 Linux 上运行。我也无法访问该程序的源代码。该软件的供应商告诉我,他们的程序可以通过任何可以在 Windows 系统上调用 exe 文件的脚本以编程方式启动。无论如何我可以自动化我的系统,以便 Linux 上的 PHP 脚本可以触发分析软件?

【问题讨论】:

  • 你可以在 Linux 下试试 Wine。见winehq.org
  • 程序在 Windows 上运行。您的服务器运行 Linux。很明显你的服务器不能直接运行程序本身。
  • 如果程序在 wine 下运行,那么你可以发出一个命令在 wine 环境中启动程序,但这是一个 hacky 修复......只是尝试找到一些可以做任何事情的 linux 软件你需要做(哦,在另一个网站上发布这种类型的问题,比如 Unix&linux 交流什么的)
  • 不幸的是,它是非常专业的软件,他们还没有为 Linux 开发它

标签: php mysql linux windows


【解决方案1】:

在我看来,您可以尝试按照以下步骤操作:

  1. 执行一项 cron 作业,将用户上传的文件上传到您可以处理该文件的 Windows 服务器。
  2. 处理完成后,让您的 Windows 服务器将其上传回您的 Linux 服务器,在 cron 作业中您可以将数据插入数据中。

这是一个丑陋的黑客,但它仍然可以工作!

【讨论】:

  • 由于他已经在使用 PHP,一个更好的选择(与上传/下载相比)将在 Windows 服务器上设置 Web 服务并通过 XML 传递数据。当然,这只有在他首先拥有 Windows 服务器时才有效。
  • 我们确实有一台 Windows 服务器。我将与 cron 作业修复想法一起考虑这一点。或者也许我可以使用宏来运行软件。然后使用 cron 作业将文件复制到 Linux。可惜不能在Linux环境下运行软件
最近更新 更多