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


Execute PHP scripts within Node.js web server

要让Node.js web服务器函数(如Apache(执行PHP脚本,需要采取哪些步骤?有没有办法在Node.js中集成PHP?

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

我也有同样的问题。我尝试通过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服务器中继它们,那么这似乎就成功了:

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

Node.js只支持JavaScript。这里有一个关于如何让PHP在Node.js的支持下运行的教程。

http://blog.mixu.net/2011/01/04/nginx-php-fpm-and-node-js-install-on-centos-5-5/

您可以像使用任何web服务器一样运行PHP,使用SPHP模块作为节点
它是兼容的,但不依赖于express
它还支持HTTP端口上的websockets请求。
它偏向于小负载下的速度,而不是节省资源。

要在节点中安装:

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/'));

有关更多信息,请参阅https://github.com/paragi/sphp

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

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

来自他们的自述:

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

担心,非常担心。NodePHP的名称取自事实上,我们正在有效地将一个不错的Node.js服务器转变为与PHP-FPM交互的FastCGI接口。

这是omega-alpha超级beta概念验证,但它已经运行了几个简单的脚本。主要是为我关于Node.js for PHP的演讲而做的开发人员这是一个非常有趣的项目,我们最有可能与Orchestra一起使用当我们决定发布内联PHP服务器允许人们在没有Apache、Nginx或任何Web服务器的情况下运行PHP。

是的,这违背了Node.js的所有想法和概念,但能够直接从任何工作创建web服务器目录,使开发人员能够更快地开始工作之前无需创建vhosts或服务器块或修改您的/etc/主机。

您可以尝试实现直接链接节点->fastcgi->php。在前面的回答中,nginx使用http->fastcgi serialization->unix socket->php提供php请求,并将节点请求作为http->nginx反向代理->nodehttp服务器。

节点fastcgi-paser目前似乎可用,但仅作为节点fastcgi后端。您需要将其用作php fastcgi服务器的fastcgi客户端。

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

你可以在这里看到一个简短的介绍。简单、快捷、轻松!

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

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

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

您必须签出node-php-fpm