www-data 组中的用户找不到命令

www-data 组中的用户找不到命令

我安装了一个新应用程序,希望通过 php 脚本(系统和 exec 函数)运行它,以便其他人可以通过浏览器运行它。我尝试在终端中以“php shell.php”的位置运行该 php 脚本,它可以运行,但是,当我访问此 php 页面时,它显示未找到命令。当我登录新帐户(安装新应用程序后创建)和访客帐户时,它也可以在终端中运行。

我认为这可能是由PATH设置引起的,但为什么新帐户可以正确运行它(这可能证明PATH是全局的)?

答案1

PATH 仅设置为整个系统的最小值,并且可能不包括您的应用程序所在的位置。您需要为 Web 服务器设置 PATH 以影响您的应用程序如何通过 Web 脚本运行。

您可能应该让您的 PHP 脚本在调用“system”或“exec”之前将所需的目录添加到 PATH。这样可以将更改限制在这一脚本中。

另一个可能更可取的选项是仅通过其完整路径名调用应用程序,这样您就不必搜索它的路径。因此,如果它在 /usr/local/bin 中,则只需执行 /usr/local/bin/myapp。

相关内容