是否可以将PHP / MySQL应用程序包装为可以作为独立应用程序工作的二进制文件? - php

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

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

参考方案

有关可用于将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版的规定,它以其作为免费软件的C ++和C语言编写的300,000多行源代码正在分发中。
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,也没有以任何方式使用Zend PHP。

对roadsend代码的最后更改是在17个月前(Ubuntu 10.04 llvm软件包的补丁程序),而在21个月前。自述文件已在最近两周(在撰写本文时)进行了更新,因此也许它将再次复活。
可以构建Linux可执行文件

法郎格

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

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

http://phalanger.codeplex.com/

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

电脑

http://www.phpcompiler.org/

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

PHP程序员的phc(请参见手册):

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

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

ROSE编译器

http://rosecompiler.org/

依赖于PHC编译器以使用PHP

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

php fopen相对路径断开-神秘 - php

我知道“必须进行某些更改”,但是我的代码似乎整夜无故中断。我的服务器目录结构是这样的: / /脚本 /审计 /其他事情我在“脚本”文件夹中有一个脚本(假设它被称为“ /scripts/MyScript.php”),该脚本使用curl收集网页中的数据,并将其日期过的副本保存在“审核”文件夹中。要写入审核文件夹,我使用了 $ fh = fopen(“ ./ au…

Yii,yiic和console - php

在Yii的安装说明中,有必要使用控制台和命令行实用程序-yiic。好吧,在我的共享主机上,我没有SSH访问权限。这就是为什么我有以下问题:我必须多久使用一次控制台?出于什么原因?有办法避免使用Yiic吗?我可以在本地服务器上运行yiic,然后将所有内容传输到最终的Web服务器吗?谢谢! php参考方案 来自Yii论坛的答案:不,您不在生产服务器上使用yiic…

在访问另一页面后保留浏览器滚动位置 - php

我正在使用JS,JQuery和PHP,试图解决无限滚动问题。问题是,如果您在页面上滚动很长一段时间,并且用ajax加载了更多页面,然后单击链接转到新页面,那么在使用浏览器时如何自动转到旧页面中的同一位置新页面上的返回按钮?。新页面使用ajax滚动加载。 php参考方案 我想出的解决方案是在离开页面之前,将每个页面与相关数据一起存储。需要以下信息来保持滚动位置…

将一个PHP对象发送到另一个PHP页面 - php

我想知道是否有一种方法可以将PHP对象发送到另一台计算机上的另一个PHP页面?例如-我实现了一个构造Trie的类。现在,在构造Trie之后,我想将对象发送到另一个PHP页面,以便它也可以访问该对象。可行的选择是将其包装到某种编码的JSON请求中,然后将其发送到可以使用jQuery将其中继到所需页面的页面吗?对不起,我对此绝对陌生!将感谢提供的任何帮助。干杯!…