无法加载动态库'php_libsodium'



我正在尝试安装libsodium php扩展名(https://pecl.php.net/package/libsodium/1.0.6/windows)。

当我运行php -m时,libsodium出现在列表中。但是,当我去phpinfo时,它没有列出。

我还注意到Apache给我带来了错误:PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_libsodium.dll' - The specified module could not be found.rn in Unknown on line 0

我已经检查了多次,并且文件肯定在那里,并且与正确的体系结构和线程安全匹配,所以我不知所措。

任何帮助将不胜感激。

根据我的经验,您可以出于几个不同的原因获得'无法加载动态库'消息:

  1. 您已经启用了php.ini中的模块,但是PHP找不到DLL文件(要么不存在,要么在错误的目录中)。
  2. DLL文件是针对错误的架构(32位VS 64位)或错误的线程模型(例如,在PHP的非线程安全版本上使用的线程安全dll)的编译。
  3. dll有一些找不到的依赖项。例如,您可能需要一些其他.dll文件要放在PHP可以找到的位置(例如,在主PHP目录中)。

在您的情况下,鉴于您表示使用php -mphinfo()(大概在网页中)的PHP报告之间有区别,因此#1可能是原因。在php.ini中的extension_dir设置指定的位置中寻找扩展。如果这是一个相对路径,那么它可能在Web服务器的上下文中与从命令行运行时的解析。

尝试复制xampp php libsodium.dll to xampp apache bin libsodium.dll和restart apache。在xampp 8.0.5我的帮助。

尝试安装libsodium:

验证PHP和PECLphp -vPECL版本

如果您有php7.x,则:sudo pecl安装-f libsodium

如果您在Docker容器中:pecl install -f libsodium

将钠添加到php.ini。

sudo echo" extension = sodium.so">/etc/php/7.1/mods-available/sodium.inisudo phpenmod钠

验证安装了扩展php -i |grep"钠"

相关内容

  • 没有找到相关文章

最新更新