You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04下PHP8.2启动时无法加载sodium动态库的问题解决求助

Ubuntu 22.04下PHP8.2启动时无法加载sodium动态库的问题解决求助

我之前在Ubuntu 22.04用PHP8.2的时候也踩过这个坑,明明已经装了sodium扩展,却一直报加载失败的警告。给你几个亲测有效的排查和解决步骤,你可以挨个试试:

  • 先确认PHP版本与扩展路径的匹配性
    你报错里的路径/usr/lib/php/20190902是PHP7.4的扩展目录(20190902是PHP7.4的API版本),但你用的是PHP8.2,它的API版本是20220829,大概率是扩展配置指向了旧版本的路径。

    1. 先查当前PHP8.2的扩展目录:php -i | grep "extension_dir"
    2. 找到sodium的配置文件,一般在/etc/php/8.2/cli/conf.d//etc/php/8.2/fpm/conf.d/下,比如20-sodium.ini,打开看看里面是不是写了旧路径的绝对引用,如果是,改成只写extension=sodium.so,或者替换成刚才查到的正确扩展目录路径。
  • 确保安装的是PHP8.2对应的sodium包
    有时候系统默认安装的php-sodium可能是对应旧PHP版本的,比如之前装过PHP7.4的话,这个包可能和8.2不兼容。

    1. 先卸载现有包:sudo apt remove --purge php-sodium
    2. 安装PHP8.2专属的版本:sudo apt install php8.2-sodium
    3. 如果用的是PHP-FPM,记得重启服务:sudo systemctl restart php8.2-fpm
  • 检查扩展文件是否存在于正确目录
    执行find /usr/lib/php -name sodium.so,看看有没有20220829目录下的sodium.so文件。如果没有,说明安装过程出了问题,重新执行上面的安装命令试试;如果存在,可以尝试在ini文件里直接指定这个绝对路径,比如extension=/usr/lib/php/20220829/sodium.so,然后再测试。

  • 最后验证修复效果
    执行php -v确认当前用的是PHP8.2,然后用php -m | grep sodiumphp -r "var_dump(extension_loaded('sodium'));"检查扩展是否正常加载,如果返回bool(true),那警告应该就消失了。

内容来源于stack exchange

火山引擎 最新活动