在Node.js Web服务器中执行PHP脚本
使用Apache执行PHP脚本的Node.js Web服务器function需要执行哪些步骤? 任何将PHP集成到Node.js中的方法?
注意:我不想在Node.js中直接执行PHP脚本,而是通过Apache实例或类似的东西“路由”。
Node.js只支持JavaScript。 这里是一个关于如何让PHP运行在Node.js上的教程。
http://blog.mixu.net/2011/01/04/nginx-php-fpm-and-node-js-install-on-centos-5-5/
我有同样的问题。 我尝试通过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);});});
看看这里: https : //github.com/davidcoallier/node-php
从他们读我:
在Node.js上运行的内联PHP服务器
担心,非常担心。 NodePHP的名字取自于我们正在有效地将一个不错的Node.js服务器变成一个与PHP-FPM交互的FastCGI接口。
这是omega-alpha-super-beta-proof-of-concept,但它已经运行了一些简单的脚本。 大部分时间我在为Node.js开发PHP开发人员方面做了大量的工作,事实certificate这是一个非常有趣的项目,当我们决定发布我们的Inline PHP服务器时,我们很可能会和Orchestra一起使用,允许人们在没有Apache的情况下运行PHP, Nginx或任何networking服务器。
是的,这违背了Node.js的所有想法和概念,但是这个想法是能够直接从任何工作目录创build一个Web服务器,以使开发人员能够比以前更快。 不需要创build虚拟主机或服务器块,也不需要修改你的/ etc / hosts。
Snappy PHP是一个节点模块,用于运行服务器端的PHP。
这是兼容的,但不依赖于快递。
它还支持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
我应该提到,我是作者:)
你可以尝试实现直接链接节点 – > fastcgi – > php。 在之前的回答中,nginx使用http-> fastcgi serialisation-> unix socket-> php和node请求来作为http-> nginx反向代理 – >节点http服务器。
看来node-fastcgi paser现在是可用的,但只能作为fastcgi后端的一个节点。 你需要采用它作为fastcgi客户端来使用php fastcgi服务器。
在我看来,一个简单,快速的方法是使用dnode-php 。
你可以在这里看到一个简短的介绍。 简单,快速和简单!
如果php处于FPM模式,那么node-phpfpm可能是一个选项,请查看文档https://www.npmjs.com/package/node-phpfpm
你可以使用node-php来运行php和js节点: https : //github.com/mkschreder/node-php
您可以直接使用节点WAS服务PHP: https : //github.com/paragi/was