在这次服务器维护中,我对原有服务器进行了彻底重置,从备份 WordPress 网站数据开始,到安装最新操作系统及环境,再到解决多个关键组件兼容问题,最终顺利恢复网站运行,整个过程收获颇多。本文记录此次操作的详细步骤,供日后参考,也希望能帮助遇到类似问题的朋友。
一、备份原有数据并重置服务器系统
首先,为了避免数据丢失,我对服务器上运行的两个 WordPress 网站的数据进行了完整备份,包括:
- 网站文件(网站根目录全部打包)
- 数据库(使用
mysqldump
导出 SQL 文件)
完成备份后,我将服务器系统重装为 Ubuntu 22.04 LTS,为后续部署新版环境打好基础。
二、安装最新版 Linux 宝塔面板
在新系统中,我首先安装了 Linux 宝塔面板,使用的是官方最新版(宝塔面板 11.0 测试版)安装命令:
curl -sSO http://dg1.bt.cn/install/install11.sh && bash install11.sh
安装过程顺利完成,通过宝塔面板可以方便地管理网站、数据库和各种服务组件。
三、MySQL 安装:5.7 不再兼容,选择 MySQL 8.4.5
由于项目原先依赖 MySQL 5.7,我计划在新系统中继续安装该版本。但在安装过程中发现:
Ubuntu 22 已不再支持 MySQL 5.7,宝塔面板的软件库不提供该版本。
因此,我转而选择了 MySQL 8.4.5,经过测试兼容性良好。
四、安装 PHP 8.3 并解决 fileinfo 扩展安装问题
安装 PHP 8.3 后,尝试安装常用扩展,其中 fileinfo 遇到重大问题:
在阿里云 99 元活动的低配 ECS 上,一旦通过面板直接安装该扩展,就会导致硬盘写入负载过高,最终服务器宕机。
解决方法:手动终端安装 fileinfo 扩展
以下是终端手动安装 fileinfo 扩展的完整步骤:
cd /www/server/php/83/src/ext/fileinfo/
/www/server/php/83/bin/phpize
./configure --with-php-config=/www/server/php/83/bin/php-config
sed -i "s#CFLAGS = -g -O2#CFLAGS = -std=c99 -g#g" Makefile
make && make install
安装完成后,手动将扩展加入配置文件:
echo "extension=/www/server/php/83/lib/php/extensions/no-debug-non-zts-20230831/fileinfo.so" >> /www/server/php/83/etc/php.ini
echo "extension=/www/server/php/83/lib/php/extensions/no-debug-non-zts-20230831/fileinfo.so" >> /www/server/php/83/etc/php-cli.ini
/etc/init.d/php-fpm-83 restart
此方法参考了 宝塔论坛的解决方案,你也可以根据自己的 PHP 版本路径做相应调整。
五、安装 mbstring 扩展并解决缺失依赖问题
安装 mbstring
扩展时,遇到以下报错信息:
checking whether to enable multibyte string support... yes, shared
checking whether to enable multibyte regex support (requires oniguruma)... yes
checking for oniguruma... no
configure: error: Package requirements (oniguruma) were not met:
No package 'oniguruma' found
原因分析:
Ubuntu 22 默认未安装 oniguruma
正则表达式库,这是 mbstring
扩展的必要依赖。
解决方法:
手动安装 oniguruma
开发包:
sudo apt-get update
sudo apt-get install libonig-dev
安装完成后,继续使用终端方式安装 mbstring
扩展:
cd /www/server/php/83/src/ext/mbstring/
/www/server/php/83/bin/phpize
./configure --with-php-config=/www/server/php/83/bin/php-config
make && make install
注册扩展并重启 PHP:
echo "extension=mbstring.so" >> /www/server/php/83/etc/php.ini
/etc/init.d/php-fpm-83 restart
六、恢复网站数据并正常运行
至此,所需环境组件均已安装配置完毕。我将之前备份的两个网站数据和数据库导入服务器,访问测试一切正常,未再出现扩展缺失或兼容性错误。
总结
这次重装服务器和环境部署过程中,踩了不少坑,也解决了多个棘手问题:
- Ubuntu 22 不再兼容老版本数据库(MySQL 5.7)
- 宝塔安装部分 PHP 扩展在低配 ECS 上会导致宕机,需手动安装
- 缺失依赖(如 oniguruma)需要使用系统包管理器提前补全
不过经过一番折腾,系统变得更加稳定、现代,也为后续开发提供了更好的基础环境。如果你也在使用 Ubuntu 22 + 宝塔 + PHP 环境,欢迎参考以上步骤,少走弯路。