Win环境下配置php ssh2扩展
1. 下载 php extension ssh2
下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
根据自己PHP的版本去下载,我使用的是线程安全的,所以下载的是php_ssh2-0.12-5.4-ts-vc9-x86.zip
2. 解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。
3. 将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下。
4. 将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份
5. php.ini中加入 extension=php_ssh2.dll
6. 重启apache,即可使用php执行ssh连接操作了。
查看phpinfo(),是否有显示php_ssh2扩展加载成功,如下图所示。
Linux下php扩展ssh2的安装
1.下载libssh2和ssh2(可先进入到/usr/local/目录)
wget http://www.libssh2.org/download/libssh2-1.4.2.tar.gz
wget http://pecl.php.net/get/ssh2-0.12.tgz
先安装 libssh2 再安装 SSh2
2.解压libssh2并进入目录,进行配置和编译
# tar -zxvf libssh2-1.4.2.tar.gz
# cd libssh2-1.4.2
# ./configure --prefix=/usr/local/libssh2
# make && make install
3.以上为安装libssh2,这里需要记住libssh2的安装目录,因为在安装ssh2的时候还会用到,接下来安装ssh2。
# tar -zxvf ssh2-0.12.tgz
# cd ssh2-0.12
# phpize
# ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2 --with-php-config=/server/abchosting/php/bin/php-config(此处为自身环境下php配置文件,可通过find / -name php-config 进行查找)
# make && make install
php.ini配置文件增加extension=ssh2.so
/server/abchosting/php/etc/php.ini
安装完成之后SSH2扩展在 /server/abchosting/php/etc/php.ini中加入
extension=ssh2.so
重启web服务
service httpd restart
测试
$host='';//服务器的ip
$user='zhanggaowei';//用户名
$passwd='';//密码
// 链接远程服务器
$connection = ssh2_connect($host, 53263);
if (!$connection) die('connection to '.$host.':22 failed');
echo 'connection OK
';
// 获取验证方式并打印
$auth_methods = ssh2_auth_none($connection, $user);
if (in_array('password', $auth_methods ))
{
// 通过password方式登录远程服务器
if (ssh2_auth_password($connection, $user, $passwd))
{
echo $user.' login OK
';
$stream = ssh2_exec($connection, "df&&ls&&cd /&&ls&&cd data/apps/&&ls&&mkdir h5_vue_cp&&cd h5_vue_cp&&touch a.txt&&ls"); // 一条一条地执行linux命令
stream_set_blocking($stream, true); // 获取执行pwd后的内容
if ($stream === FALSE) die("pwd failed");
echo stream_get_contents($stream).'
';
}
else
{
die( $user.' login Failed
');
}
}