如果我想使用安装程序(操作系统的软件包系统)分发 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/