问题

在部署一个站点时,在安装了 PHP 7.4 的情况下安装 PHP 8.2,然而安装完成后启动报错。

具体报错内容如下:

1
/www/server/php/82/sbin/php-fpm: symbol lookup error: /www/server/php/82/sbin/php-fpm:undefined symbol: crypto_pwhash_scryptsalsa208sha256_opslimit_interactive

解决

直接谷歌搜索报错内容,发现宝塔面板论坛有相关问题:php无法启动的N种常见错误解决教程 情况七,给出的解决办法是重新编译安装,然而编译安装后仍未解决(也有成功的,可以先试试)。CSDN 也有相关问题,并在 Serverfault找到了解决方法,来源在文末。

方法就是重新编译安装 libsodium

具体步骤如下:

  1. 删除 usr/local/lib目录下相关 libsodium文件
  2. 下载 tar 包,并解压
1
2
3
wget <https://download.libsodium.org/libsodium/releases/libsodium-1.0.19-stable.tar.gz>
# 建议稳定版 <https://download.libsodium.org/libsodium/releases/>
tar -zxvf libsodium-1.0.19-stable.tar.gz
  1. 编译安装
1
2
3
4
cd ./libsodium-stable
./configure
make && make check
sudo make install

完成后即可成功启动。

参考