在Node.js Web服务器内执行PHP脚本

knsnq2tg  于 2022-09-21  发布在  Node.js
关注(0)|答案(10)|浏览(229)

要让Node.js Web服务器像Apache一样执行PHP脚本,需要执行哪些步骤?有没有办法将PHP集成到Node.js中?

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

e5nqia27

e5nqia271#

我也有同样的问题。我尝试通过外壳接口调用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);});});
cnwbcb6i

cnwbcb6i2#

Node.js仅支持JavaScript。下面是一个教程,介绍如何在Node.js的支持下运行PHP。

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

4xrmg8kj

4xrmg8kj3#

使用NODE的SPHP模块,您可以像运行任何Web服务器一样运行PHP。
它是兼容的,但不依赖于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

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

wpx232ag

wpx232ag4#

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

来自他们的Read Me:

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

要担心,要非常担心。NodePHP的名字来源于这样一个事实,即我们实际上是将一个很好的Node.js服务器变成了一个与PHP-fpm交互的FastCGI接口。

这是omega-Alpha-Super-beta概念验证,但它已经运行了几个简单的脚本。这是一个相当有趣的项目,当我们决定发布我们的内联PHP服务器时,我们很可能会使用Orchestra,它允许人们在没有Apache、Nginx或任何Web服务器的情况下运行PHP。

是的,这违背了Node.js的所有想法和概念,但其想法是能够直接从任何工作目录创建一个Web服务器,使开发人员能够比以前更快地开始工作。不再需要创建vhost或服务器块,也不再需要修改/etc/host。

7qhs6swi

7qhs6swi5#

您可以尝试实现直连节点->fast cgi->php。在前面的回答中,nginx使用http->fast cgi Serialization->Unix Socket->php来处理php请求,并将节点请求作为http->nginx反向代理->node http服务器。

node-fastcgi paser目前似乎可以使用,但只能作为节点fast cgi后端使用。您需要采用它作为php fast cgi服务器的fast cgi客户端。

nsc4cvqm

nsc4cvqm6#

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

您可以看到here的简要介绍。简单、快速、轻松!

wswtfjt7

wswtfjt77#

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

rqqzpn5f

rqqzpn5f8#

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

ioekq8ef

ioekq8ef9#

您可以使用NODE WASS:https://github.com/paragi/was直接提供PHP

相关问题