【问题标题】:How to package PHP + MySQL based script into single executable?如何将基于 PHP + MySQL 的脚本打包成单个可执行文件?
【发布时间】:2020-01-13 11:25:35
【问题描述】:

我有一些基于 PHP 的应用程序,在使用 MySQL 数据库的 XAMPP 服务器上运行。

如果我想为我的客户将它们移动到另一台计算机上,复制整个 XAMPP 包并告诉他们如何从控制面板启动 Apache 和 MySQL 服务器,然后从浏览器浏览 localhost 对每个人来说都有些麻烦。有没有办法将它们打包成单个可执行文件以获得更好的可移植性?

我听说过一个名为 'Docker' 的平台,但我不知道它到底是什么以及如何使用它们。

它可以用来做我上面要求的吗?还有其他选择吗?

谢谢。

【问题讨论】:

  • 所以它们是网站?在这种情况下,将它们放在网络服务器上!
  • 我实际上希望它用于离线使用,所以我想要基于 Intranet 的系统而不是 Internet
  • 你不能有一个“离线”的网站,因为没有人可以连接到它。 Intranet 仍然是一个“在线”网络(即使它不在公共 Internet 上,不同机器之间仍然存在连接),您仍然需要使用 Web 浏览器连接到 PHP 应用程序(即使应用程序代码与浏览器在同一台机器上!)。并且浏览器仍然需要一个网络服务器来连接。所以,是的,按照 Riggs 所说的去做并使用网络服务器。
  • 但是,没有什么能阻止您将 Web 服务器和 DB 服务器打包到一个容器中(使用 Docker 或任何其他容器系统)并将其提供给您的客户......尽管他们仍然需要一个能够执行容器,您可能仍需要一些安装说明。无论哪种方式,如果您听说过 Docker 并且不确定它是否适合您的需求或它是如何工作的,那么您要做的第一件事就是研究它。是你做的吗?似乎没有。我们为什么要坐在这里,输入您已经在其他地方读到的内容?
  • ...但无论如何,也许您真正需要的只是一个安装程序脚本,它可以自动部署和配置应用程序的所有组件(就像您可能下载的大多数程序安装程序/软件包一样,例如“msi " Windows 上的文件,或 Linux 上的 ".deb"/"rpm" 包)。然后,客户可以将其本地安装在自己的机器上(供单用户使用)或内联网上的共享服务器(供内联网内的多个用户访问单个副本)。

标签: php docker server package containers


【解决方案1】:

在客户的内部网中安装一个像 Apache + Mysql 这样的网络服务器,为应用程序提供服务。

您可以将所有内容放在树莓派上,因此您的客户只需将其插入网络,即可通过 ip 或 .local 地址访问它。

【讨论】:

    【解决方案2】:

    如果您只想要一个无需用户操作即可部署 php + apache + mysql、配置它们并启动所需进程的 .exe,这是不可能的。 编辑:可能,但需要太多的工作。

    配置一个 Docker 镜像和一个处理所有事情的启动脚本是可行的,但这需要用户已经安装了 Docker。

    另一种更容易在您端配置的替代方法是拥有一个预配置的虚拟机,但这再次要求用户拥有虚拟化软件。

    如果你能让你的用户拥有 Docker,那就去吧。但是,我建议您首先重新考虑您的要求以及您为什么要设置这些限制。

    【讨论】:

    • "部署 php + apache + mysql,配置它们并启动所需的进程,这是不可能的"...为什么不呢?安装程序脚本应该能够做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2011-02-26
    • 2016-07-30
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多