温馨提示×

LNMP如何恢复

小樊
46
2025-11-08 11:10:24
栏目: 编程语言

LNMP恢复指南:分组件针对性恢复流程

一、恢复前准备

  1. 确认备份完整性:恢复前务必检查备份文件(数据库.sql、配置文件.bak、项目文件.tar.gz等)是否存在、大小正常,可通过ls -lh查看文件大小,用head命令预览部分内容验证是否为有效备份。
  2. 准备恢复环境:确保服务器已安装与备份时版本一致的LNMP组件(如Nginx、MySQL、PHP),避免版本冲突导致恢复失败。
  3. 停止相关服务:为避免恢复过程中数据覆盖或冲突,建议先停止Nginx、MySQL、PHP-FPM服务(如systemctl stop nginxsystemctl stop mysqlsystemctl stop php-fpm)。

二、分组件恢复步骤

1. MySQL数据库恢复

  • 单数据库恢复:若备份的是单个数据库(如mydb.sql),使用mysql命令指定数据库名和备份文件路径:
    mysql -u 用户名 -p密码 数据库名 < 备份文件名.sql(如mysql -u root -p123456 mydb < mydb.sql)。
  • 全量数据库恢复:若备份的是所有数据库(如all_db.sql),命令类似:
    mysql -u 用户名 -p密码 < all_db.sql
  • 注意事项:恢复前需确保目标数据库已存在(可通过mysql -u 用户名 -p密码 -e "SHOW DATABASES;"查看),若不存在需先创建(CREATE DATABASE 数据库名;)。

2. Nginx配置文件恢复

  • 单配置文件恢复:若备份的是单个配置文件(如nginx.conf.bak),复制回原路径并验证语法:
    cp /path/to/backup/nginx.conf.bak /etc/nginx/nginx.conf
    执行nginx -t检查语法(显示“syntax is ok”表示正确),无误后重启Nginx:systemctl restart nginx
  • 全量配置恢复:若备份了整个/etc/nginx目录,可使用rsynccp -r命令恢复:
    rsync -avz /path/to/backup/nginx/ /etc/nginx/cp -r /path/to/backup/nginx/* /etc/nginx/
    同样需执行nginx -tsystemctl restart nginx

3. PHP项目文件恢复

  • 项目文件恢复:若备份的是PHP项目目录(如project.tar.gz),使用tar命令解压到原路径:
    tar -xzvf project.tar.gz -C /path/to/php/project(如tar -xzvf /backup/myproject.tar.gz -C /var/www/html)。
  • 权限修复:恢复后需调整项目目录权限,确保Nginx(通常为www-data用户)和PHP-FPM可访问:
    chown -R www-data:www-data /path/to/php/project
    chmod -R 755 /path/to/php/project(目录设为755,文件设为644)。

4. 使用LNMP自带备份脚本恢复

若备份时使用了LNMP一键包自带的backup.sh脚本,恢复时需修改脚本参数(如备份路径、数据库信息),然后执行脚本:
./backup.sh --restore --backup-dir=/path/to/backup(具体参数参考脚本帮助文档,通常为--restore表示恢复,--backup-dir指定备份目录)。

三、恢复后检查

  1. 服务状态验证:使用systemctl status命令检查LNMP各组件是否正常运行:
    systemctl status nginxsystemctl status mysqlsystemctl status php-fpm(若显示“active (running)”则表示正常)。
  2. 功能测试:通过浏览器访问网站,检查页面是否能正常加载;或通过命令行测试PHP执行(如php -v查看PHP版本,php -m查看模块是否加载)。
  3. 日志检查:若仍存在问题,查看对应服务的错误日志定位原因:
    Nginx错误日志:/var/log/nginx/error.log
    MySQL错误日志:/var/log/mysql/error.log(或/var/log/mariadb/error.log);
    PHP-FPM错误日志:/var/log/php-fpm.log(或/var/log/php/7.x/fpm/error.log,取决于PHP版本)。

0