从PHP脚本启动和停止npm

问题描述 投票:0回答:1

好,一个愚蠢的问题。是否可以通过浏览器从PHP脚本启动npm?例如,通过执行类似的操作?

// start.php
echo exec('npm run forever');
die();

然后,停止节点,如下所示:

// stop.php
echo exec('npm run stopforever');
die();

我尝试在php脚本(/var/www/mysite.com/)和packacge.json中都设置绝对路径,但是它没有用。

如果我尝试通过终端(php -q /var/www/mysite.com/start.php)执行脚本,则可以使用,但是当我尝试从浏览器中执行脚本时不起作用。我猜想它与权利和特权有关,所以我可能不会以正确的方式进行。

甚至还有推荐的方法吗?我需要它的原因是能够随意启动和停止Node服务器,而无需以root用户身份登录到控制台。

php npm forever
1个回答
0
投票

您必须使用执行文件的完整路径。

尝试这样:(在Windows Server上工作)

shell_exec('C:\Users\Administrator\AppData\Roaming\npm\pm2.cmd');

如果您是通过nginx或apache运行php(例如,访问url example.com/index.php),则有时需要导出PATH

exec("export PATH=/usr/local/bin && run forever);
© www.soinside.com 2019 - 2024. All rights reserved.