Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为PHP安装PECL SSH2扩展_Php_Ssh - Fatal编程技术网

为PHP安装PECL SSH2扩展

为PHP安装PECL SSH2扩展,php,ssh,Php,Ssh,我正在尝试安装这个 在Centos 5上(RHEL 5的叉) 我安装了位于/usr/lib中的libssh2(yum install libssh2),当我安装SSH2扩展时(通过pecl install-f SSH2),我收到了这个消息 正在检查默认路径中的ssh2文件。。。找不到 配置:错误:找不到所需的libssh2库。您可以从以下网站获得该软件包: 错误:`/tmp/pear/download/ssh2-0.11.0/configure--with-ssh2=/usr'失败 如果我设置/

我正在尝试安装这个 在Centos 5上(RHEL 5的叉)

我安装了位于/usr/lib中的libssh2(yum install libssh2),当我安装SSH2扩展时(通过pecl install-f SSH2),我收到了这个消息

正在检查默认路径中的ssh2文件。。。找不到 配置:错误:找不到所需的libssh2库。您可以从以下网站获得该软件包: 错误:`/tmp/pear/download/ssh2-0.11.0/configure--with-ssh2=/usr'失败

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

错误:`/tmp/pear/download/ssh2-0.11.0/configure--with-ssh2=/usr/lib'失败


问题出在哪里?

通过tar.gz安装libssh2的帮助很多(-with-ssh2=/usr/local/include/)

但是“yum安装libssh2-devel”是一个更好的主意。

我遇到了这个问题:

我在Pair.com的“高级”托管帐户上,所以我的权限有点有限。我认为我不能
yum
aptitude
或任何其他预编译包

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

错误消息没有明确说明它要查找的文件。libssh2.so位于该目录中。我知道输出应该是ssh2.so。我想知道是应该有ss2.something,还是libssh.nothing

我就这样修好了。在我的例子中,在编译libssh2之后,我下载了PEAR tarball。诀窍是:

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

另一个技巧是,由于Pair.com正在运行FreeBSD,我必须在./configure命令之后执行“cd.”。否则,make将产生“权限被拒绝”错误。显然,这在所有*nix BSD口味上都是必需的。

yum安装libssh2-devel
对我不起作用:

$ 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
没有可用的libssh2-devel包

因此,我从下载了rpm软件包,并安装了
rpm-ivh


在这之后,刚刚添加了
extension=ssh2.so
/etc/php.d/ssh2.ini
我在Centos上运行,这些答案都不是我的完整解决方案。我接着说:

但是
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
这是从@klay+修改@avn从php7.x的工作解决方案下的注释中更新的

$ sudo pecl channel-update pecl.php.net
$ sudo apt-get install libssh2-1-dev
$ sudo pecl install -a ssh2-1.0
$ echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null
$ sudo phpenmod ssh2
关于线路:

echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null

确保路径
/etc/php/7.2/mods available
有效,并且与您的php版本匹配。

您从哪个存储库获取该路径?我在默认或Atomic中找不到它。我们不也需要
pecl安装吗?此安装不需要pecl,但您可能有另一种解决方案。这使生活更轻松。谢谢在安装libssh2-devel之后,您可以“pecl安装ssh-1.1.2”或任何最新版本,它将正常工作。编辑:没有意识到这是一个2009年的threadn,但仍然可以工作:p在Vagrant上的Ubuntu box上运行得很好。如果你的Vagrant box运行的是PHP7,
sudo pecl安装-a ssh2-1.0
,根据我的说明,当我通过apache运行php时,模块可用。但当我从命令行运行php时就不是了。在这一点上你会怎么做?
echo 'extension=ssh2.so' | sudo tee /etc/php/7.2/mods-available/ssh2.ini > /dev/null