从PHP脚本启动和停止npm

从PHP脚本启动和停止npm,php,npm,centos7,forever,Php,Npm,Centos7,Forever,好吧,一个愚蠢的问题。是否可以通过浏览器从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.

好吧,一个愚蠢的问题。是否可以通过浏览器从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
)执行脚本,它会工作,但当我尝试从浏览器执行脚本时不会工作。我猜这与权利和特权有关,所以我可能没有采取正确的方式


有没有一种推荐的方法?我之所以需要这样做,是为了能够随意启动和停止节点服务器,而无需以root用户身份登录控制台。

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

试着这样做:(在Windows服务器上工作)

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

exec("export PATH=/usr/local/bin && run forever);

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

试着这样做:(在Windows服务器上工作)

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

exec("export PATH=/usr/local/bin && run forever);

很抱歉这么晚才回复。我已尝试通过脚本
echo exec(“…”
)导出它,但它仍然不起作用。很抱歉响应太晚。我尝试通过脚本echo exec(“…”)导出它,但它仍然不起作用。