在XAMPP PHP 7.2上没有加载钠

时间:2018-01-16 17:54:33

标签: php xampp libsodium

由于某些原因,当我使用XAMPP PHP 7.2时,所有的钠功能都无法正常工作。当我运行print_r(get_loaded_extensions());时,它不会在列表中显示钠。当我去http://php.net/manual/en/sodium.installation.php它说不需要安装它们是核心的一部分。所以我去了我的php.ini配置文件并确保它没有禁用钠,它说extension=php_sodium.dll。我去控制台仔细检查是否有任何错误,没有错误。这很奇怪,因为Argon2i工作正常。 Argon2i常量都是定义的,当在password_hash()函数中使用时,它生成密码哈希没问题。我使用Windows作为我的操作系统。还有什么可以导致这样的事情,任何帮助都会很好。提前谢谢。

6 个答案:

答案 0 :(得分:3)

对于Windows XAMPP PHP 7.2.4,要更正错误:

  

PHP警告:PHP启动:无法加载动态库' sodium'   (试过:C:\ xampp \ php \ ext \ sodium(指定的模块不能   发现。),C:\ xampp \ php \ ext \ php_sodium.dll(指定的模块可以   找不到。))在第0行的未知中

apache / bin /(Apache Module )中必须有php / libsodium.dll(PHP Extension )的副本。假设,但未经测试,它必须是同一个文件。

假设php / libsodium.dll和php / ext / php_sodium.dll是相同的版本,新安装的XAMPP 7.2.4就是这种情况,安装是:

1. Add "extension=sodium" to php.ini (no quotes)
2. Copy php/libsodium.dll to apache/bin/
3. Restart Server

答案 1 :(得分:1)

您确定编辑了正确的php.ini吗?

从PHP 7.2,ini文件开始(至少在我的Windows PC上),加载扩展的语法现在是extension=modulename而不是extension=php_modulename.dll

答案 2 :(得分:0)

我遇到了同样的问题,但重新安装XAMPP 7.2没有帮助 最后,我回到了XAMPP 7.1.14,然后另外安装了钠,它起作用了。

  1. Install XAMPP(xampp-的 win32-7.1.14-0-VCl 4
  2. Download libsodium名为php_libsodium-2.0.9- 7.1-ts-vc14-x86 .zip
  3. 将php_sodium.dll重命名为php_libsodium.dll,然后将其放入C:\ xampp \ php \ ext
  4. 将libsodium.dll放入C:\ xampp \ apache \ bin
  5. 加入php.ini:extension=php_libsodium.dll
  6. 我知道回滚不是一个好主意 但至少它对我有用。

答案 3 :(得分:0)

从C:\ xampp \ php \->中的 动态扩展 下打开php.ini文件并添加

extension=sodium

答案 4 :(得分:0)

对于任何在Windows XAMPP(包括PHP 7.3.9)中苦苦挣扎的人:

c:\ xampp \ xampp \ php中已经存在一个libsodium.dll文件。

但是,默认情况下,在php.ini文件中未激活该扩展名。只需按照@Alshoja所示编辑文件。实际上,所需的条目已经存在但已被注释掉,只需删除注释即可:

#extension=sodium;

extension=sodium;

重新启动服务器,然后通过phpinfo()进行验证;然后搜索“钠”,您现在应该会看到“钠支持”列以及相关信息。

答案 5 :(得分:0)

此答案仅适用于 Linux(Ubuntu) 用户

默认 PHP 安装为系统包,但如果您使用 PHP 的自包含安装(XAMPP [Binami]),那么您必须在 {{ 的以下属性中提供 php-config 路径1}} 命令,同时为您的 PHP 安装 LIBSODIUM。

<块引用>

--with-php-config

我已经安装了 xampp-linux-x64-7.4.15-0 并且令人惊讶的是在这个设置中没有钠 PHP 模块。我先安装了 Sodium library,然后为 XAMPP 安装了 PHP Libsodium 扩展。

./configure

通过以下链接下载稳定版的钠库

https://github.com/jedisct1/libsodium

/opt/lampp/etc/php -m    //Check if you have sodium installed 

sudo apt-get update
sudo apt-get install build-essential libtool autoconf 

它将安装库,您可以在 //Go inside the package folder cd <downloaded package dir> ./configure make sudo make install 内部检查。已创建 libsodium 文件,扩展名为 so

现在我们将下载并安装 PHP 库

https://github.com/jedisct1/libsodium-php

//进入包文件夹内

/usr/local/lib/

这将不是 XAMPP PHP 的扩展,您可以检查 cd <downloaded package dir> ./configure --with-php-config=/opt/lampp/bin/php-config //This time we provided preferred php config make sudo make install 文件是否已在 sodium.so 中创建。

在php.ini中添加扩展

sudo bash -c 'echo "extension="sodium.so"" >> /opt/lampp/etc/php.ini'

重启 XAMPP 并检查已安装的 php 模块

/opt/lampp7.4/lib/php/extensions/no-debug-non-zts-2019****

如果一切正常,那么你会在列表中找到钠。

干杯