【问题标题】:Using PHP in Node-Webkit在 Node-Webkit 中使用 PHP
【发布时间】:2014-11-19 06:09:23
【问题描述】:

在过去的几个月里,我构建了一个 AngularJS 应用程序,该应用程序利用 MySQL 数据库存储数据。该数据由 Angular 调用 PHP 获取,PHP 返回 JSON 字符串等。

问题是一旦这个应用程序在 node-webkit 中运行,所有的 php 都不起作用,所以所有的内容区域都是空的。我假设(虽然关于这个问题的文档是空的,所以我没有确认)这是因为 Node-webkit 是一个客户端应用程序框架,因此不会运行像 php 这样的服务器端语言。有没有办法扩展 node webkit 来运行 php 和其他服务器端语言?

在发布之前,我已尽力找到此问题的答案,但是不存在有关此问题的文档,并且我找到的有关 node-webkit 的所有信息都涉及在您的服务器上安装节点和为 MySQL 安装 npms 和有角度调用节点。这完全违背了应用程序的目的,因为它的设计目的是使 exe/deb/rpm/dmg 可以运行,并且您可以使用任何云数据库提供商设置数据库并准备就绪。如果你必须购买一个 vps 来运行这件事,那就不理想了。

我不得不假设这在某种程度上是可能的。我拒绝相信每个拥有 nw 应用程序的人都会对他们的所有数据进行硬编码。

提前致谢

【问题讨论】:

  • 为什么你认为你需要 Node-webkit?请注意,node.js 在服务器上运行 JavaScript,而带有 modphp 的 Apache 在服务器上运行 PHP。
  • 因为 id 喜欢它是桌面应用程序而不是基于浏览器的应用程序。除了 nw 开发人员的疏忽之外,是什么特别阻止了 localhost 成为执行 php 以从远程数据库调用数据的服务器?
  • 值得注意的是,我对其他解决方案持开放态度。我不愿意拥有的是 Web 服务器或 Node Web 服务器上的远程脚本。我需要它在其包装器中运行所有从客户端计算机(不一定是客户端,只是从他们的计算机)进行的调用。这样,共享数据库可以存储在公司服务器、云数据库提供商、网络主机等任何地方。
  • 这听起来像是一个用 angular.js 构建的网站。客户端运行 javasccrtipt,在您的情况下为服务器 php 和 mysql。不需要 node-webkit 或任何特定的东西。
  • 抛开技术误解不谈,直接将客户端应用程序连接到共享数据库是一个严重的安全漏洞,因为您的应用程序必须嵌入数据库登录凭据(可以轻松提取)。一个中介 api(用 php 或任何其他语言)要走的路

标签: php mysql angularjs node-webkit


【解决方案1】:

我知道有四种方法可以做到这一点。其中一些你不想做,但我将提供它们,希望它可以帮助你或其他人。

  1. 寻找可以为您执行此操作的 NPM。您应该能够在 node.js 中执行此功能。 - https://www.npmjs.com/search?q=mysql

  2. 您可以远程托管您的 PHP。使用node-remote,您可以授予此服务器对您的 NW.js 项目的适当访问权限。

  3. 您可以编写一个 RESTful PHP 应用程序,您的 JavaScript 可以将信息传递给该应用程序。

  4. 您可以使用我的样板代码在 NW.js 项目中运行 PHP。然而,它会在内部启动 express.js Web 服务器来完成此操作。但是服务器仅限于本机,不接受外部连接-https://github.com/baconface/php-webkit

1 和 4 在您的情况下都有风险。您的项目可以进行逆向工程以显示源代码,并且可以很容易地检索连接信息。所以这应该只在受信任机器上的应用程序中,2 和 3 是理想的解决方案。

【讨论】:

  • 一年后似乎有人明白我想要做什么了!您的 php-webkit 看起来是一个理想的解决方案。我基本上已经放弃了原本很棒的应用程序,因为没有办法做我想做的事,而且我不希望根据我工作的公司的要求在任何类型的网站上公开提供信息。生病让你知道它是怎么回事,我一定要问我在设置它时是否有任何问题!谢谢!
  • 没问题。我有一个更新的版本,我一直想要推送到 repo。但这应该可以完成您想做的事情。如果您有任何问题,请告诉我。谢谢。
猜你喜欢
  • 2014-07-23
  • 2016-02-09
  • 2015-12-13
  • 1970-01-01
  • 2014-05-07
  • 2015-07-24
  • 2014-09-29
  • 2014-09-07
  • 1970-01-01
相关资源
最近更新 更多