登录  /  注册

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

angryTom
发布: 2019-10-31 18:02:39
原创
4730人浏览过

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

安装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中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:www.hxinq.com网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号