要使Node.js Web服务器功能(如Apache)执行PHP脚本,需要执行哪些步骤?有什么方法可以将PHP集成到Node.js中?
注意:我不想直接在Node.js中执行PHP脚本,而是通过Apache实例或类似的东西“路由”。
Answers:
Node.js仅支持JavaScript。这是一个有关如何使PHP与Node.js一起运行的教程。
http://blog.mixu.net/2011/01/04/nginx-php-fpm-and-node-js-install-on-centos-5-5/
我有同样的问题。我尝试通过外壳接口调用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服务器为FastCGI接口与PHP-FPM相互作用。
这是omega-alpha-super-beta-proof-of-concept的概念,但它已经运行了一些简单的脚本。在我为PHP开发人员进行的关于Node.js的演讲中,大多数工作都是完成的,这原来是一个非常有趣的项目, 当我们决定发布允许人们无需Apache即可运行PHP的Inline PHP服务器时,我们 很有可能与Orchestra一起使用。 Nginx或任何Web服务器。
是的,这与Node.js的所有思想和概念背道而驰,但其思想是能够直接从任何工作目录创建Web服务器,以使开发人员能够比以前更快地进行开发。无需创建虚拟主机或服务器块,也无需修改/ etc / hosts。
您可以使用SPHP节点模块,与任何Web服务器一样运行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序列化-> unix套接字-> php提供php请求,并将节点请求作为http-> nginx反向代理-> node http服务器。
目前看来,node-fastcgi paser可用,但仅可用作节点fastcgi后端。您需要采用它作为php fastcgi服务器的fastcgi客户端。
如果php处于FPM模式,则可以选择node-phpfpm,请检查文档https://www.npmjs.com/package/node-phpfpm
您可以使用node-php与node js一起运行php:https : //github.com/mkschreder/node-php
您必须退房node-php-fpm。