Выполнить PHP-скрипты в веб-сервере Node.js

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

Примечание. Я не хочу выполнять PHP-скрипты непосредственно в Node.js, но «маршрутизируется» через экземпляр 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/

У меня такой же вопрос. Я попытался вызвать php через интерфейс оболочки, и он дал желаемый результат:

var exec = require("child_process").exec; app.get('/', function(req, res){exec("php index.php", function (error, stdout, stderr) {res.send(stdout);});}); 

Я уверен, что это не так много в списке рекомендуемых практик, но, похоже, он сделал то, что я хотел. Если, с другой стороны, вы не хотите выполнять скрипты PHP непосредственно из Node.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);});}); 

Посмотрите здесь: https://github.com/davidcoallier/node-php

Из их прочитали меня:

Встроенный PHP-сервер, работающий на Node.js

Будьте обеспокоены, будьте очень обеспокоены. Имя NodePHP берет свое имя из-за того, что мы эффективно превращаем красивый сервер Node.js в интерфейс FastCGI, который взаимодействует с PHP-FPM.

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

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

Snappy PHP является узловым модулем для запуска PHP на стороне сервера.
Он совместим, но не зависит от экспресс.
Он также поддерживает запросы 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.
Я должен упомянуть, что я автор 🙂

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

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

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

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

Если php находится в режиме FPM, узел-phpfpm может быть опцией, проверьте документацию 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 .