Ответ 1
Node.js поддерживает только JavaScript. Вот учебник о том, как PHP работает с Node.js на стороне.
http://blog.mixu.net/2011/01/04/nginx-php-fpm-and-node-js-install-on-centos-5-5/
Какие шаги необходимы, чтобы иметь функцию веб-сервера 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 Разработчики, это, оказывается, довольно интересный проект, который мы скорее всего, будут использоваться с Orchestraкогда мы решаем освободить Встроенный PHP-сервер, который позволяет людям запускать PHP без Apache, Nginx или любого веб-сервера.
Да, это противоречит всем идеям и концепциям Node.js, но идея заключается в том, чтобы иметь возможность создавать веб-сервер непосредственно с любого рабочего, чтобы позволить разработчикам продвигаться даже быстрее, чем это было до. Нет необходимости создавать vhosts или серверные блоки. /etc/hosts.
Snappy PHP - это модуль node для запуска PHP на стороне сервера.
Он совместим, но не зависит от экспресс.
Он также поддерживает запросы websockets на HTTP-порт.
Он предвзято для скорости при малой нагрузке, а не для экономии ресурсов.
Для установки в node:
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
Я должен упомянуть, что я автор:)
Вы можете попробовать реализовать прямую ссылку node → fastcgi → php. В предыдущем ответе nginx обслуживает запросы php, используя http- > fastcgi serialisation- > unix socket- > php и node запросы в качестве http- > nginx обратного прокси → node http-сервера.
Кажется, что node -fastcgi paser можно использовать в настоящий момент, но только как node backcgi. Вы должны принять его для использования в качестве клиента fastcgi для сервера php fastcgi.
Простой, быстрый подход, на мой взгляд, должен был бы использовать dnode-php.
Вы можете увидеть краткое введение здесь. Просто, быстро и легко!
Если php находится в режиме FPM node -phpfpm может быть опцией, проверьте документацию https://www.npmjs.com/package/node-phpfpm
Вы можете использовать node -php для запуска php с помощью node js: https://github.com/mkschreder/node-php
Вы можете напрямую обслуживать PHP с помощью node WAS: https://github.com/paragi/was
Вы должны проверить node-php-fpm
.