在PHP 7.1中安装libsodium时出错

时间:2018-12-26 07:05:47

标签: php mcrypt libsodium

我使用的是PHP 7.1.25,当前使用的扩展名是mcrypt,而PHP 7.2中将弃用mcrypt,而Libsodium将添加到PHP 7.2的核心扩展中。

现在,我需要尝试在PHP 7.1中安装libsodium并查看其工作方式,遵循此https://lukasmestan.com/install-libsodium-extension-in-php7,但安装失败。同时更新了PECL软件包。看到下面的错误!

任何帮助将不胜感激。预先感谢!

$this->request->getUri();

3 个答案:

答案 0 :(得分:3)

这对我不起作用(Ubuntu 16.04)(让$ pecl install -f libsodium工作):

$ apt install libsodium libsodium-dev

这里我遇到以下错误:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libsodium

有效的替代方法是手动下载libsodium并进行编译:

下载libsodium源并解压缩

$ wget https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
$ tar -xzf LATEST.tar.gz

编译libsodium

$ cd libsodium-stable/
$ ./configure
$ make && make check
$ make install

请参阅:https://libsodium.gitbook.io/doc/installation

随后通过PECL安装libsodium起作用了

$ pecl install -f libsodium

故障排除:

$ pecl install -f libsodium仍然无法工作

检查是否安装了PECL:

$ pecl version
PEAR Version: ...
PHP Version: ...
Zend Engine Version: ...
Running on: ...

如果出现错误,则必须先安装PECL:

$ apt install php-pear

检查phpize是否可用(为PHP编译libsodium):

$ phpize --version
Configuring for:
PHP Api Version:         20160303
Zend Module Api No:      20160303
Zend Extension Api No:   320160303

如果出现错误,则必须安装php7.1-dev:

$ apt install php7.1-dev

如何在PHP中激活钠?

您只需要在PHP扩展目录(可能在/etc/php/7.1/mods-available/中)创建文件sodium.ini

内容:

extension=sodium.so

您可以通过以下方式激活模块:

$ phpenmod -v 7.1 sodium

(可以通过phpdismod -v 7.1 sodium停用。)

phpinfo应该现在列出该模块:

$ php -i | grep sodium
/etc/php/7.1/cli/conf.d/20-sodium.ini,
sodium
sodium support => enabled
sodium compiled version => 2.0.20
libsodium headers version => 1.0.18
libsodium library version => 1.0.18

答案 1 :(得分:1)

将我的评论更改为答案,因为它可以帮助很多人:

我需要先运行sudo apt install libsodium-dev,然后运行sudo pecl install libsodium,然后它告诉我'您应该在php.ini中添加“ extension = sodium.so”。

答案 2 :(得分:0)

@VenkateshLB您必须首先安装Linux发行版提供的libsodium。

CentOS 7:

yum install libsodium libsodium-devel

Ubuntu 18.04:

apt install libsodium libsodium-dev

安装后,执行PECL命令。