1

我在 windows 服务器上安装了 PM2 和 node.js 来运行JSMTProxy-master脚本。

运行代理的命令是: (pm2 start "JSMTProxy-master\mtproxy.js" -i max) 并且它在 CMD 窗口中成功执行,没有问题。

现在我想通过 PHP 和 exec 执行这个命令。

我试过这个:

exec ('pm2 start "JSMTProxy-master\mtproxy.js" -i max');

或者这个:(刚刚在taskmgr中出现了cmd.exe)

exec ('c:\WINDOWS\system32\cmd.exe /c START "pm2 start c:\mypath\JSMTProxy-master\mtproxy.js -i max"');

或这个:

exec ('c:\WINDOWS\system32\cmd.exe /c START "JSMTProxy-master\mtp-run.bat"');

这些不起作用,没有任何反应。没有错误,taskmgr中没有出现任何进程。

它应该如何由 exec 运行?

笔记。我已经安装了 PHP 并且运行良好。

4

1 回答 1

0

经过多次尝试不同的方法,我终于找到了问题所在。"PM2" 在 PHP exec 下不执行。它必须具有 exe 文件的完整路径。

我改变了我的命令如下,它工作:

shell_exec('C:\Users\Administrator\AppData\Roaming\npm\pm2.cmd start "C:\mypath\JSMTProxy-master\mtproxy.js" -i max')
于 2020-03-10T17:02:02.503 回答