在 Node.js web 服务器中执行 PHP 脚本

使用像 Apache 执行 PHP 脚本这样的 Node.js web 服务器函数需要哪些步骤?有什么方法可以把 PHP 集成到 Node.js 中吗?

注意: 我不想直接在 Node.js 中执行 PHP 脚本,而是通过 Apache 实例或类似的东西“路由”。

123588 次浏览

您可以尝试实现 direct link node-> fastcgi-> php。在前一个答案中,nginx 使用 http-> fastcgi 序列化-> unix 套接字-> php 服务 PHP 请求,并将节点请求作为 http-> nginx 反向代理-> 节点 http 服务器。

Node-fastcgi 传递程序目前似乎是可用的,但只能作为一个节点 fastcgi 后端。您需要采用它作为 php fastcgi 服务器的 fastcgi 客户机。

我也有同样的问题,我尝试通过 shell 接口调用 php,结果得到了预期的结果:

var exec = require("child_process").exec;
app.get('/', function(req, res){exec("php index.php", function (error, stdout, stderr) {res.send(stdout);});});

我确信这在推荐练习列表中不是很靠前,但它似乎做了我想做的事情。另一方面,如果您不想直接从 Node.js 执行 PHP 脚本,而是想从另一个执行该脚本的 Web 服务器中继 PHP 脚本,那么这似乎可以解决问题:

var exec = require("child_process").exec;
app.get('/', function(req, res){exec("wget -q -O - http://localhost/", function (error, stdout, stderr) {res.send(stdout);});});

看这里: https://github.com/davidcoallier/node-php

根据他们对我的解读:

在 Node.js 上运行内联 PHP 服务器

忧心忡忡,忧心忡忡。 NodePHP这个名字就是因此而得名的 事实上,我们正在有效地将一个不错的 Node.js 服务器变成一个 与 PHP-FPM 交互的 FastCGI 接口。

这是欧米茄-阿尔法-超级-贝塔-概念验证,但它已经运行了一个 几个简单的脚本,大部分都是在我关于 < strong > Node.js for PHP 的演讲中完成的 开发人员 这是一个非常有趣的项目,我们 最有可能与 管弦乐队一起使用 当我们决定释放我们的 内联 PHP 服务器 允许人们在没有 Apache、 Nginx 或任何 web 服务器的情况下运行 PHP。

是的,这违背了 Node.js 的所有想法和概念,除了想法 是能够创建一个网络服务器直接从任何工作 目录,让开发人员得到甚至比它更快的速度 不需要创建 vhost 或服务器块或修改您的 /etc/hosts 了。

在我看来,一个简单、快速的方法 就是使用 Dnode-php

你可以看到一个简短的介绍 给你。简单,快速和容易!

您可以使用 node-php 来运行带有节点 js 的 php: https://github.com/mkschreder/node-php

您可以使用节点 WAS: https://github.com/paragi/was直接为 PHP 提供服务

您可以使用 SPHP 模块 for node 在任何 Web 服务器上运行 PHP。
它是兼容的,但不依赖于快递。
它还支持 HTTP 端口上的 websocket 请求。
它偏重于小负荷下的速度,而不是节省资源。

在节点中安装:

npm install sphp

在你的应用程序中:

var express = require('express');
var sphp = require('sphp');


var app = express();
var server = app.listen(8080);


app.use(sphp.express('public/'));
app.use(express.static('public/'));

要了解更多信息,请查看 < a href = “ https://github.com/paragi/sphp”rel = “ norefrer”> https://github.com/paragi/sphp

我也有点偏见,因为我是作者:)

如果 php 处于 FPM 模式 node-phpfpm 可能是一个选项,请检查文档 https://www.npmjs.com/package/node-phpfpm

你必须查看 node-php-fpm