我想要一个PHP脚本使shell脚本以root用户身份在远程服务器上执行。脚本需要自己执行sudo命令,因此需要以root身份执行。
任何想法?
我尝试过使用PHP ssh登录并使用sudo执行,但速度太慢了。
(两台服务器上都有Ubuntu 10.04& PHP5)
答案 0 :(得分:2)
除非你运行许多单独的命令,否则SSH不应该慢。如果它很慢,系统处于高负载或您有反向DNS问题。您可以尝试在UseDNS no
中设置/etc/ssh/sshd_config
并重新启动sshd,如果这样可以加快DNS问题。
脚本需要自己执行sudo命令,因此需要以root身份执行。
如果脚本以root身份运行,则不需要使用sudo。
答案 1 :(得分:0)
我最近发布了一个项目,允许PHP获取真正的Bash shell并与之交互。在此处获取:https://github.com/merlinthemagic/MTS
下载后,您只需使用以下代码:
$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1 = $shell->exeCmd('yourFirstCommand');
$return2 = $shell->exeCmd('yourSecondCommand');
//the return will be a string containing the return of the script
echo $return1;
echo $return2;