在PHP 5.4.9(x64)上安装libssh2-php

时间:2013-01-18 14:50:08

标签: php linux ubuntu-12.04 apt libssh2

我在php 5.4.9上的更新有问题(我用ppa“ppa:ondrej / php5”安装它)

现在我遇到了无法安装libssh2-php(我的项目需要)的问题

我找到了一些.deb文件,但它仅适用于32位系统。

因此,当我尝试安装libssh2-php时,我与“libssh2-php:i386”发生冲突,我有以下依赖消息:

ucf:i386 libc6:i386 (>= 2.4) libssh2-1:i386 (>= 1.0) and phpapi-20090626+lfs:i386

系统: Ubuntu Server 12.04 LTS x64 | PHP 5.4.9

我还在运行“php -v”

时收到警告
  

PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20100525/ssh2.so' - /usr/lib/php5/20100525/ssh2.so:无法打开共享对象文件:没有这样的第0行的未知文件或目录

3 个答案:

答案 0 :(得分:3)

问题在于,libssh2不适用于PHP5.4.x和x64系统。

答案 1 :(得分:1)

我在尝试使用ondrej的ppa用于ubuntu 10.04 LTS时遇到同样的问题。它没有包括sssh扩展名。

Apt-get尝试从默认包安装版本,该版本与当前安装的版本发生冲突(取决于phpapi-20090626 + lfs),不是吗?

只有我的备份php cli脚本需要运行此扩展程序。在尝试解决成功的依赖关系后,我切换到shell_exec('ssh ... @ ...')解决方案作为解决方法。

我只是一名拥有高级管理知识,没有apt-get或linux打包管理专业人员的开发人员。可能还有其他解决方案可以通过打包管理或从源代码构建所需的版本来解决这个问题吗?

编辑: 还有另一个更好的解决方案:-)你可以使用pecl来安装/构建扩展,这就是我所做的:

$ sudo pecl install ssh2
Failed to download pecl/ssh2 within preferred state "stable", latest release is version 0.12, stability "beta", use "channel://pecl.php.net/ssh2-0.12" to install
install failed

$ sudo pecl install channel://pecl.php.net/ssh2-0.12
downloading ssh2-0.12.tgz ...
Starting to download ssh2-0.12.tgz (26,223 bytes)
[...]
Build process completed successfully
Installing '/usr/lib/php5/20100525+lfs/ssh2.so'
install ok: channel://pecl.php.net/ssh2-0.12
configuration option "php_ini" is not set to php.ini location
You should add "extension=ssh2.so" to php.ini

之后我将扩展名= / usr / lib / php5 / 20100525 + lfs / ssh2.so添加到php配置中。

答案 2 :(得分:-1)

只是做:

sudo aptitude purge php5-suhosin

这里详细介绍:bugs.debian.org