首页 > 解决方案 > sudo 的行为与正常的脚本执行不同

问题描述

我有一个重新启动 docker 容器的脚本。

  1. 如果我以 root 身份执行该脚本,它将完美运行。
  2. 我已设置 sudoers,因此其他用户不需要密码即可以 root 身份执行此脚本
  3. 如果我单击一个按钮,我希望我的 webappliaction(基于 php)能够执行它

但问题就在这里。

我的 PHP 文件包括:

<?php
    echo passthru("sudo /volume1/web/VPN/vpnSwitchLocation.sh $location 2>&1");
?>

脚本无需密码即可执行!但在脚本中有一个 docker 命令

docker run ...

当我从 php 调用脚本时,会发生此错误:

docker: command not found

但是,如果我在没有 sudo 的情况下执行它(从 shell 手动),它工作得非常好。所以我的问题是: 如何在 PHP 中使用 sudo 执行包含 docker 命令的脚本?

此致

标签: phpdockershellsudosynology

解决方案


推荐阅读