【问题标题】:Is it possible to wrap PHP/MySQL application in binary that can work as stand alone application?是否可以将 PHP/MySQL 应用程序包装成可以作为独立应用程序工作的二进制文件?
【发布时间】:2012-02-16 10:06:53
【问题描述】:

我的应用程序是用 PHP/MYSQL 编写的。我们正在寻找在客户端机器上部署的选项。有什么选择以及如何做?除此之外,我们更关心保护我们的代码。因此,我们正在寻找可以为我们在 php/mysql 上开发的 Web 应用程序制作二进制应用程序的选项。

除此之外,有没有可以提取和安装 php/apache/mysql 堆栈的安装程序?

【问题讨论】:

  • 是的,但二进制文件会因操作系统而异....关键问题,什么操作系统?
  • 还将 phar 视为二进制文件的更好跨平台替代品
  • 保护你的代码最好的方法是一个好的法律文件,而不是混淆包装
  • @Mark Ba​​ker - 我们目前的目标是 Windows 操作系统,什么是 phar?可以分享一些链接吗?
  • phar - php.net/manual/en/book.phar.php - 是 PHP 替代 java 的 jar 或 war 文件的一种方法,一种将一组 PHP 脚本作为单个 .phar 文件分发的方法,该文件仍然可以由 PHP 执行。它不是加密(重构原始代码很容易),仍然需要在客户端机器上安装 php 才能运行,但它提供了一种非常方便的分发格式。

标签: php installation


【解决方案1】:

有关可用于将 PHP 代码编译/包装为 Windows 可执行文件的选项的完整列表,请参阅 this previous response 的类似问题

适用于非 Windows 的其他选项:

HPHP(Facebook 的 HipHop)

https://github.com/facebook/hiphop-php/wiki/

https://github.com/facebook/hiphop-php

HipHop for PHP 是 PHP 脚本代码的源代码转换器。 HipHop 以编程方式将 PHP 源代码转换为高度优化的 C++,然后使用 g++ 将其编译为机器代码。 HipHop 包括一个代码转换器、对 PHP 运行时系统的重新实现,以及对许多常见 PHP 扩展的重写以利用这些性能优化。 HipHop 由 Facebook 创建,以节省其服务器上的资源。根据 PHP 许可证 3.01 版的条款,它的 300,000 多行以 C++ 和 C 编写的源代码作为免费软件分发。 Facebook 还开发了 HPHPi,这是一个实验性的解释器,专为开发而设计,无需在运行之前编译 PHP 源代码。

Roadsend 和 Roadsend Raven

http://www.roadsend.com/home/index.php

https://github.com/weyrick/roadsend-php/wiki

https://github.com/weyrick/roadsend-php

Roadsend PHP 是 PHP 语言的开源实现。它将 PHP 源代码编译为独立的、不需要解释器的本机二进制文件。 Roadsend Compiler 可以使用 Fast/CGI 构建在线 Web 应用程序,使用嵌入式 Web 服务器 (!MicroServer) 构建离线 Web 应用程序,使用 PHP-GTK 构建桌面 GUI 应用程序,以及控制台应用程序。众所周知,它可以在 Linux、Windows(使用 mingw)、Mac OSX 和 FreeBSD 上构建。

Roadsend 编译器还包含用于解释、分析和逐步调试 PHP 代码的工具。

Roadsend PHP 是 PHP 语言和运行时环境的完全独立实现,而不是基于在 http://www.php.net 单独免费提供的原始实现(使用 Zend 引擎)。 Roadsend PHP 不需要 Zend PHP,也不会以任何方式使用。

最后一次更改 roadend 代码是在 17 个月前(Ubuntu 10.04 llvm 软件包的补丁),在此之前是 21 个月前。自述文件已在过去两周内更新(在撰写本文时),因此它可能会再次复活。 可以构建 Linux 可执行文件

长矛

http://www.php-compiler.net/

http://wiki.php-compiler.net/Phalanger_Wiki

http://phalanger.codeplex.com/

Phalanger 是一个由布拉格查尔斯大学发起并得到微软支持的项目。它将用 PHP 脚本语言编写的源代码编译成 CIL(通用中间语言)字节码。它处理由 .NET Framework 的 JIT 编译器组件完成的编译过程的开始。它不涉及本机代码生成或优化。其目的是将 PHP 脚本编译成 .NET 程序集、包含 CIL 代码和元数据的逻辑单元。

phc

http://www.phpcompiler.org/

phc 是一个支持插件的 PHP 开源编译器。此外,它还可用于漂亮打印或混淆 PHP 代码,作为开发处理 PHP 脚本的应用程序的框架,或将 PHP 转换为 XML 并返回,从而可以使用 XML 工具处理 PHP 脚本。

适用于 PHP 程序员的 phc(参见手册):

  • 将 PHP 源代码编译为(优化的)可执行文件(支持整个 PHP 标准库)。
  • 将 Web 应用程序编译成(优化的) 扩展(支持整个 PHP 标准库)。
  • 混淆 PHP 代码(--obfuscate 标志 - 实验性)。结合 多个 php 脚本到一个文件中(--include 标志 - 实验性)。

最后一次更改 phc 代码是在 12 月 18 日,因此仍在积极进行开发。 可以构建 Linux 可执行文件 可用于构建 C 代码,使用适当的 PHP“宏”进行扩展

ROSE 编译器

http://rosecompiler.org/

依赖 phc 编译器来处理 PHP

【讨论】:

  • 我们将尝试 Phalanger 和 PHP 编译器作为一个选项。谢谢。
  • Phalanger 的优点...因为它正在为 .Net 构建 CIL 代码,它也应该适用于非 MS 平台的 Mono
【解决方案2】:

查看 PHP 混淆器,示例:

http://www.seocompany.ca/software/free-encryption-software.html

https://stackoverflow.com/questions/908678/is-there-any-good-php-obfuscator

混淆器不是 100%,但它们很容易实现,而且输出很粗糙。

【讨论】:

    【解决方案3】:

    我不确定 Windows 但在 Linux 上你可以尝试使用 Facebook 的 HipHop 项目,当然如果你不使用eval() 和其他功能。获取更多信息以及如何使用Facebook Hiphop PHP - git

    “php/apache/mysql”堆栈的任何安装程序?是的,有一个EasyPHP,您也可以获得便携(提取并运行)版本。

    如果您可以进行一些研发,请尝试使用 vmware ThinApp for windows 平台。使用 VMware ThinApp,应用程序被打包成单个可执行文件,这些可执行文件完全独立于彼此和操作系统运行

    【讨论】:

    • 在 Facebook HipHop 和 Vmware ThinApp 这两种情况下,您的代码也无法访问。
    • Vmware ThinApp 是否有任何开源替代方案?
    • 此外,将应用程序封装在 Vmware 或其他类似应用程序中是正确的部署方式吗?
    猜你喜欢
    • 1970-01-01
    • 2019-01-29
    • 2012-01-29
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多