Команда Node Module из PHP exec () не работает

В терминале это работает нормально и возвращает то, что ожидается:

/Users/me/Desktop/Clients/IM/apps/node_modules/.bin/mjml newslettercode.html

Это также отлично работает с Терминалом

node node_modules/.bin/mjml newslettercode.html

Это также отлично работает с Терминалом

node_modules/.bin/mjml newslettercode.html

Я использую MAMP и домен в качестве своей разработки.

Из моего файла .php в моем браузере я получаю ошибку exec () 127 и ничего не выводит.

Этот тестовый код:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

define('ROOT_DIR', realpath(__DIR__.'/..'));

$file =  ROOT_DIR.'/apps/node_modules/.bin/mjml newslettercode.html';

exec($file, $output, $responseCode);

print_r ($file);

echo "<pre>";
print_r($output);
echo "</pre>";

echo "<pre>";
print_r($responseCode);
echo "</pre>";

Возвращает это:

/Users/me/Desktop/Clients/IM/apps/node_modules/.bin/mjml newslettercode.html

Array
(
)

127

Я предполагаю, что узел не работает на моем хосте MAMP? я не уверен .. любая помощь будет оценена.

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

HamzaNig 06.12.2018 18:56

попробуйте exec ('/ usr / bin / node node_modules / .bin / mjml newslettercode.html')

HamzaNig 06.12.2018 18:57

@HamzaNig, я пробовал оба и не работал. Примечание ... я заглянул в 'usr / bin' и не увидел ни одного "узла"

Joe 06.12.2018 19:13

@HamzaNig изменил его на '/ usr / local / bin / node', и это сработало ... спасибо, что указали мне в правильном направлении ... теперь интересно, как это будет переводиться / работать при нажатии на продакшн.

Joe 06.12.2018 19:15

да, здорово, тогда добро пожаловать, брат, обычно / usr / bin / node - это путь по умолчанию, но на вашей платформе такие же изменены, хорошо, попробуйте, хорошая работа, я добавлю его как ответ, чтобы помочь людям напрямую, без поиска комментариев

HamzaNig 07.12.2018 09:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
5
643
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема была в пути к приложению. Php не может найти приложение, используя только node /../..php . Попробуйте использовать команду, указанную ниже, которая должна выполнить работу:

@HamzaNig : /usr/bin/node mostly is the default path

@Joe : /usr/local/bin/node is the default path on his platform

Другие вопросы по теме