• 技术文章 >后端开发 >php教程

    php连接服务器进行服务器命令操作

    angryTomangryTom2019-10-31 18:02:39原创3029

    安装PHP SSH2扩展

    ### ubuntu安装php链接服务器需要php扩展:

    sudo apt-get install libssh2-1 php-ssh2

    在Windows环境下安装

    下载 php extension ssh2下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/

    根据自己PHP的版本去下载,我使用的WAMPSERVER2.5(64bit),PHP版本为5.5.12,是线程安全的,
    所以下载的是php_ssh2-0.12-5.5-ts-vc11-x64.zip

    1、解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。

    2、将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。

    3、将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份

    4、php.ini中加入 extension=php_ssh2.dll

    5、重启apache,即可使用php执行ssh连接操作了。

    6、查看phpinfo(),是否有显示php_ssh2扩展加载成功。

    在linux环境下安装

    PHP SSH2扩展需要的依赖库

    openssl: 加密算法集合,C语言实现

    libssh2: ssh2协议库库,C语言实现

    PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数

    依赖关系:PECL/ssh2 –> libssh2 –> openssl

    安装需要的扩展包

    安装libssh2

    wget  http://www.libssh2.org/download/libssh2-1.4.2.tar.gz  
    tar zxf libssh2-1.4.2.tar.gz  
    cd libssh2-1.4.2  
    ./configure && make && make install

    安装PECL/ssh2

    wget  http://pecl.php.net/get/ssh2-0.11.3.tgz  
    cd ssh2-0.11.3  
    phpize   (如果报错命令没有找到,apt-get install php5-dev)  
    ./configure —with-ssh2 && make && make install

    修改php配置信息

    cd  /etc/php5/cgi  
    vim  php.ini

    添加项:extension=/usr/lib/php5/20090626/ssh2.so
    ssh2.so是编译ssh2时得到的模块,上面是模块的位置。

    cd  /etc/php5/cli  
    vim  php.ini

    添加项:extension=/usr/lib/php5/20090626/ssh2.so
    ssh2.so是编译ssh2时得到的模块,上面是模块的位置。

    重启web服务器

    /etc/init.d/lighttpd restart

    查看是否加载了ssh2

    [root@localhost ~]php -m | grep s

    php代码使用

    public function actionTestServer()
    {
        //登陆linux的ssh2用户名
        $ssh_user='root';
        //登陆linux的密码
        $ssh_pwd='';
        //默认端口号22
        $ssh_port='22';
        //服务器IP地址
        $ssh_host='120.77.62.13';
        //先测试拓展是否安装并开启
        if(!function_exists("ssh2_connect")){
            exit('SSH扩展没有安装或者没有安装成功');
        }
        //建立ssh2连接
        $ssh2 = ssh2_connect($ssh_host, $ssh_port);
        if(!$ssh2){
            exit('连接服务器失败');
        }else{
            echo '成功连接上了服务器';
        }
        //连接成功后进行密码验证,没验证无法进行其他操作。
        if(!ssh2_auth_password( $ssh2, $ssh_user,  $ssh_pwd )){
            return false;
        }
        //shell脚本语句
        $e="/etc/init.d/nginx restart >> /tmp/nginx_restart_".date('Ymd').".log";
        //通过ssh2_exec执行语句
        ssh2_exec($ssh2, $e);
    }

    更多PHP相关知识,请访问PHP中文网

    以上就是php连接服务器进行服务器命令操作的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php ssh
    上一篇:PHP 核心特性之命名空间 下一篇:PHP 核心特性之匿名函数
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• ssh框架原理及流程是什么• navicat如何设置SSH属性• 宝塔面板远程ssh• 什么是ssh框架原理及流程
    1/1

    PHP中文网