2009-02-18 154 views
10

我试图在CentOS 5(RHEL 5的一个分支)上安装此 http://fr2.php.net/manual/en/book.ssh2.php为PHP安装PECL SSH2扩展

我安装libssh2(YUM安装libssh2)至极位于/ usr/lib中,当我安装SSH2扩展(通过PECL安装-f SSH2)我得到这个消息

checking for ssh2 files in default path... not found configure: error: The required libssh2 library was not found. You can obtain that package from http://sourceforge.net/projects/libssh2/ ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr' failed

如果我设置/ usr/lib,我得到相同的信息

ERROR: `/tmp/pear/download/ssh2-0.11.0/configure --with-ssh2=/usr/lib' failed

问题在哪里?

回答

23

通过tar.gz从http://sourceforge.net/projects/libssh2/安装libssh2有很多帮助(--with-ssh2 =/usr/local/include /)。

但是“yum install libssh2-devel”是个好主意。

+0

你从哪个版本库中获取?我在默认或Atomic中找不到它。 – 2012-01-19 18:18:04

+1

没关系,我在http://repoforge.org/ – 2012-01-19 20:00:33

0

我有这个问题:

我在一个Pair.com“高级”托管帐户,所以我什么我被允许做一些有限的。我不认为我可以yum也不​​也没有任何其他预编译的软件包。

我已经下载并编译了libssh2。在pecl过程中,它会询问库的位置。它在“〜/ usr/local/lib”中,我尝试了几种变体,包括完全限定。但我一直得到同样的错误。

该错误消息没有明确说明它正在寻找哪个文件。 libssh2.so在该目录中。我知道输出应该是ssh2.so.我想知道是否应该有一个ss2.something,或libssh.nothing?

因此我修正了它。在我的情况下,在编译libssh2之后,我下载了PEAR tarball。技巧是:

./configure --with-ssh2=<libssh2 location> --prefix=<libssh2 location> 

另一个诀窍是,由于Pair.com运行FreeBSD,我必须做一个“CD”。在./configure命令之后。否则,make会产生“Permission denied”错误。显然,这在所有* nix BSD口味中都是必需的。

6
$ sudo pecl channel-update pecl.php.net 
$ sudo apt-get install libssh2-1-dev 
$ sudo pecl install -a ssh2-0.12 
$ echo 'extension=ssh2.so' | sudo tee /etc/php5/mods-available/ssh2.ini > /dev/null 
$ sudo php5enmod ssh2 
2

yum install libssh2-devel并没有为我工作:

无包libssh2-devel的提供。

所以我从rpmfind下载的rpm包,并与rpm -ivh

安装刚刚添加extension=ssh2.so/etc/php.d/ssh2.ini

1

我在CentOS运行后,所有这些答案对我来说整个解决方案。我跟着these instructions

$ sudo yum install -y gcc php-devel php-pear libssh2 libssh2-devel 

php-devel不会安装,抱怨冲突。我搜索yum来查找PHP devel包我可

$> yum search php|grep devel 
... 
php55u-devel.x86_64 : Files needed for building PHP extensions 
php56u-devel.x86_64 : Files needed for building PHP extensions 
php70u-devel.x86_64 : Files needed for building PHP extensions 
... 

于是我就

$> sudo yum install -y php56u-devel 

它干净安装。然后,继续说明,我跑

$ pecl install -f ssh2 

然后编译。然后,我添加扩展到PHP

$ touch /etc/php.d/ssh2.ini 
$ echo extension=ssh2.so > /etc/php.d/ssh2.ini 

而且我的系统上,而不是

$ /etc/init.d/httpd restart 

我不得不这样做

$ sudo /bin/systemctl restart php-fpm.service 

所以这是所有安装步骤。最后再确认一下:

$> php -m|grep ssh2 
ssh2