Как запустить команду PM2 из PHP API?

В настоящее время я имею дело с ситуацией, когда я хочу иметь возможность запускать сценарий оболочки или команду из API PHP, что звучит довольно просто, используя exect () или shell_exec (). Проблема в том, что как только я пытаюсь использовать какую-либо библиотеку, пользователь «apache» не может найти библиотеки, которые мне нужны, например, node или pm2.

Я установил node, nvm и pm2 как «ec2-user» в моем amazon linux box, поэтому в настоящее время я пытаюсь, чтобы apache запускал команды «as» ec2-user с этой строкой:

sudo -u ec2-user /usr/local/bin/node -v

что правильно отображает информацию, которую я хотел:

v9.4.0

но когда я пытаюсь с pm2 с этой строкой:

sudo -u ec2-user /usr/local/bin/pm2 -v

Я получаю следующее сообщение:

/usr/bin/env: node: No such file or directory

Если я использую ту же стратегию, я получу это:

sudo -u ec2-user which pm2
which: no pm2 in (/sbin:/bin:/usr/sbin:/usr/bin)

Но если я запускаю его как пользователь ec2, я получаю другой вывод:

[ec2-user@ip-xx-x-x-xx ~]$ which pm2
~/.nvm/versions/node/v9.4.0/bin/pm2

Есть ли какие-либо обходные пути или символическая ссылка или псевдоним, которые мне нужно обновить, чтобы сделать эту работу?

Кстати, у меня есть это в / usr / local / bin (я не знаю, помогает ли это):

lrwxrwxrwx  1 root     root         31 Apr  1 07:13 pm2 -> ../lib/node_modules/pm2/bin/pm2
lrwxrwxrwx  1 root     root         35 Apr  1 07:13 pm2-dev -> ../lib/node_modules/pm2/bin/pm2-dev
lrwxrwxrwx  1 root     root         38 Apr  1 07:13 pm2-docker -> ../lib/node_modules/pm2/bin/pm2-docker
lrwxrwxrwx  1 root     root         39 Apr  1 07:13 pm2-runtime -> ../lib/node_modules/pm2/bin/pm2-runtime

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]