为PHP安装SSH2扩展需要两个软件包,libssh2和ssh2。两者的最新版本分别为1.4.2和0.12,下载地址分别为和。这里我们可以均下载最新版本,libssh2的源码包为libssh2-1.4.2.tar.gz,ssh2的源码包为ssh2-0.12.tgz。
苍溪网站建设公司成都创新互联公司,苍溪网站设计制作,有大型网站制作公司丰富经验。已为苍溪上1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的苍溪做网站的公司定做!
其次,解压并安装libssh2和ssh2。其中,libssh2需要先安装,ssh2后安装。安装步骤如下:
# tar -zxvf libssh2-1.4.2.tar.gz
# cd libssh2-1.4.2
# ./configure --prefix=/usr/local/libssh2
# make make install
以上为安装libssh2,这里需要记住libssh2的安装目录,因为在安装ssh2的时候还会用到。
# tar -zxvf ssh2-0.12.tgz
# cd ssh2-0.12
# phpize
# ./configure --prefix=/usr/local/ssh2 --with-ssh2=/usr/local/libssh2
# make
执行完以上过程后,在当前目录下的modules目录下会生成一个ssh2.so文件,这就是扩展PHP所需要的,将该文件拷贝到PHP库的存储目录下在修改PHP的配置文件即可。
# cp modules/ssh2.so /usr/lib64/php/modules/
注:PHP库的存储目录可能因系统而异,本博主的机器上是/usr/lib64/php/modules/
# vi /etc/php.ini
# 向该文件中添加内容:extension=ssh2.so
此时为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
最后,我们再通过一个简单的PHP程序来试用SSH2,该程序首先连接远程服务器,然后执行相关操作,最后读取操作执行的返回结果,具体例子代码如下。
?php
$user="user";
$pass="password";
$connection=ssh2_connect('202.112.113.250',22);
ssh2_auth_password($connection,$user,$pass);
$cmd="ps aux";
$ret=ssh2_exec($connection,$cmd);
stream_set_blocking($ret, true);
echo (stream_get_contents($ret));
?
可以的,首先你必须安装了ssh的php扩展。
如果不知道是否已经安装好,可以输入一下代码测试一下。
?php
phpinfo();
?
如果有以上信息,说明安装成功,以下是测试代码
?php
$connection = ssh2_connect('192.168.1.222', 22);
if (!$connection) die('Connection failed');
ssh2_auth_password($connection, 'root', 'root');
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.s", 'w+');
fwrite($stream, "php_ssh_test\nsecond line\n");
fclose($stream);
exit;
$host='127.0.0.1';
$user='root';
$password='root';
$dbName='dbName';
$link=new mysqli($host,$user,$password,$dbName);
if ($link-connect_error){
die("连接失败:".$link-connect_error);
}
$sql="select * from admins";
$res=$link-query($sql);
$data=$res-fetch_all();
var_dump($data);
mysql_connect()函数用于连接数据库,注意,是小写,大写是不行的哦 他有3个参数 第一个:是mysql数据库所在服务器地址,有2种情况,一种是:你的连接数据库的代码文件和mysql数据库,那么,这个参数可以是localhost、127.0.0.1这两种都行,mysql数据库端口默认是3306,连接的时候可以省略,但如果mysql'数据库端口不是这个,那这个参数还要加上端口,比如,localhost:3305、127.0.0.1:3305这样 第二种情况就是,你的程序代码在A服务器,msyql在B服务器,这样,这个参数就是mysql数据库所在服务器的ip地址 第二个参数是mysql数据库的登录用户,比如:root 第三个参数是mysql数据库的登录用户的密码,比如123456,当然,如果mysql数据库相应的登录用户,没有设置密码,那么这个参数可以留空,但不能省略 至于双引号单引号的问题,没有多大差别,单引号双引号都行,如果非要说有差别的话,就是,php会查找双引号内的变量进行编译 给你举个例子: $a = 10; echo '数字是:$a';//这个使用了单引号,那么输出结果就是: 数字是$a echo "数字是:$a";//这个使用了双引号,所以输出结果就是:数字是10 差别就是这个 一般来说,php中,如果引号内没有变量的使用,那就用单引号,这样有利于php的优化
一、最佳方案是在77机器上安装apache和php
二、可以通过管道控制使用telnet登录77号机执行命令并获取结果,ssh连接本人没有做过,telnet方法如下:
$f=fopen("telnet://192.168.0.77","rw");
$s=fgets($fp);
fputs($fp,"root");
$s=fgets($fp);
fputs($fp,"pass");
$s=fgets($fp);
fputs($fp,"df -h");
while(!feof($fp)){
$fp=fgets($fp);
echo $s;
}
fclose($fp);
手机输入真累~~~