|
想要在php程序中执行scp拷贝,之前想用system函数
system("scp /from/path/file user@des_host:/to/path/file"),但是始终失败,
但在命令行下直接执行scp /from/path/file user@des_host:/to/path/file 是OK的,
至今找不到原因,如果哪位知道原因,麻烦告知一下。
既然这个方法不行,就换吧,不能一棵树吊死啊。google来,google去,发现原来php里有
现成的函数:
http://us2.php.net/manual/en/book.ssh2.php
只是要装几个包。
方法如下:
http://us2.php.net/manual/en/ssh2.installation.php
首先要装OpenSSL。
因为自己OpenSSL已经装过了,所以直接第二步,下个libssh2直接安装。
我下的是libssh2-0.18,这个都没什么问题。
第三步要用pear安装php的ssh扩展,如果没装pear可以直接下载源码,自己编译。
http://pecl.php.net/package/ssh2
我下的ssh2-0.10.tgz,解压,编译:
tar -zxvf ssh2-0.10.tgz
【注意源码有些问题,要修改。
把480行
#if LIBSSH2_APINO < 200412301450
…
#else
改为
#if (defined(LIBSSH2_APINO) && LIBSSH2_APINO < 200412301450)
…
#else
把1216行:
#if (LIBSSH2_APINO > 200503221619)
改为
#if (defined(LIBSSH2_APINO) && (LIBSSH2_APINO > 200503221619)) ||
(defined(LIBSSH2_VERSION_NUM) && LIBSSH2_VERSION_NUM >= 0×001000)
】
phpize && ./configure --with-ssh2 && make
编译好,到build文件夹中把ssh2.so cp 到自己的php extension dir中
在php.ini中加入 extension=ssh2.so
重启apache
ok |
|
|