我安装了带有一些附加模块的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
系统: Debian 11.5,内核5.10
编辑:有关PHP8.1的其他信息
$ 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
发布于 2022-10-12 17:44:32
我终于找到了解决办法。我的系统上安装了两个版本的libsodium.so.23
:
/usr/local/lib/libsodium.so.23.2.0
/usr/lib/x86_64-linux-gnu/libsodium.so.23.3.0
libsodium.so.23.2.0
不像libsodium.so.23.3.0
那样支持crypto_core_ristretto255_scalar_invert
。
为了让PHP8.1使用libsodium.so.23.3.0
,我不得不删除初始的softlink /usr/local/lib/libsodium.so.23
(参见初始帖子中的ldd
输出)。
现在PHP8.1使用最新的库(不使用其他命令):
$ ldd /usr/bin/php8.1 | grep sodium
libsodium.so.23 => /usr/lib/x86_64-linux-gnu/libsodium.so.23 (0x00007f07bc320000)
https://stackoverflow.com/questions/73991378
复制相似问题