在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);
?>