安装ssh2扩展
1. 安装libssh2
download the libssh2 package from http://libssh2.org,command as following
wget https://libssh2.org/download/libssh2-1.8.0.tar.gz
tar vxzf libssh2-1.8.0.tar.gz
cd libssh2-1.8.0
./configure --prefix=/usr/local/libssh2
make && make install
这里需要记住libssh2的安装目录,因为在安装ssh2的时候还会用到。
2.安装ssh2
download the php-ssh2 package from http://pecl.php.net/package/ssh2
wget http://pecl.php.net/get/ssh2-1.1.2.tgz
tar vxzf ssh2-1.1.2.tgz
cd ssh2-1.1.2
phpize
./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2(libssh2的路径)
make && make install
3.修改配置文件php.ini
#查找php.ini位置
sudo find / -name 'php.ini'
编辑php.ini文件,按下表修改配置项的值,重启php
添加 “extension=/usr/lib64/php/modules/ssh2.so” 到 php.ini
vi/vim 编辑器 搜索关键字
/关键字 ,回车即可。此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置;
?关键字,回车即可。此为从文档挡圈位置向上查找关键字,按n键向上查找关键字;
4.重启PHP
systemctl start php-fpm.service
此时为PHP扩展SSH2就已经完成了,为了验证是否安装成功,我们可以通过执行一下命令来验证。
php -i|grep ssh2
#结果如下:
Registered PHP Streams => php, file, http, ftp, compress.bzip2, compress.zlib, https, ftps, ssh2.shell, ssh2.exec, ssh2.tunnel, ssh2.scp, ssh2.sftp
ssh2
libssh2 version => 1.4.2
banner => SSH-2.0-libssh2_1.4.2
其他配置
编辑/etc/php.ini文件,按下表修改配置项的值,重启php。
php.ini
名称 值 注释
max_execution_time 1800 每个脚本的最大执行时间,单位秒
date.timezone “Asia/Shanghai” 时区
session.gc_maxlifetime 10800 会话最大生命时间(单位秒)
pdo_mysql.default_socket /tmp/mysql.sock
$connection = ssh2_connect(HOST,PORT);
if(!ssh2_auth_password($connection,USER,PASSWORD)){
$this->error('服务器的账号或密码错误');
}
//执行的命令
$stream = ssh2_exec($connection, 'python '.TOP_PAY_PATH.');
stream_set_blocking( $stream, true );//阻塞模式
$output = '<pre>'.stream_get_contents($stream).'</pre>';
$this->assign('output',$output);
fclose($stream);