将PHP-MySQL Web应用程序转换为桌面应用程序(exe)

23

我开发了一个基于PHP-MySQL的网页应用程序,这是一个学校项目。客户希望将此应用程序转换为.exe文件,以便能够安装在他的桌面上并使用它。

如何将PHP网站转换为.exe文件,并且能否在不需要数据库/服务器软件的情况下运行?

请给予建议。


5
您的客户的意愿没有意义。告诉他们这是客户端-服务器应用程序,而不是桌面应用程序。 - Your Common Sense
5
一个快捷图标是否足够好? - corymathews
我认为这个是你需要的。 - user1745487
嗨Czarek,我在找你的程序时发现了这个页面。很棒!但是我发现你的程序需要.exe文件在同一文件夹下才能运行。是否有办法将整个软件包编译成一个.exe文件,以便桌面只需要一个文件? - Jon
11个回答

13

方便的解决方案不是将网站转换为 .exe 文件。我认为更好的方法是使用便携式服务器/php/mysql,并通过自动运行从 USB 或 CD 上运行该网站。


自从Windows 8以来,由于安全原因,USB上的Autorun已经无法工作。您可以尝试 https://www.exeoutput.com/ 或者制作一个CDFS分区 http://www.visualdesigning.com/articles/how-to-create-autorun-usb-drive/。在这里您还可以找到一些其他的PHP到EXE编译器 http://www.thefreecountry.com/compilers/php.shtml。 - garatu

7
NuSphere的PhpDock声称可以做到这一点:它作为部署助手,并附带捆绑的Web服务器。但是,我不知道数据库部分,而且它不是免费的。
PhpDock使您能够将任何PHP Web应用程序部署为独立的Windows桌面应用程序,而无需更改代码。
我不了解那个特定的产品,但我已经使用他们的IDE多年了,非常满意。

6
尝试使用特定于站点的浏览器。它将创建一个桌面应用程序,基本上是运行您的 Web 应用程序的门户。尝试这个:https://mozillalabs.com/prism/
它允许许多高级功能,如系统托盘图标等。我已经使用过很多次!
希望这可以帮助,JL

谢谢你的提示,我认为这是最好的解决方案,它已经帮助了我。 - Marcos Buarque
很高兴能帮忙 :) 另外,我有时发现 Prism 在大规模部署方面有点难以处理,因为它不能像安装程序一样打包您特定的 SSBS。如果您真的想要可部署性,在我的最近一个项目中所做的是在 Aptana2 中创建一个空白的 Adobe Air 模板(不要使用 3,因为它不支持添加 Air SDK),并简单地使用以下代码链接到实际网站: `<html><head><meta http-equiv="REFRESH" content="0;url=http://where-you-want-to-redirect-to"> </head></html>` 如果您使用最新的 SDK,则运行 WebKit 渲染引擎并运行 HTML5。 - JL Griffin
我可能会写一篇关于这个的教程,并在某个地方发布。哈哈。这家公司之所以希望这样做,是因为在浏览器中运行并带有地址栏等功能会打开其他员工可能打开的选项卡的漏洞,而单独的站点浏览器则没有这样的漏洞。无论如何,如果我真的写了,我会提供链接的。干杯! - JL Griffin

5

简短回答:不可能。

详细回答:这要看情况。

你可以在他的机器上安装一个 web 和数据库服务器(或者创建一个安装程序来完成这个过程),在他的机器上本地运行应用程序。

或者

你可以将应用程序放在服务器上,并提供一个启动器,打开他的浏览器并指向应用程序的 URL。

就像 Artefacto 提到的一样,如果能使用 SQLite 代替 MySQL 的话是一个不错的选择,但是根据你的应用程序编写方式,这可能需要大量代码和 SQL 查询的更改。


3

不行,你至少需要移除对MySQL的依赖(可以使用sqlite替代)。

接下来,你需要做以下两件事情之一:

  • 将网页转换为Windows对话框。这将完全改变你的应用程序(例如,原本的http“表单提交”将变成完全不同的东西)。此时,编写一个.NET应用程序会更容易。
  • 捆绑一个带有安装了PHP的Web服务器(如Apache)。

第二个选项很适合我,使用wapache。它还支持sqlite。 - shasi kanth

2

1
抱歉,但是从头开始使用GTK开发我的应用程序很痛苦。 - shasi kanth

1
你可以使用XAMPP开源项目将PHP网站打包成可执行文件。
使用以下步骤: 1. 下载XAMPP源代码。 2. 将您的PHP文件添加到htdocs目录中(参考:https://sourceforge.net/p/xampp/code/HEAD/tree/win32/xampp/htdocs/)。 3. 现在编译XAMPP源代码并进行分发。 4. 对于数据库创建和初始数据加载,您可以编写您的网站,以便如果没有创建数据库,则将页面重定向到install.php,该文件使用提供的sql文件执行数据库创建和数据加载任务(您需要添加包含数据库结构和所需数据的SQL文件)。
不要忘记在数据库安装后删除SQL文件。

1

不确定是否可能,但可以看一下:

WinBinder

WinBinder是PHP的一个新的开源扩展,它允许PHP程序员轻松构建本地Windows应用程序。

alt text
(来源:winbinder.org)


如果我理解问题正确的话,那不是他所要求的(因为那将是应用程序的完全重写)。 - user253984
@dbemerlin:是的,除非有人提出真正的解决方案,否则似乎无法进行转换。我刚刚发布了他可能想要采取的其他步骤。 - Sarfraz
1
完全重写并不是一个容易的选择!即使他决定这样做,处理PHP的echo与GUI操作有很大的不同。无论如何,WinBinder是一个不错的概念。 - Yousf
1
@Yousf:同意,正如我所说,如果有一种将现有的Web应用程序转换为桌面应用程序的解决方案,那就是正确的方法。 - Sarfraz

1

只需在C或C++中创建一个简单的程序,它将在开始菜单、桌面和快速启动中添加图标。如果您的客户单击该图标,它将打开默认的操作系统浏览器并将其指向您的在线应用程序的URI。

这可能会愚弄您的客户 :)

或者也许对他来说已经足够了(他可能要求您将其转换为exe,因为他无法记住URI或其他原因-请问他是什么原因)。


嗨,感谢你们的回复。将这个PHP应用程序转换为独立应用程序的唯一目的是将产品作为软件销售给客户。因此,一旦他们支付了金额,他们将获得一个CD上的.exe文件,可以用来运行该应用程序。此外,该软件必须允许在系统上进行一次性安装,以便同一张CD不会在同一系统中被重复使用(就像正版操作系统的安装方式)。说到重点,可以使用SQLite作为数据库,而不是mysql。我可以重新编写应用程序,这不是问题。我也在考虑GTK选项。 - shasi kanth
但我不知道如何使用它进行开发。没有合适的文档可用。顺便说一句,我发现了这个软件,可以将php应用程序转换为.exe文件。尽管它不是免费的: http://www.byterun.com/website-compiler.php - shasi kanth
嗨,我发现了这个产品,声称可以将 PHP 应用程序转换为独立应用程序。http://www.roadsend.com - shasi kanth
最近我发现了另一个很好的开源工具,叫做wapache,它带有内置服务器。请参考:http://wapache.sourceforge.net/ - shasi kanth

1

这个链接无法使用。 - Ilham Safeek
简单的谷歌搜索可以显示作者已经转移到Github。 - Emmanuel Mahuni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接