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

Jer*_* Je 6 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.
Run Code Online (Sandbox Code Playgroud)

问题是:

也许我不希望我的 PHP 文件被公开(在应用程序中,无论如何都会有可用的源代码)是否有一些现成的东西可以做到这一点?有比我建议的更好的方法吗?

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

dke*_*ner 5

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

这是RapidEXE

http://deneskellner.com/sw/rapidexe

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

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

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

然而...

我还希望应用程序具有可修补的字节码,因此它是分成几部分的,在需要时加载,并且只有部分需要在更新时替换。

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

也许我不希望我的PHP文件被暴露(在应用程序中,无论如何都会有可用的源代码)

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

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

编译愉快!


Vil*_*lx- 1

PHP 本身并没有这样做,但这里有一些想法:

自解压存档

许多存档程序允许您创建自解压存档,有些甚至允许在解压后运行程序。配置它,以便将 php.exe 和所有代码提取到临时文件夹,然后从那里运行 ir;脚本完成后删除。

转译器/编译器

这是旧的HPHC将 PHP 代码转换为 C++,其维基百科时代还包含其他类似项目的链接。也许你可以利用这些。

修改后的PHP

PHP 本身是开源的。您应该能够轻松地修改它以从其他位置获取源代码,例如直接在 php.exe 内编译的某些资源。