【问题标题】:Sodium is not loading on XAMPP PHP 7.2Sodium 未在 XAMPP PHP 7.2 上加载
【发布时间】:2018-01-16 17:54:33
【问题描述】:

嘿,由于某种原因,当我使用 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 作为我的操作系统。还有什么可能导致这样的事情,任何帮助都会很好。提前致谢。

【问题讨论】:

    标签: php xampp libsodium


    【解决方案1】:

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

    PHP 警告:PHP 启动:无法加载动态库“钠” (试过: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
    

    【讨论】:

    • 这也为我排序。我在 XAMPP 7.2.6 上。无法让它工作。删除它并安装 XAMPP 7.2.16。按照步骤进行。 Libsodium 现在可以使用了。
    • 非常感谢,为此苦苦挣扎了好几个小时,但没有任何效果,直到按照您的步骤操作。
    【解决方案2】:

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

    extension=sodium
    

    【讨论】:

    • 在尝试了很多解决方案后,这个很顺利,谢谢
    • @sohailamar 快乐编码
    【解决方案3】:

    您确定您编辑了正确的 php.ini 吗?

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

    【讨论】:

    • 我刚刚卸载了 xampp 并重新安装了它并加载了钠。我不知道我做了什么,但我无法复制错误。感谢您的帮助。
    【解决方案4】:

    对于任何在 Windows XAMPP 包括 PHP 7.3.9 中苦苦挣扎的人:

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

    但是,在 php.ini 文件中默认没有激活扩展。只需按照@Alshoja 的指示编辑文件。实际上,需要的条目已经存在但被注释掉了,只需删除注释即可:

    #extension=sodium;
    

    extension=sodium;
    

    重启服务器,然后通过phpinfo()进行验证;并搜索“钠”,您现在应该会看到包含相关信息的“钠支持”列。

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,但重新安装 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-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

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

      【讨论】:

      • 对于 PHP => 7.0,扩展名应该命名为钠而不是 libsodium。
      • 检查你的 libsodium 版本。
      • 我上面写的在这里工作。所以我不会再重新安装 7.2。 imgur capture
      【解决方案6】:

      这也适用于 wamp

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

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

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

      【讨论】:

      • 这是我的工作,让你贡献自己的力量
      【解决方案7】:

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

      默认 PHP 作为系统包安装,但如果您使用的是 PHP 的自包含安装(XAMPP [Binami]),那么您必须在 @987654325 的以下属性中提供 php-config 路径为您的 PHP 安装 LIBSODIUM 时使用 @ 命令。

      --with-php-config

      我已经安装了 xampp-linux-x64-7.4.15-0 并且令人惊讶的是在这个设置中没有钠 PHP 模块。我先安装了Sodium library,然后为XAMPP安装了PHP Libsodiumextesnion。

      /opt/lampp/etc/php -m    //Check if you have sodium installed 
      
      sudo apt-get update
      sudo apt-get install build-essential libtool autoconf 
      

      通过以下链接下载稳定版的钠库

      https://github.com/jedisct1/libsodium

      //Go inside the package folder
      
      cd <downloaded package dir>
      
      ./configure 
      make
      sudo make install
      

      它将安装库,您可以在/usr/local/lib/ 中查看。已创建带有 so 扩展名的 libsodium 文件。

      现在我们将下载并安装 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 
      

      如果一切正常,那么你会在列表中找到钠。

      干杯

      【讨论】:

        猜你喜欢
        • 2019-09-04
        • 2018-11-22
        • 1970-01-01
        • 2021-11-01
        • 2019-03-15
        • 2021-10-06
        • 2013-01-06
        • 2021-04-30
        • 2019-01-24
        相关资源
        最近更新 更多