服务器迁移网站全流程复盘

WordPress 网站迁移完整复盘

📋 迁移流程总结

阶段一:源服务器准备

  1. 备份网站文件
   tar -czf blog.mozhongzhou.cn.tar.gz /var/www/wordpress
  1. 备份数据库
   mysqldump -u username -p database_name > blog_mozhongzhou_full.sql

阶段二:新服务器环境搭建

  1. 安装必要软件
   # 更新系统
   sudo apt update && sudo apt upgrade -y

   # 安装 Nginx、PHP、MySQL
   sudo apt install nginx php8.3-fpm php8.3-mysql mysql-server -y

   # 安装 PHP 扩展
   sudo apt install php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip -y
  1. 配置基础服务
   # 启动并设置开机自启
   sudo systemctl start nginx php8.3-fpm mysql
   sudo systemctl enable nginx php8.3-fpm mysql

阶段三:部署网站文件

  1. 上传文件到新服务器
   # 上传备份文件
   scp blog.mozhongzhou.cn.tar.xz user@new-server:/html/
   scp blog_mozhongzhou_full.sql user@new-server:/html/
  1. 解压文件
   cd /html
   tar -xvf blog.mozhongzhou.cn.tar.xz
  1. 设置文件权限
   sudo chown -R www-data:www-data /html/blog.mozhongzhou.cn
   sudo find /html/blog.mozhongzhou.cn -type d -exec chmod 755 {} \;
   sudo find /html/blog.mozhongzhou.cn -type f -exec chmod 644 {} \;
   sudo chmod -R 775 /html/blog.mozhongzhou.cn/wp-content/

阶段四:配置数据库

  1. 创建数据库和用户
   CREATE DATABASE blog_mozhongzhou CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
   CREATE USER 'blog_user'@'localhost' IDENTIFIED BY 'strong_password';
   GRANT ALL PRIVILEGES ON blog_mozhongzhou.* TO 'blog_user'@'localhost';
   FLUSH PRIVILEGES;
  1. 导入数据
   sudo mysql -u root -p blog_mozhongzhou < blog_mozhongzhou_full.sql
  1. 更新数据库 URL
   UPDATE wp_options SET option_value = 'https://blog.mozhongzhou.cn' WHERE option_name = 'siteurl';
   UPDATE wp_options SET option_value = 'https://blog.mozhongzhou.cn' WHERE option_name = 'home';

阶段五:配置 Nginx

  1. 创建 Nginx 配置文件
   server {
       listen 80;
       server_name blog.mozhongzhou.cn;
       return 301 https://$server_name$request_uri;
   }

   server {
       listen 443 ssl;
       server_name blog.mozhongzhou.cn;

       root /html/blog.mozhongzhou.cn;
       index index.php index.html index.htm;

       # WordPress 重写规则
       location / {
           try_files $uri $uri/ /index.php?$args;
       }

       # PHP 处理
       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_pass unix:/run/php/php8.3-fpm.sock;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

       location ~ /\.ht {
           deny all;
       }

       client_max_body_size 64M;
   }
  1. 启用站点
   sudo ln -s /etc/nginx/sites-available/blog.mozhongzhou.cn /etc/nginx/sites-enabled/
   sudo nginx -t
   sudo systemctl reload nginx

阶段六:配置 SSL 证书

  1. 获取 Let’s Encrypt 证书
   sudo certbot --nginx -d blog.mozhongzhou.cn

选择:

  • 输入邮箱
  • 同意服务条款
  • 选择 “2” 重定向所有 HTTP 到 HTTPS
  1. 验证自动续期
   sudo certbot renew --dry-run

阶段七:配置 WordPress

  1. 更新 wp-config.php
   define('DB_NAME', 'blog_mozhongzhou');
   define('DB_USER', 'blog_user');
   define('DB_PASSWORD', 'strong_password');
   define('DB_HOST', 'localhost');

   // 强制 HTTPS
   define('WP_HOME', 'https://blog.mozhongzhou.cn');
   define('WP_SITEURL', 'https://blog.mozhongzhou.cn');

阶段八:DNS 切换

  1. 修改域名解析
   类型:A
   主机:blog
   值:新服务器IP地址
   TTL:自动
  1. 等待 DNS 传播
   # 检查 DNS 传播
   nslookup blog.mozhongzhou.cn
   dig blog.mozhongzhou.cn

🎯 遇到的关键问题和解决方案

问题1:PHP-FPM 版本不匹配

问题:默认 PHP-FPM 服务名不对
解决

# 使用正确的版本号
sudo systemctl status php8.3-fpm
# 配置中使用:fastcgi_pass unix:/run/php/php8.3-fpm.sock;

问题2:证书配置循环依赖

问题:Nginx 配置引用了不存在的证书文件
解决

  1. 先配置简单的 HTTP-only 配置
  2. 运行 certbot 获取证书
  3. certbot 自动更新配置

问题3:文件路径错误

问题/home/html vs /html
解决:修正 root 路径

root /html/blog.mozhongzhou.cn;  # 正确
# 不是 root /home/html/blog.mozhongzhou.cn;

问题4:权限问题

解决

sudo chown -R www-data:www-data /html/blog.mozhongzhou.cn
sudo chmod -R 755 /html/blog.mozhongzhou.cn

📊 迁移检查清单

  • [ ] 网站文件完整解压
  • [ ] 数据库成功导入
  • [ ] Nginx 配置正确
  • [ ] PHP-FPM 运行正常
  • [ ] SSL 证书有效
  • [ ] 文件权限设置正确
  • [ ] WordPress 配置更新
  • [ ] DNS 解析生效
  • [ ] 网站可正常访问
  • [ ] HTTPS 强制启用

🔧 常用诊断命令

# 检查服务状态
sudo systemctl status nginx php8.3-fpm mysql

# 测试配置
sudo nginx -t

# 查看日志
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php8.3-fpm.log

# 测试访问
curl -I https://blog.mozhongzhou.cn
curl -I https://blog.mozhongzhou.cn

# 检查证书
sudo certbot certificates

🚀 优化建议(可选)

  1. 启用缓存:安装 Redis 或 Memcached
  2. CDN 配置:启用 Cloudflare 缓存
  3. 图片优化:使用 WebP 格式
  4. 安全加固:安装 Wordfence 安全插件
  5. 备份策略:设置自动备份

✅ 迁移成功标志

  1. 网站可以通过 HTTPS 正常访问
  2. 所有页面链接正常工作
  3. 图片和媒体文件正常加载
  4. WordPress 后台可正常登录
  5. SSL 证书有效且自动续期配置正常

总结:迁移 WordPress 网站的关键是确保文件路径正确PHP版本匹配数据库连接正常SSL证书配置正确。遵循这个流程,可以顺利完成迁移。

本技术内容仅供学习和交流使用,如有疑问请联系qq2014160588并注明来意。请确保在使用过程中遵守相关法律法规。任何因使用本技术内容而导致的直接或间接损失,作者概不负责。用户需自行承担因使用本技术内容而产生的所有风险和责任。请勿将本技术内容用于任何非法用途。
上一篇
下一篇