嘿,由于某种原因,当我使用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作为我的操作系统。有没有其他的东西可以导致这样的事情,任何帮助将是很好的。先谢了。
8条答案
按热度按时间isr3a4wc1#
我遇到了同样的问题,但重新安装XAMPP 7.2没有帮助。
最后,我返回到XAMPP 7.1.14,然后安装了钠,它工作。
1.将php_sodium. dll重命名为php_libsodium. dll,然后将其放入C:\xampp\php\ext
1.将libsodium.dll放入C:\xampp\apache\bin
1.在php.ini中添加:
extension=php_libsodium.dll
我知道回滚不是个好主意。
但至少对我有用。
eblbsuwk2#
对于在Windows XAMPP(包括PHP 7.3.9)中遇到此问题的任何人:
在c:\xampp\xampp\php中已经有一个libsodium.dll文件。
但是,在php.ini文件中,默认情况下不会激活该扩展。只需按@Alshoja指示编辑文件即可。事实上,所需的条目已经存在,但被注解掉了,只需删除注解即可:
到
重启服务器,通过phpinfo()验证;并且搜索“sodium”,您现在应该看到具有相关信息的“sodium support”列。
js4nwp543#
此答案仅适用于Linux(Ubuntu)用户
默认的PHP是作为系统包安装的,但是如果你使用的是PHP的自包含安装(XAMPP [Binami]),那么你必须在为你的PHP安装LIBSODIUM时,在
./configure
命令的以下属性中提供php-config路径。--with-php-config
我已经安装了xampp-linux-x64-7.4.15-0,令人惊讶的是,在这个设置中没有钠PHP模块。我先安装了Sodium library,然后为XAMPP安装了PHP Libsodium extesion。
通过以下链接下载Sodium Library的稳定版本
https://doc.libsodium.org/
它将安装库,你可以检查里面的
/usr/local/lib/
。libsodium的文件已创建,扩展名为 so。现在我们将下载并安装PHP库
https://github.com/jedisct1/libsodium-php
//进入package文件夹
这将是XAMPP PHP的一个扩展,您可以检查
/opt/lampp7.4/lib/php/extensions/no-debug-non-zts-2019****
文件是否已在sodium.so
中创建。在php.ini内添加扩展名
sudo bash -c 'echo“extension=”sodium.so“”>>/opt/lampp/etc/php. ini'
重新启动XAMPP并检查已安装的php模块
如果一切正常,那么你会发现钠在名单上挑衅。
干杯
x7rlezfr4#
此错误可能是由“httpd”在windows xampp上引发的,因为libsodium.dll未加载。但是,您可以通过将DLL文件的路径添加到以下位置来解决此问题:
“C:\xampp\apache\conf\extra\httpd-xampp.conf”
然后添加行
solving libsodium.dll is not found or loaded
最后重新启动你的apache服务器,你就没事了
eanckbw95#
对于Windows XAMPP PHP 7.2.4,要更正错误:
PHP警告:PHP启动:无法加载动态库'sodium'(已尝试:C:\xampp\php\ext\sodium(The specified module cannot be found.),C:\xampp\php\ext\php_sodium. dll(The specified module cannot be found.))in Unknown on line 0
apache/bin/(Apache Module)中必须有php/libsodium.dll(PHP Extension)的副本。假设(但未测试)它必须是相同的文件。
假设php/libsodium.dll和php/ext/php_sodium.dll是相同的版本,这是新安装XAMPP 7.2.4的情况,安装是:
uttx8gqw6#
从C:\xampp\php\ ->中的 * 动态扩展 * 下打开php.ini文件并添加
mwecs4sa7#
这也适用于wamp
使用以下命令签入PHP模块(如果钠可用或不可用
如果钠未列出,请转到您的/php/php. ini并搜索“; extension=sodium' and remove ';”“你可以走了
ldfqzlk88#
你确定你编辑的是正确的php.ini吗?
从PHP 7.2开始,ini文件(至少在我的Windows PC上),加载扩展的语法现在是
extension=modulename
而不是extension=php_modulename.dll
。