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,就可以了。
- Install XAMPP(xampp-win32-7.1.14-0-VC14)
- Download libsodium 命名为 php_libsodium-2.0.9-7.1-ts-vc14-x86.zip
- 重命名php_sodium.dll为php_libsodium.dll,然后放入C:\xampp\php\ext
- 将libsodium.dll放入C:\xampp\apache\bin
- 加入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
//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”并删除“;”
你会很高兴去
嘿,出于某种原因,当我使用 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,就可以了。
- Install XAMPP(xampp-win32-7.1.14-0-VC14)
- Download libsodium 命名为 php_libsodium-2.0.9-7.1-ts-vc14-x86.zip
- 重命名php_sodium.dll为php_libsodium.dll,然后放入C:\xampp\php\ext
- 将libsodium.dll放入C:\xampp\apache\bin
- 加入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//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”并删除“;” 你会很高兴去