好,一个愚蠢的问题。是否可以通过浏览器从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用户身份登录到控制台。
您必须使用执行文件的完整路径。
尝试这样:(在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);