PHP 作为独立应用程序(二进制、编译、打包、主机上没有 php)

标签 php installation packaging

如果我想使用安装程序(操作系统的软件包系统)分发 PHP 应用程序,我应该如何进行?我不希望 PHP 文件在那里,只是工作应用程序,所以当我在控制台中输入“app”时,它最终会启动应用程序,而无需在系统上安装 PHP(不需要在主机上安装 php)。我还希望应用程序具有可打补丁的字节码,所以它是部分的,需要时加载,更新时只需要替换部分。

我现在要做的是:

->Compile PHP with extensions for specific platform.
->Make binary application which launches '/full/php app' when app is launched.
->Pack it in installer in a way, that there would be binary added to path when added, launching specific installation of PHP which is alongside the app with argument of start point->App would be running.

问题是:

也许我不想暴露我的 PHP 文件(在应用程序中,无论如何都会有可用的源)是否有一些现成的东西可以做到这一点?有没有比我提出的更好的方法?

替代方案:修改 OP Cache 以与“打包”应用程序一起使用,以将字节码传送到仅读取缓存的修改后的 OP Cache。

最佳答案

我的建议是我刚刚完成的一个小工具,用于几乎完全相同的问题。 (哦,是的,我尝试了所有其他方法,但它们又旧又生锈,有时它们会被 4.x 语法卡住,没有支持,没有适当的文档等)

所以这里是 RapidEXE :

http://deneskellner.com/sw/rapidexe

以经典的方式,它不是真正的编译器,只是一个美化的打包器,而是完全满足您的需求:输出 exe 将是独立的,携带所有内容并透明地构建临时运行时环境。别担心,这一切都发生得很快。

它使用 PHP 7.2/Win64 默认情况下,但也有 5.x,用于 XP 兼容性。
显然,它是免费软件。 (麻省理工学院许可证。)

(之所以这么说,是因为我不想让任何人认为我在做广告或其他什么。我只花了几分钟时间阅读了有关自有产品答案的指南,并且我正在努力遵守绝地守则。 )

然而...

I would also like the application to have patch-able byte-code, so it's in parts, loaded when needed and only part needs to be replaced on update.



重新编译exe更容易。您当然可以提取有效载荷片段,但源包是一个大压缩包;单独处理它似乎没有真正的优势。重新编译项目只是一个命令。

Maybe I don't want my PHP files to be exposed(in application, there will be available source anyway)



在这种情况下,exe 包含您压缩的源代码,但最终它们会被提取到临时文件夹中。它们在运行后立即被删除,但是,这没有任何保护。混淆似乎是唯一可行的选择。

如果出现问题,请随时在 developer-at-deneskellner-dot-com 上发表评论或给我留言。 (我的意思是,我刚刚完成它,它是全新的,它可能行为不端,因此现在将其视为测试版。)

编译愉快!

关于PHP 作为独立应用程序(二进制、编译、打包、主机上没有 php),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330696/

相关文章:

python - 准备带有 Cython 扩展的包以在 PyPI 上发布

php - 使用非数组作为参数的 vsprintf

PHP 回显表及其 CSS

python - scipy.misc 模块没有属性 imread?

ubuntu - ubuntu 11.10 上的 opencv 安装

python - 打包需要C编译器的Python程序

javascript - Html + js +css 打包器

php - 检测更改的字段并通过 jquery 和 ajax 发送

php - Xpath-获取检查输入的标签文本

symfony - 安装 Sylius - Symfony2 开源电子商务