在部署一个站点时,在安装了 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
具体步骤如下:
- 删除
usr/local/lib
目录下相关 libsodium
文件 - 下载
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
2
3
4
| cd ./libsodium-stable
./configure
make && make check
sudo make install
|
完成后即可成功启动。