试图在php上安装ssh2


Trying to install ssh2 on php

首先我运行PHP 5.3.3, CentOS 5.7 (2.6.18-274.3.1.el5xen)

其次,我根本不知道我在做什么……对不起!

首先,我从http://www.libssh2.org/安装了libssh2。运行configure, make, make install。我不太明白这些东西,但按照网上的说明似乎是有效的。

然后跑了

pecl install ssh2

一切顺利。

按照提示将相关的扩展行添加到php.ini中。重新启动apache:

service httpd restart

所有的好。

但是在phpInfo()中找不到任何ssh的引用。

尝试

php -m | grep ssh2

并得到以下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: undefined symbol: libssh2_sftp_readdir_ex in Unknown on line 0

我做错了什么/错过了什么,我该如何修复它?

我在CentOs 6.3中遇到了类似的问题,我遵循的指南有点不同。

1)安装所需的软件包:

yum install automake make php-devel libtool openssl-devel gcc++ gcc

2)更改目录(/usr/lib/php,如果您有32位操作系统):

cd /usr/lib64/php

3)下载源码(截止到2013/02/28,点击这里查看最新):

wget http://pecl.php.net/get/ssh2-0.12.tgz

4)创建一个构建目录(我不喜欢我的系统混乱)并解压缩包:

mkdir build-dir
mv ssh2-0.12.tgz build-dir
cd build-dir
tar xzvf ssh2-0.12.tgz

5)准备编译步骤并编译:

phpize
./configure –with-ssh2
make

6)复制系统中的模块(如果您有32位操作系统,则为/usr/lib/php/modules/ssh2.so):

cp modules/ssh2.so /usr/lib64/php/modules/ssh2.so

7)更改配置并将这行添加到/etc/php.d/ssh2.ini(尽管我不需要在我的设置中这样做,也许是因为我过去已经这样做了):

extension=ssh2.so

如果你想,你可以删除构建目录:

cd ../../
rm -f build-dir