PHP通过SSH操作远程服务器(linux)

时间:2020-12-20 06:27:16

在PHP中安装SSH2扩展库,用PHP通过SSH操作远程服务器,在远程服务器上执行命令。

 

一、Linux下为PHP安装SSH2的扩展

 

这里基于linux(centos)发行版,其他发行版同理。

 

首先要确保系统已经安装好了LNMP或者LAMP环境。

 

1.编译安装libssh2

wget http://www.libssh2.org/download/libssh2-1.2.9.tar.gz

tar zxvf libssh2-1.2.9.tar.gz

cd libssh2-1.2.9

./configure&&make&&make install

2.编译安装ssh2(官网http://www.php.net/ssh2)

wget http://pecl.php.net/get/ssh2-0.11.2.tgz

tar zxvf ssh2-0.11.2.tgz

cd ssh2-0.11.2

phpize(如果没有找到该命令,请确定是否安装的是php-dev)

./configure --with-ssh2 --with-php-config=/usr/local/php/bin/php-config

make

cp modules/ssh2.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

echo "extension=ssh2.so" >> /usr/local/php/etc/php.ini (视php.ini的具体位置确定,也可能是/etc/php.ini)

 

 

二、Windows系统下为PHP安装SSH2

 

由于醒醒现在没有Windows下的需求,也没有配置环境,所以也没有测试。

 

下载相关的.dll文件,然后修改php.ini添加相应的extension=php_extname.dll,然后重启WEB服务器加载扩展。

Windows系统下为PHP安装SSH2相关资料可以参考:

http://pecl.php.net/package/ssh2/0.12/windows 

http://cn2.php.net/manual/zh/install.pecl.windows.php

 

 

三、PHP通过SSH连接远程服务器示例代码

 

php登陆ssh执行命令


<?php
$connection=ssh2_connect('172.16.10.3',22);
ssh2_auth_password($connection,$user,$pass);
$cmd="/data/script/start.sh knowledgelib_fix_2";
ssh2_exec($connection,$cmd);
?>