从PHP脚本启动和停止npm

好,一个愚蠢的问题。是否可以通过浏览器从PHP脚本启动npm?例如,通过做这样的事情?

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

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

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

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

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

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

masterCow 回答:从PHP脚本启动和停止npm

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

尝试这样:(在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);
本文链接:https://www.f2er.com/2670705.html

大家都在问