【发布时间】:2012-11-14 11:20:15
【问题描述】:
这快把我逼疯了。我需要让 php 执行一个命令来重新启动在节点中运行的脚本。我正在使用一个永远调用的节点应用程序来运行所述脚本。代码如下:
<?php
echo '<pre>';
echo exec('sudo -u dalton forever restart botti.js 2>&1');
echo '</pre>';
?>
但是,当我运行它时,我得到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
我已经束手无策了。有什么想法吗?
【问题讨论】:
-
是的,
/user/...应该是/usr/...的拼写错误? -
是的,我刚刚解决了这个问题。现在错误是
/usr/bin/env: node: No such file or directory -
exec 函数是一个危险函数,不应在您的 php.ini 中使用和禁用。使用 exec 解决 Web 应用程序的问题不是正确的方法。
-
如果我能想到另一种通过网络重新启动节点脚本的方法,我会这样做。但什么都没有想到。
-
我可能需要补充一点,我所说的适用于 Web 应用程序,当然不适用于控制台应用程序。