本文目录一览:
检查使用PHP SSH2远程目录问题,怎么解决
为PHP安装SSH2扩展需要两个软件包,libssh2和ssh2。两者的最新版本分别为1.4.2和0.12,下载地址分别为和。这里我们可以均下载最新版本,libssh2的源码包为libssh2-1.4.2.tar.gz,ssh2的源码包为ssh2-0.12.tgz。
其次,解压并安装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));
?
如何通过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);
手机输入真累~~~
php点击按钮执行ssh命令登陆路由器并执行命令
代码如下:
?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?
如何执行SSH命令通过PHP
指令就是你执行的shell命令 比如我要运行php 输入: php test.php 就会执行 第一个php是执行程序的名称