这真让我抓狂.我需要php执行一个命令来重启节点中运行的脚本.我正在使用一个名为forever的节点应用来运行所述脚本.代码如下:
<?php
echo '<pre>';
echo exec('sudo -u dalton forever restart botti.js 2>&1');
echo '</pre>';
?>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时,我得到了 sudo: forever: command not found
接下来,我尝试which forever和type forever,这两者给我:
forever: /usr/local/bin/forever
我编辑我的代码:
echo exec('sudo -u dalton /usr/local/bin/forever restart botti.js 2>&1');
编辑:输入错误后,错误现在是:
/usr/bin/env: node: No such file or directory
我的智慧结束了.有任何想法吗?
由于forever命令只运行,当你给出完整路径时,我怀疑,这/usr/local/bin不在你的PATH环境变量中,它包含所有目录,默认情况下搜索可执行命令,由:(我怀疑你在Linux上,可能)与其他操作系统不同)
我怀疑是forever打电话/usr/bin/env node.错误env可能是由于node你PATH身边的错误造成的.
要在php中设置PATH,请使用putenv('PATH=<your path here>');
eg追加/usr/local/bin:
putenv('PATH=' . getenv('PATH') . ':/usr/local/bin')
Run Code Online (Sandbox Code Playgroud)
这也可能是一个sudo问题,请尝试-E(保留环境)切换.
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |