【发布时间】:2017-05-06 14:55:49
【问题描述】:
我正在尝试创建一个 tmux 会话并通过 php 在其中运行一些其他命令。
当我从 web 运行脚本时,它不会执行命令,但是当我从终端使用“php test.php”运行脚本时,它可以工作。
我尝试以 sudo 运行 cmds 并关闭 www-data 的 sudo pass。但是命令仍然不会执行。
脚本:
$array_output = array();
$cmd = "sudo tmux new-session -s Server-17 -d ENTER 2>&1";
$output = shell_exec($cmd);
array_push($array_output, $output);
$cmd = "sudo tmux send -t Server-17 'cd /home/Minecraft/Servers/1/17/' ENTER 2>&1";
$output = shell_exec($cmd);
array_push($array_output, $output);
$cmd = "sudo tmux send -t Server-17 'chmod +x start_script.sh' ENTER 2>&1";
$output = shell_exec($cmd);
array_push($array_output, $output);
$cmd = "sudo tmux send -t Server-17 'sh start_script.sh' ENTER 2>&1";
$output = shell_exec($cmd);
array_push($array_output, $output);
var_dump($array_output);
输出:
array (size=4)
0 => null
1 => string 'failed to connect to server
' (length=28)
2 => string 'failed to connect to server
' (length=28)
3 => string 'failed to connect to server
' (length=28)
【问题讨论】:
-
你的用户有执行权限吗?这很可能是您需要授予访问权限的 apache 用户。
-
它具有访问权限,我已授予 www-data 用户访问权限以在没有密码的情况下使用 sudo