我使用的是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();
答案 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命令。