使用php创建连接外部服务器的接口(并执行shell命令)


create interface to connect external server using php (and execute shell commands)

我有4个服务器用于web、dns、邮件和数据库。我想创建一个接口,使用服务器的IP(可能是端口)、用户名和密码远程连接这些服务器(稍后,在下一步中执行linux/winsows命令,如关闭/重置服务器、停止/启动IIS、停止/开始邮件服务器…)

有可能或任何链接可以帮助我吗?

您可以使用GeoPhoenix所说的ssh模块。你可以尝试另一种使用curl的方法。我假设您使用的是php,所以考虑下面的例子,

function check_dserver_process(){
    if(!$ch)
       $ch = curl_init();

        $options=array( CURLOPT_URL => "http://122.165.212.22:81/mysite/init.php",
                        CURLOPT_FRESH_CONNECT => 1,
                        CURLOPT_RETURNTRANSFER => 1, 
                        CURLOPT_FORBID_REUSE =>1,
                        CURLOPT_USERAGENT => "Mozilla/4.0 (compatible; MSIE 5.01;Windows NT 5.0)"
                     );
        curl_setopt_array($ch,$options);
        $result=curl_exec($ch);  
        $op=($result===false ? curl_error($ch) : $result);
        curl_close($ch);
        return $op;
}  

如果您调用上面的函数,它将从给定的url获取init.php的输出。因此,您可以使用exec()函数从init.php运行自己的命令。在init.php中启动该过程之前,请确保请求来自您的一个ip。

socket是使用服务器-客户端模型来实现这一点的一种方法,但我不建议这样做。
SSH是另一种安全连接到服务器并执行命令的方法,您可以在本地计算机上创建CGI脚本,并使用表单/按钮等一次管理一台服务器。请注意,如果服务器端使用linux分发版,则必须具有openssh服务器包。