温馨提示×

Ubuntu LNMP如何进行版本升级和迁移

小樊
44
2025-10-03 17:34:53
栏目: 智能运维

Ubuntu LNMP版本升级与迁移指南

一、升级前准备

升级前需完成以下关键步骤,避免数据丢失或服务中断:

  1. 数据备份:备份所有重要数据,包括MySQL/MariaDB数据库(sudo mysqldump -u root -p --all-databases > full-backup.sql)、Nginx配置文件(sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.baksudo cp -r /etc/nginx/sites-available /etc/nginx/sites-available.bak)、网站程序文件(如/var/www/html目录)。
  2. 系统更新:确保系统包为最新状态,运行sudo apt update && sudo apt upgrade -y
  3. 检查兼容性:查阅Nginx、MySQL、PHP官方文档,确认新版本与现有应用(如WordPress、Discuz)的兼容性,避免因版本冲突导致功能失效。
  4. 磁盘空间:预留至少20GB磁盘空间,用于下载和安装新版本组件。

二、LNMP组件版本升级

1. Nginx升级

  • 移除旧版本(可选,避免残留文件):sudo apt remove --purge nginx
  • 安装新版本sudo apt install nginx,系统会自动安装最新稳定版。
  • 验证升级:运行nginx -v,确认版本号已更新。

2. MySQL/MariaDB升级

  • 移除旧版本(可选):sudo apt remove --purge mysql-server mysql-client mysql-common mariadb-server mariadb-client
  • 安装新版本sudo apt install mysql-server mariadb-server,安装过程中会提示设置root密码。
  • 数据迁移(若更换版本):使用mysqldump导出旧数据库,导入新数据库(参考迁移部分步骤)。
  • 验证升级:运行mysql --versionmariadb --version,确认版本号。

3. PHP升级

  • 移除旧版本(可选):sudo apt remove --purge php*
  • 安装新版本sudo apt install php php-mysql php-curl php-gd php-mbstring php-xml php-zip(根据应用需求选择扩展)。
  • 配置更新:若使用PHP-FPM,重启服务sudo systemctl restart php-fpm;修改Nginx配置中的fastcgi_pass指令,指向新的PHP-FPM socket(如unix:/run/php/php8.2-fpm.sock)。
  • 验证升级:运行php -v,确认版本号。

三、迁移注意事项(版本升级或环境迁移均适用)

  1. 配置文件适配

    • Nginx:检查server块中的root指令(指向网站根目录)、location ~ \.php$块中的fastcgi_pass(需与新PHP-FPM socket一致)、include指令(如include enable-php.conf需指向正确路径)。
    • PHP:确认php.ini中的upload_max_filesizepost_max_size等参数是否符合应用需求;检查扩展是否启用(如extension=pdo_mysql.so)。
    • MySQL:确保my.cnf中的bind-address(允许远程访问则设为0.0.0.0,仅本地则设为127.0.0.1)、character_set_server(建议设为utf8mb4)等参数正确。
  2. 应用兼容性检查

    • PHP扩展:确保应用所需扩展(如pdo_mysqlmbstringredis)已安装并启用(sudo phpenmod 扩展名)。
    • URL重写:若应用使用ThinkPHP、WordPress等框架,需检查Nginx配置中的rewrite规则(如try_files $uri $uri/ /index.php?$query_string;),参考框架官方文档调整。
    • 文件权限:设置网站目录权限为755sudo chmod -R 755 /var/www/html),文件权限为644sudo find /var/www/html -type f -exec chmod 644 {} \;),确保Nginx(www-data用户)和PHP-FPM(www-data用户)有访问权限。
  3. 测试与验证

    • 功能测试:访问网站首页、后台管理页面,检查链接、表单提交、登录等功能是否正常。
    • 性能测试:使用ab(Apache Benchmark)或wrk工具测试网站响应时间,确保升级后性能未下降。
    • 错误日志:查看Nginx(/var/log/nginx/error.log)、PHP-FPM(/var/log/php-fpm.log)的错误日志,及时处理404(路径错误)、500(服务器内部错误)、502(Bad Gateway,PHP-FPM未启动)等问题。

四、常见问题解决

  1. 404错误:检查Nginx配置中的root指令是否指向正确网站根目录;确保location ~ \.php$块中的fastcgi_pass指向正确的PHP-FPM socket;确认try_files指令配置正确(如try_files $uri $uri/ /index.php?$query_string;)。
  2. 500错误:查看PHP-FPM日志(/var/log/php-fpm.log),常见原因包括PHP扩展缺失(如pdo_mysql)、代码语法错误(如未闭合的括号)、权限问题(如文件无法读取)。
  3. PHP版本不兼容:若应用需要特定PHP版本(如ThinkPHP 5需要PHP 7.1+),可使用LNMP一键脚本安装多版本PHP(./install.sh mphp),并通过update-alternatives切换默认版本,或在Nginx配置中指定fastcgi_pass指向对应PHP-FPM socket。

0