1.win7上安装php
2.win7上安装ssh插件
下载 php extension ssh2
下载地址 http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
根据自己PHP的版本去下载,
3.下载解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb。
4.3. 将 php_ssh.dll、php_ssh2.pdb 放到你的 php对应版本 扩展目录下 php/ext/ 下。
5.4. 将libssh2.dll 复制到 c:/windows/system32 和c:/windows/syswow64 各一份
6.在php.ini配置文件中加入一行 extension=php_ssh2.dll
7.6重启php服务器,即可使用php执行ssh连接操作了。
查看phpinfo(),看是否有显示ssh2扩展,如显示,则成功
//远程连接ssh端
$connection = ssh2_connect('192.168.2.80', 22);
ssh2_auth_password($connection, 'root', 'root123');
//远程执行ssh端命令
$stdout_stream = ssh2_exec($connection, 'touch /home/test/test.txt');
//从本地复制文件到ssh端
//ssh2_scp_send($connection, 'd:test1.txt', '/home/test/test1.txt', 0644);默认权限为0644,返回值为bool值,true或false.
//从ssh端复制文件到本地
ssh2_scp_recv($connection, '/home/test/test.txt', 'd:test.txt');
首先PHP有两种版本。一种是PHP-ts,一种是PHP-nts
ts(Thread-Safety)即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染php以ISAPI方式加载的时候选择这个版本.,php以ISAPI方式加载的时候选择这个版本.
nts(None-Thread Safe)即非线程安全,就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的是脏数据。php以fast cgi方式运行的时候选择这个版本,具有更好的性能;
ISAPI(Internet Server Application Programming Interface), 通常是指被http服务器所加载,以服务器的模块形式运行,由微 软提出,故只能在win平台上运行,例如win下的apache,iis[据说用fast cgi 方式工作更稳定],而linux上php则以 Apache模块或者php-fpm的方式运行。
cgi(Common Gateway Interface):HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,说白了,cig就是一种后台语言,其可以和服务器之间进行通讯。此时的php是作为一个独立的程序运行的。特点就是耗费内存。
fast cgi.是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork.这种方式是与语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。
如何选择:
通常win下php和apache组合,以isapi的方式运行,而linux下可以是apche+php,php常常作为apache的模块,而nginx+php时,phpfast cgi的方式,即php-fpm的方式跑。
昨天安装ssh2扩展时我选择的php版本是nts的。结果发现运行数据分析时,总是弄到一半就出错。然后我改为ts版本,就能运行。
所以安装ssh2扩展时,如果你以后服务器上还得运行类似数据分析这种多线程的程序,就选择ts版本的ssh2扩展。