1

我对 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 行的未知中

4

3 回答 3

3

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

于 2013-02-24T22:06:31.223 回答
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

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

于 2013-01-20T18:17:08.543 回答
-1

做就是了:

sudo aptitude purge php5-suhosin

这里有详细描述:bugs.debian.org

于 2013-01-20T20:37:45.873 回答