2015-07-14 4 views
0

Я хотел бы запустить PHP с nodejs как с https://www.npmjs.com/package/node-phpЗапуск PHP из nodejs экземпляра

Это было хорошо, но я предполагаю, что это работает только со старой версией экспресс и это репо не выглядит поддерживать больше.

выглядел

var php = require('php'); 
var app = express(); 
app.use("/", php.cgi("/path/to/wordpress")); 
app.listen(3000); 

и затем каждый запрос сделан в / заканчивая .php назвал бы CGI скрипт, запуск PHP и возвращает результат.

Теперь то, что я пытаюсь достичь, выглядит как:

  1. от узла определить, какой файл PHP для вызова
  2. аргументы переходят к нему, так что код PHP есть контекст (полезная нагрузка, аргументы, заголовок ...)
  3. считан ответ PHP кода (желательно в формате JSON)

есть в любом случае сделать это с помощью nodejs или мне нужно сделать, чтобы веб-вызов, как предложено для Call PHP methods from NodeJS?

Не нужно было запускать веб-сервер php, было бы предпочтительнее, если бы потребовалось больше настроек, и мой проект не «работал бы из коробки», я предпочитаю просто устанавливать php5, и все сделано (я думаю, это безопасная память/так как эти вызовы должны использоваться очень часто)

ответ

1

Вы можете передать вход через stdin, а затем прочитать его с fopen("php://stdin") как обычный файл (file_get_contents("php://input")). Это предполагает, что вы просто хотите запустить простой PHP-скрипт, а не то, что ожидает все аспекты HTTP-запроса.

Выход зависит от вашего кода, поэтому просто возвращайтесь к json_encode().

Here is the documentation for how to pass the data as stdin in the first place.

+0

с помощью http://php.net/manual/en/features.commandline.io-streams.php Я понял способ взаимодействия с «вызывающим сценарием». Я думаю, мне просто нужно использовать process.spawn из nodejs продолжить – zeachco

Смежные вопросы