我的应用程序是用 PHP/MYSQL 编写的。我们正在寻找在客户端机器上部署的选项。有什么选择以及如何做?除此之外,我们更关心保护我们的代码。因此,我们正在寻找可以为我们在 php/mysql 上开发的 Web 应用程序制作二进制应用程序的选项。
除此之外,是否有任何可用的安装程序可以提取和安装 php/apache/mysql 堆栈?
最佳答案
见 this previous response到一个类似的问题,以获得可用于将 PHP 代码编译/包装为 Windows 可执行文件的选项的完整列表
适用于非 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 源代码编译为独立的、不需要解释器的 native 二进制文件。 Roadsend Compiler 可以使用 Fast/CGI 构建在线 Web 应用程序,使用嵌入式 Web 服务器 (!MicroServer) 构建离线 Web 应用程序,使用 PHP-GTK 构建桌面 GUI 应用程序,以及控制台应用程序。众所周知,它可以在 Linux、Windows(使用 mingw)、Mac OSX 和 FreeBSD 上构建。
Roadsend Compiler 还包含用于解释、分析和逐步调试 PHP 代码的工具。
Roadsend PHP 是 PHP 语言和运行环境的完全独立实现,并非基于原始实现(使用 Zend 引擎),可在 http://www.php.net 单独免费获得. 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 编译器组件完成的编译过程的开始。它不涉及 native 代码生成或优化。其目的是将 PHP 脚本编译成 .NET 程序集、包含 CIL 代码和元数据的逻辑单元。
电话
http://www.phpcompiler.org/
phc 是一个支持插件的 PHP 开源编译器。此外,它还可用于 pretty-print 或混淆 PHP 代码,作为开发处理 PHP 脚本的应用程序的框架,或将 PHP 转换为 XML 并返回,从而能够使用 XML 工具处理 PHP 脚本。
适用于 PHP 程序员的 phc(参见手册):
PHP 标准库)。
扩展(支持整个 PHP 标准库)。
许多 php 脚本到一个文件中(--include 标志 - 实验性的)。
phc 代码的最后一次更改是在 12 月 18 日,因此仍在积极进行开发。
可以构建 Linux 可执行文件
可用于构建 C 代码,使用适当的 PHP“宏”进行扩展
ROSE 编译器
http://rosecompiler.org/
依赖 phc 编译器来处理 PHP
关于php - 是否可以将 PHP/MySQL 应用程序包装成可以作为独立应用程序工作的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309233/