Выполнение PHP скриптов в узле.JS web server


какие шаги необходимы, чтобы иметь узел.функция веб-сервера js, такая как Apache, выполняющая PHP-скрипты? Любой способ интеграции PHP внутри узла.Джей?

примечание: Я не хочу выполнять PHP-скрипты непосредственно в узле.js, но "маршрутизированный" через экземпляр Apache или что-то подобное.

10 65

10 ответов:

узел.js поддерживает только JavaScript. Вот учебник о том, как иметь PHP работает с узлом.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);});});

Я уверен, что это не высоко в списке рекомендуемых практик, но это, казалось, делать то, что я хотел. Если, с другой стороны, вы не хотите выполнять PHP-скрипты непосредственно из узла.js, но хотите передать их с другого веб-сервера, который делает, это, кажется, делает трюк:

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

вы можете запустить PHP как с любого веб-сервера, используя модуль SPHP для узла.
Он совместим, но не зависит от express.
Он также поддерживает запросы websockets на HTTP-порт.
Его предвзятое отношение к скорости при небольшой нагрузке, а не к экономии ресурсов.

для установки в узел:

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

из их прочитал я:

встроенный PHP сервер работает на узле.js

волнуется, очень волнуется. Имя NodePHP берет свое название от дело в том, что мы эффективно поворачиваем хороший узел.JS сервер в a Интерфейс FastCGI, который взаимодействует с PHP-FPM.

Это омега-Альфа-супер-бета-доказательство концепции, но это уже работает несколько простых сценариев. В основном сделано для моих разговоров на узел.js для PHP Разработчики это, оказывается, довольно интересный проект, который мы скорее всего буду использовать оркестр когда мы решим освободить наши встроенный PHP сервер это позволяет людям запускать PHP без Apache, Nginx или любого веб-сервера.

Да это идет вразрез со всеми идеями и концепциями узла.JS, но идея есть возможность создать web-сервер сразу от любой работы каталог, позволяющий разработчикам работать еще быстрее, чем это было до. Нет необходимости создавать vhosts или серверные блоки или изменять ваш /etc / hosts больше.

вы можете попробовать реализовать узел прямой связи - > fastcgi - > php. В предыдущем ответе, то nginx обслуживает PHP запросов через HTTP->FastCGI для сериализации->сокет->Unix с PHP и узел запросы как HTTP->с nginx обратного прокси-сервера->узел HTTP-сервер.

кажется,node-fastcgi paser можно использовать в данный момент, но только как узел FastCGI backend. Вам нужно принять его для использования в качестве клиента fastcgi на PHP FastCGI server.

простой, быстрый подход на мой взгляд было бы использовать dnode-php для этого.

вы можете увидеть краткое введение здесь. Просто, быстро и легко!

Если php находится в узле режима FPM-phpfpm может быть опцией, проверьте documenation https://www.npmjs.com/package/node-phpfpm

вы можете использовать node-php для запуска php с узлом js:https://github.com/mkschreder/node-php

вы можете обслуживать PHP непосредственно с узлом WAS:https://github.com/paragi/was

вы должны проверить node-php-fpm.