You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian11.5下PHP8.1报错:undefined symbol: crypto_core_ristretto255_scalar_invert

问题

在Debian 11.5(内核版本5.10)系统中安装PHP8.1及相关扩展后,执行php --version时触发未定义符号错误:

$ php --version
php: symbol lookup error: php: undefined symbol: crypto_core_ristretto255_scalar_invert

使用的安装命令如下:

$ sudo apt install php8.1
$ sudo apt install php8.1-cli php8.1-common php8.1-curl php8.1-mbstring php8.1-mysql php8.1-xml php8.1-zip libapache2-mod-php php-imagick php-gd php8.1-mysql php8.1-gd

补充排查信息:

$ ldd /usr/bin/php8.1 | grep crypto
        libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f5f05362000)
$ ldd /usr/bin/php8.1 | grep sodium
        libsodium.so.23 => /usr/local/lib/libsodium.so.23 (0x00007fda8ef19000)
$ ll /usr/local/lib/libsodium.so.23
lrwxrwxrwx 1 root staff 19 Mar 10  2019 /usr/local/lib/libsodium.so.23 -> libsodium.so.23.2.0
$ ll /usr/local/lib/libsodium.so.23.2.0
-rwxr-xr-x 1 root staff 2.1M Mar 10  2019 /usr/local/lib/libsodium.so.23.2.0
解决方法

问题根源

系统优先加载了/usr/local/lib下的旧版本libsodium(23.2.0,2019年编译),而PHP 8.1依赖的crypto_core_ristretto255_scalar_invert符号在这个旧版本中不存在。Debian 11官方仓库提供的libsodium包(版本1.0.18-1)包含该符号,且与系统环境兼容。

修复步骤

  1. 删除手动安装的旧版本libsodium文件
    sudo rm /usr/local/lib/libsodium.so.23 /usr/local/lib/libsodium.so.23.2.0
    
  2. 安装官方仓库的libsodium包
    sudo apt update
    sudo apt install libsodium23
    
  3. 更新系统库缓存,确保优先调用系统官方库
    sudo ldconfig
    
  4. 验证修复效果
    php --version
    

内容的提问来源于stack exchange,提问作者paddel10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:10:31