0

我正在运行 CENTOS 6.7 和 Apache 以及 PHP 5.4.x。我正在使用 EPEL 和 REMI 存储库。我正在尝试安装libsodium扩展。

我的理解是我需要先安装libsodium,然后是扩展。基于谷歌搜索,为了获得正确的版本,我结束了:

yum --enablerepo=remi install php54-php-pecl-libsodium

我得到以下结果:

Installed:
  php54-php-pecl-libsodium.x86_64 0:1.0.5-1.el6.remi

Dependency Installed:
  audit-libs-python.x86_64 0:2.3.7-5.el6
  environment-modules.x86_64 0:3.2.10-2.el6
  libcgroup.x86_64 0:0.40.rc1-17.el6_7
  libselinux-python.x86_64 0:2.0.94-5.8.el6
  libsemanage-python.x86_64 0:2.0.43-5.1.el6
  php54-php-common.x86_64 0:5.4.45-7.el6.remi
  php54-runtime.x86_64 0:2.1-4.el6.remi
  policycoreutils-python.x86_64 0:2.0.83-24.el6
  setools-libs.x86_64 0:3.3.7-4.el6
  setools-libs-python.x86_64 0:3.3.7-4.el6
  tcl.x86_64 1:8.5.7-6.el6

然后我输入:

pecl install libsodium

我得到:

[root@core3 tmp]# pecl install libsodium
downloading libsodium-1.0.5.tgz ...
Starting to download libsodium-1.0.5.tgz (169,801 bytes)
.....................................done: 169,801 bytes
9 source files, building
running: phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
building in /var/tmp/pear-build-rootAHK93D/libsodium-1.0.5
running: /var/tmp/libsodium/configure --with-php-config=/usr/bin/php-config
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib
checking for PHP extension directory... /usr/lib64/php/modules
checking for PHP installed headers prefix... /usr/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... re2c
checking for re2c version... 0.13.5 (ok)
checking for gawk... gawk
checking for libsodium support... yes, shared
checking for libsodium files in default path... not found
configure: error: Please install libsodium - See https://github.com/jedisct1/libsodium
ERROR: `/var/tmp/libsodium/configure --with-php-config=/usr/bin/php-config' failed

您可以看到错误似乎表明未安装 libsodium。我错过了一步吗?

4

2 回答 2

3

php54-php-pecl-libsodium是一个 SCL 包(用于并行安装)。

您可能需要php-pecl-libsodium

yum --enablerepo=remi install php-pecl-libsodium

您不需要运行“pecl 安装命令”。

于 2016-04-19T04:25:21.497 回答
0

我已经有一段时间没有安装 PECL 模块了,但我相信运行初始命令会负责安装模块,之后无需pecl手动运行。

事实上,我们可以看到文件列表rpm显示了安装的模块以及php.ini包含它的文件。

$ rpm -qlp http://rpms.famillecollet.com/store/php54/php/pecl/libsodium/1.0.5/php54-php-pecl-libsodium-1.0.5-1.el6.remi.x86_64.rpm
/opt/remi/php54/root/etc/php.d/libsodium.ini
/opt/remi/php54/root/usr/lib64/php/modules/libsodium.so
/opt/remi/php54/root/usr/share/doc/pecl/libsodium
/opt/remi/php54/root/usr/share/doc/pecl/libsodium/LICENSE
/opt/remi/php54/root/usr/share/doc/pecl/libsodium/README.md
/opt/remi/php54/root/var/lib/pear/pkgxml/php54-php-pecl-libsodium.xml

你确定重启你的网络服务器了吗?

于 2016-04-18T22:43:53.887 回答