我正试图在Centos 5(RHEL 5的一个分支)上安装这个http://fr2.php.net/manual/en/book.ssh2.php。
我安装了libssh 2(yum install libssh 2),它位于/usr/lib中,当我安装SSH 2扩展(通过pecl install -f ssh 2)时,我得到以下消息
正在检查默认路径中的ssh 2文件...未找到配置:错误:找不到所需的libssh 2库。您可以从http://sourceforge.net/projects/libssh2/获取该软件包错误:/tmp/pear/download/ssh 2 -0.11.0/configure --with-ssh 2 =/usr'失败 如果我设置/usr/lib,我会得到同样的消息 错误:
/tmp/pear/download/ssh 2 -0.11.0/configure --with-ssh 2 =/usr/lib'失败
问题出在哪里?
7条答案
按热度按时间gblwokeq1#
从http://sourceforge.net/projects/libssh2/通过tar.gz安装libssh 2非常有用(--with-ssh 2 =/usr/local/include/)。
但是:
字符串
是个更好的主意
4szc88ey2#
字符串
w41d8nur3#
这是来自@serghei的answer+来自@avn的修改,来自**PHP 7.x* 的工作解决方案下的注解。
字符串
关于线路:
型
确保路径
/etc/php/7.2/mods-available
是有效的,并且与你的php版本匹配。jckbn6z74#
yum install libssh2-devel
不适合我:没有可用的libssh 2-devel包。
所以我从rpmfind下载了rpm软件包,并与
rpm -ivh
一起安装之后,刚刚添加了
extension=ssh2.so
到/etc/php.d/ssh2.ini
3htmauhk5#
我在Centos上运行,这些答案对我来说都不是完整的解决方案。these instructions:
字符串
但是
php-devel
无法安装,抱怨冲突。我搜索了yum,想找到我有哪些可用的phpdevel包型
所以我就跑了
型
而且安装得很干净。然后,继续按照指示,我跑
型
它编译。然后我把扩展添加到php
型
在我的系统里
型
我不得不
型
这就是安装的所有步骤。最后确认一下:
型
krugob8w6#
我遇到了这个问题:
我使用的是Pair.com“高级”托管帐户,所以我可以做的事情有点受限。我不认为我可以
yum
或aptitude
或任何其他预编译包。我下载并编译了libssh 2。在
pecl
过程中,它会询问库的位置。它位于“~/usr/local/lib”中,我尝试了几种变体,包括完全限定的。但我不断得到同样的错误。错误信息没有准确地说明它要查找的文件。libssh2.so在该目录中。我知道输出应该是ssh2.so。我想知道是否应该有ss2.something,或者libssh.nothing?
我就这样解决了。在我的例子中,编译libssh 2之后,我下载了PEARtarball。诀窍是:
字符串
另一个技巧是,由于Pair.com运行的是FreeBSD,所以我必须在./configure命令之后添加一个“cd .”。否则,make将产生“Permission denied”错误。显然,这是必要的所有 *nix BSD口味。
fcipmucu7#
错误:
字符串
可以在源代码中看到。
代码中的逻辑显示,如果在
/usr/local
、/usr
或可选--with-ssh2=[DIR]
指令提供的路径中找不到/include/libssh2.h
,则会抛出此错误。换句话说,在不定制指令的情况下,它需要找到以下其中之一:型
如果它通过了这个检查,它就假定它可以在
/usr/local/lib
或/usr/lib
找到libssh2lib
。希望上面的信息足以帮助人们调试他们的问题。我自己的情况相当具体和不寻常(macOS与Homebrew在一个自定义安装路径),但如果它可以帮助其他人,这里是我可怕的黑客解决方案。工作完美lol
简而言之,我创建了两个临时符号链接,以便pecl可以在它期望的位置找到ssh2。
型