Как запустить узел.JS-сервер с PHP?

#php #node.js

#php #node.js

Вопрос:

Я установил узел.JS, и он работает нормально. Но мне интересно, как я могу запустить сервер с PHP (при условии, что у меня есть полный контроль, поскольку я включен localhost ).

Я создал пакетный скрипт, который я использую для запуска узла из командной строки:

 :: nodejs.bat

@ECHO OFF
CD %NodeJS
:: The above is my NodeJS directory

CLS
TITLE Running Node Server %1.js
ECHO Starting Server...
nodemon --trace-warnings --quiet %1.js
 

Я запускаю его из командной строки как:

 nodejs path/to/my/current/project
 

nodejs.bat находится по адресу %userprofile%nodejs.bat , так что вот как я пытаюсь запустить свою программу на PHP:

 $cmd="%userprofile%\nodejs.bat ".$_POST["s"];

echo $cmd; // Just for debugging purposes

exec($cmd);
 

У меня это не сработало. Кто-нибудь знает способ запуска узла.JS-сервер с PHP?

Дополнительные сведения:

  • Я не хочу запускать узел.JS-файл, я просто хочу запустить сервер
  • Мне не нужно использовать nodejs.bat , его просто легче вводить по сравнению с nodemon --trace-warnings --quiet [my file path]

Если вам нужны дополнительные подробности, пожалуйста, спросите в комментариях, и я добавлю их.

Комментарии:

1. Зачем вам нужны node и PHP на одном сервере? Они в основном выполняют ту же работу

2. Они мне не нужны на одном сервере. Обычно я использовал PHP, но я изучаю Node. JS тоже. Я просто хочу запустить узел с PHP (если это возможно).

3. ОК. Итак, вы взяли вывод echo $cmd и проверили, работает ли он из обычной командной строки на том же компьютере?

4. @ADyson: Извините, что ответил немного поздно. Да, когда я копирую вставленный вывод и помещаю его в cmd, он запускает сервер.

5. Как вы обслуживаете PHP? Возможно, с IIS это Apache? Вероятно, он работает под другой учетной записью пользователя, отличной от той, которую вы используете для входа в систему. Поэтому папка userprofile будет другой.