XAMPP PHP 7.2 上未加载钠

Sodium is not loading on XAMPP PHP 7.2

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

你确定你编辑的是正确的php.ini?

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

我遇到了同样的问题,但重新安装 XAMPP 7.2 没有帮助。
最后,我回到XAMPP 7.1.14,然后又安装了sodium,就可以了。

  1. Install XAMPP(xampp-win32-7.1.14-0-VC14)
  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

我知道回滚不是个好主意。
但至少对我有用。

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

PHP Warning: PHP Startup: Unable to load dynamic library 'sodium' (tried: C:\xampp\php\ext\sodium (The specified module could not be found.), C:\xampp\php\ext\php_sodium.dll (The specified module could not be found.)) in Unknown on line 0

必须有 php/libsodium.dll (PHP Extension) 的副本 apache/bin/ (Apache 模块)。假定但未测试,它必须是相同的文件。

假设 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

打开 C:\xampp\php\ -> Dynamic Extensions 下的 php.ini 文件并添加

extension=sodium

对于在 Windows XAMPP 中遇到此问题的任何人,包括 PHP 7.3.9:

c:\xampp\xampp\php.libsodium.dll 文件中已有 libsodium.dll 个文件。

但是,扩展在 php.ini 文件中默认未激活。只需按照@Alshoja 的指示编辑文件即可。其实需要的入口已经有了但是被注释掉了,去掉注释即可:

#extension=sodium;

extension=sodium;

重启服务器,然后通过phpinfo()验证;并搜索 "sodium",您现在应该会看到包含相关信息的 "sodium support" 列。

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

默认 PHP 作为系统包安装,但如果您使用 PHP (XAMPP [Binami]) 的自包含安装,则必须提供 php-config 在为您的 PHP.

安装 LIBSODIUM 时,./configure 命令的以下属性中的路径

--with-php-config

我已经安装了 xampp-linux-x64-7.4.15-0,但令人惊讶的是,此设置中没有钠 PHP 模块。我为 XAMPP.

安装了 Sodium library first and then install PHP Libsodium 扩展
/opt/lampp/etc/php -m    //Check if you have sodium installed 

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

按照link

下载稳定版的Sodium Library

https://doc.libsodium.org/

//Go inside the package folder

cd <downloaded package dir>

./configure 
make
sudo make install

它会安装库,你可以在/usr/local/lib/里面查看。已创建 libsodium 文件,扩展名为 so

现在我们将为

下载并安装PHP库

https://github.com/jedisct1/libsodium-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

这不是 XAMPP PHP 的全部扩展名,您可以检查 sodium.so 文件是否已在 /opt/lampp7.4/lib/php/extensions/no-debug-non-zts-2019****.

中创建

在里面添加扩展 php.ini

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

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

sudo /opt/lampp/lampp restart

/opt/lampp/etc/php -m 

如果一切正常,那么您会挑衅地在列表中找到钠。

干杯

这也适用于 wamp

如果钠可用或不可用,请使用以下命令签入 PHP 模块

cmd> php -m
cmd> php --ri sodium

如果未列出钠,则转到您的 /php/php.ini 并搜索“;extension=sodium”并删除“;” 你会很高兴去