一、为什么要手工迁移WordPress网站
WordPress网站手工迁移是每个站长都可能面临的挑战,无论是更换服务器、迁移到新域名,还是从本地环境部署到线上服务器。与使用插件自动迁移相比,手工迁移虽然步骤繁琐,但能让你更全面地掌控整个过程,特别适合:
- 大型网站迁移(避免插件超时问题)
- 需要定制化迁移方案的情况
- 服务器环境有特殊配置要求
- 作为学习WordPress架构的实践机会
二、迁移前的准备工作
1. 完整备份网站
- 通过FTP下载wp-content目录(包含主题、插件和上传文件)
- 导出数据库(可使用phpMyAdmin或命令行mysqldump)
- 记录当前网站的配置信息(如.htaccess内容)
2. 检查服务器环境
- 确保新服务器满足WordPress最低要求(PHP版本、MySQL版本)
- 比较新旧服务器的环境差异(如PHP模块)
3. 准备迁移工具
- FTP客户端(FileZilla等)
- 数据库管理工具(phpMyAdmin或Adminer)
- 文本编辑器(修改配置文件用)
三、详细迁移步骤
1. 文件迁移
# 通过FTP/SFTP上传所有WordPress文件到新服务器
# 保持目录结构一致(通常上传到public_html或www目录)
2. 数据库迁移
- 在新服务器创建空白数据库和用户
- 导入之前导出的SQL文件
- 执行关键替换命令(如修改站点URL):
UPDATE wp_options SET option_value = replace(option_value, 'http://旧域名', 'http://新域名') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, 'http://旧域名', 'http://新域名');
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://旧域名', 'http://新域名');
3. 配置文件调整
- 修改wp-config.php中的数据库连接信息
- 检查并更新以下配置:
define('DB_NAME', '新数据库名');
define('DB_USER', '新数据库用户');
define('DB_PASSWORD', '新数据库密码');
define('DB_HOST', '新数据库主机');
4. 处理特殊文件
- 检查并更新.htaccess文件
- 验证wp-content/uploads目录权限(通常设为755或775)
四、迁移后检查清单
- 基本功能测试
- 前台页面能否正常访问
- 后台/wp-admin能否登录
- 文章、页面内容是否完整
- 链接检查
- 内部链接是否全部更新为新域名
- 图片等媒体文件是否能正常显示
- 功能验证
- 测试表单提交功能
- 检查插件是否正常工作
- 验证主题所有功能
- 性能优化
- 更新固定链接结构(必要时重写.htaccess)
- 清除缓存(插件缓存、浏览器缓存)
五、常见问题解决方案
问题1:出现”建立数据库连接错误”
- 检查wp-config.php中的数据库配置
- 确认数据库服务是否正常运行
- 验证数据库用户权限
问题2:页面样式错乱
- 检查主题文件是否完整上传
- 查看浏览器控制台是否有404错误
- 尝试重新保存固定链接设置
问题3:媒体文件无法显示
- 确认uploads目录权限设置正确
- 检查数据库中的媒体文件路径是否更新
- 考虑使用Better Search Replace插件进行批量替换
六、高级迁移技巧
- 使用SSH加速大文件迁移
# 使用rsync命令同步文件(比FTP更高效)
rsync -avz -e ssh /本地/路径/ 用户名@服务器IP:/远程/路径/
- 处理序列化数据
- 使用专门工具处理序列化字符串的替换
- 推荐WP-CLI的search-replace命令:
wp search-replace '旧域名' '新域名' --all-tables
- 多站点迁移特别注意事项
- 需要额外处理wp_blogs表中的站点信息
- 检查并更新wp_site和wp_sitemeta表内容
手工迁移WordPress网站虽然需要耐心和细心,但掌握这项技能将使你能够更灵活地管理网站。建议首次迁移时在测试环境练习,并始终保持完整的备份。随着经验积累,你会发现手工迁移其实是一个系统而有条理的过程。