如何从php脚本执行shell命令

Ken*_*ogt 8 php shell-exec

我想创建一个php脚本来执行shell命令并返回其输出.服务器需要私钥.当我第一次决定测试时,我创建了这个:

<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)

这很好用.但当我改变$command命令时,我真的想要运行:

$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
Run Code Online (Sandbox Code Playgroud)

它给了我这个输出:

You need root privileges to run this script
Run Code Online (Sandbox Code Playgroud)

我的猜测是我需要使用sudo.当然,这需要将pem文件放在服务器上的某个位置.假设我这样做,究竟应该$command是什么?我应该使用shell_exec(),exec(),system()或其他什么东西?

phi*_*hag 4

使用哪个 php 函数来启动脚本并不重要 - 缺少的是您的用户帐户的授权。

使用 sudo (通过 预先配置 Web 服务器用户以运行确切的命令而无需密码visudo,并在命令前加上 前缀sudo)或设置一个自行执行命令的 setuid 脚本。