由于某些原因,当我使用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作为我的操作系统。还有什么可以导致这样的事情,任何帮助都会很好。提前谢谢。
答案 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,然后另外安装了钠,它起作用了。
extension=php_libsodium.dll
我知道回滚不是一个好主意 但至少它对我有用。
答案 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****
如果一切正常,那么你会在列表中找到钠。
干杯