XAMPP PHP 7.2上没有加载钠

kgqe7b3p  于 2023-09-29  发布在  PHP
关注(0)|答案(8)|浏览(117)

嘿,由于某种原因,当我使用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作为我的操作系统。有没有其他的东西可以导致这样的事情,任何帮助将是很好的。先谢了。

isr3a4wc

isr3a4wc1#

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

  1. Install XAMPP(xampp-win32-7.1.14-0-VC14
  2. Download libsodium命名为php_libsodium-2.0.9-7.1-ts-vc 14-x86.zip
    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
    我知道回滚不是个好主意。
    但至少对我有用。
eblbsuwk

eblbsuwk2#

对于在Windows XAMPP(包括PHP 7.3.9)中遇到此问题的任何人:
在c:\xampp\xampp\php中已经有一个libsodium.dll文件。
但是,在php.ini文件中,默认情况下不会激活该扩展。只需按@Alshoja指示编辑文件即可。事实上,所需的条目已经存在,但被注解掉了,只需删除注解即可:

#extension=sodium;

extension=sodium;

重启服务器,通过phpinfo()验证;并且搜索“sodium”,您现在应该看到具有相关信息的“sodium support”列。

js4nwp54

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。

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

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

通过以下链接下载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
//进入package文件夹

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的一个扩展,您可以检查/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模块

sudo /opt/lampp/lampp restart

/opt/lampp/etc/php -m

如果一切正常,那么你会发现钠在名单上挑衅。

干杯

x7rlezfr

x7rlezfr4#

此错误可能是由“httpd”在windows xampp上引发的,因为libsodium.dll未加载。但是,您可以通过将DLL文件的路径添加到以下位置来解决此问题:
“C:\xampp\apache\conf\extra\httpd-xampp.conf”
然后添加行

loadFile "C:/xampp/php/libsodium.dll"

solving libsodium.dll is not found or loaded
最后重新启动你的apache服务器,你就没事了

eanckbw9

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的情况,安装是:

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

uttx8gqw6#

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

extension=sodium
mwecs4sa

mwecs4sa7#

这也适用于wamp

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

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

如果钠未列出,请转到您的/php/php. ini并搜索“; extension=sodium' and remove ';”“你可以走了

ldfqzlk8

ldfqzlk88#

你确定你编辑的是正确的php.ini吗?
从PHP 7.2开始,ini文件(至少在我的Windows PC上),加载扩展的语法现在是extension=modulename而不是extension=php_modulename.dll

相关问题