在PHP中安装SSH2扩展库,用PHP通过SSH操作远程服务器,在远程服务器上执行命令。
这里基于linux(centos)发行版,其他发行版同理。
首先要确保系统已经安装好了LNMP或者LAMP环境。Nigix下使用的是php-fpm驱动的。
whereis php.ini 就可以快速找到自己的php配置文件
1、确认你的linux有安装mcrypt库,如果没有安装执行以下步骤
[root@test-206 ~]# yum list installed|grep mcrypt
libmcrypt.x86_64 2.5.8-4.el5.centos installed
libmcrypt-devel.x86_64 2.5.8-4.el5.centos installed
mcrypt.x86_64 2.6.8-1.el5 installed
yum install libmcrypt libmcrypt-devel mcrypt
2、编译安装libssh2
wget http://www.libssh2.org/download/libssh2-1.6.0.tar.gz
tar zxvf libssh2-1.2.9.tar.gz
cd libssh2-1.2.9
./configure&&make&&make install
3、编译安装ssh2(官网http://www.php.net/ssh2)
各种版本
http://pecl.php.net/package/ssh2
有时候11的版本,有时候13的版本好用,我在不同的机器,成功过不同的版本,搞不懂。如果发现不行,你也换个版本测试一下
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
自己编译的php-fpm 安装的时候
/data1/server/php-cgi/bin/phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
./configure --with-ssh2 --with-php-config=/data1/server/php-cgi/bin/php-config
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)
如果不确定,那么写一个页面info.php
可以快速找到自己的配置文件地址。