折腾记录:2025 WordPress 搭建 + 迁移全攻略,Docker / 宝塔 / 插件多方案任选

一、前言

作为用 WordPress 写了四年博客的老用户,之前分享过不少主题配置、插件推荐的内容,很多朋友问过我怎么安装和迁移 WordPress,毕竟不管是新手入门还是换服务器,这两个都是刚需操作。今天就把我实际用过的几种安装方式和迁移方法整理出来,全是自己踩坑后的实战经验,新手也能跟着走。

虽然现在有 Hexo、Hugo 这些静态博客,但我还是偏爱 WordPress,主要是因为:

  • 可视化后台,不用懂代码也能管理,写文章、换主题都方便;
  • 插件生态太丰富,想要的功能(统计、评论管理、SEO 优化)基本都有;
  • 可扩展性强,支持自定义代码、二次开发,后期想加功能也不限制;
  • 数据存在自己手里,不用担心平台跑路,迁移也灵活。

如果你是新手,想快速搭建个人博客;或者像我一样,需要长期维护、经常更新内容,WordPress 绝对是首选。

二、WordPress 安装:两种主流方式,按需选择

(一)Docker 安装:适合技术用户,环境隔离不冲突

我自己的博客就是用 Docker 搭的,优点是环境隔离,不会和服务器上其他软件冲突,迁移也方便。

1. 准备工作

先创建一个专属目录,我习惯放在~/docker/wordpress,统一管理配置和数据:

work=~/docker/wordpress && mkdir -p $work && cd $work

然后开放端口,我选的是 18080,避免和其他服务冲突,防火墙命令安排上:

# Ubuntu/Debian用ufw防火墙
sudo ufw allow 18080/tcp comment 'WordPress' && sudo ufw reload

# CentOS用firewalld
# sudo firewall-cmd --add-port=18080/tcp --permanent && sudo firewall-cmd --reload

2. 编写 docker-compose.yml

新建 docker-compose.yml 文件,直接复制下面的配置,注意两个坑:

  • 如果你用的是 arm 架构的服务器,把mysql:5.7改成mysql:oracle,不然会报错;
  • 数据库密码和用户密码一定要改复杂点,别用默认的,我这里只是示例。
---
version: '3.0'

services:
  db:
    image: mysql:5.7 # arm架构的机器请将mysql:5.7改为mysql:oracle
    container_name: wordpress-db
    restart: unless-stopped
    # command: --max-binlog-size=200M --expire-logs-days=2 # 使用mysql 8.0的小伙伴建议使用
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword # 按需修改
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: yourpassword # 按需修改
    volumes:
      - './db:/var/lib/mysql'
    networks:
      - default

  app:
    image: wordpress:latest
    container_name: wordpress-app
    restart: unless-stopped
    ports:
      - 18080:80  # 按需修改。与防火墙开放端口一致。
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: yourpassword # 按需修改
    volumes:
      - './app:/var/www/html'
    links:
      - db:db
    depends_on:
      - redis
      - db
    networks:
      - default

  redis:
    image: redis:alpine
    container_name: wordpress-redis
    restart: unless-stopped
    volumes:
      - ./redis-data:/data
    networks:
      - default

networks:
  default:
    name: wordpress

3. 启动服务,完成初始化

配置文件写完,直接后台启动就行:

# 开启服务
cd $work && docker-compose up -d 

启动后用docker ps看看状态,只要 db、app、redis 三个容器都是 Up,就说明成功了。接下来访问http://服务器IP:18080,就能进入 WordPress 安装向导:

  • 选择简体中文;
  • 填写数据库信息(和 docker-compose.yml 里的一致);
  • 设置博客标题、管理员账号密码,完成安装。

最后可以用 Nginx 或 NPM 做反向代理,绑定域名yournewdomain.com并配置 HTTPS,我之前用宝塔面板配置的,步骤很简单,新建站点,反向代理到 127.0.0.1:18080 就行。

image-20220427090856986

设置完成后直接登陆:https://yournewdomain.com

(二)宝塔一键安装:新手首选,10 分钟搞定

如果不想折腾 Docker,宝塔面板的一键安装绝对是新手福音,不用写配置文件,点点鼠标就好。

1. 准备工作

先在服务器上安装宝塔面板,然后登录面板,安装 PHP(推荐 7.4 或 8.0 版本)、MySQL、Nginx 这些环境,面板会自动安装,不用手动操作。

宝塔中集成了不少网站部署的一键脚本,只需要进行简单的设置,就可以完成复杂网页的部署,比如 wordpress 个人博客、discuz 论坛等。

2. 一键部署 WordPress

  1. 点击左侧 “网站”→“添加站点”,输入你的域名,选择 “一键部署”;
  2. 在模板里选择 “WordPress”,设置数据库账号密码(自动生成也可以,记得保存好);
  3. 点击 “提交”,宝塔会自动下载 WordPress 源码、创建数据库,全程不用管;
  4. 部署完成后,访问你的域名,就能进入安装向导,和 Docker 安装的后续步骤一样。

image-20230829220309288

完成配置后,点击提交,过一会就会自动拉取 wordpress 源代码进行部署,通过点击弹窗中的访问站点即可访问网站服务。

image-20230829220843006

访问网址进入 wordpress 网站页面,开始 wordpress 的初始化配置,选择语言为简体中文

image-20230829220924786

点击继续,下一步进行数据库绑定,将网站创建中一起创建的数据库名、用户名和密码填入栏中,其他的保持默认就行,点击提交。

image-20230829221010866

完成数据库配置,进入网站信息设置页面,标题、用户名、密码、电子邮箱等信息自行修改,然后点击安装 WordPress 进行部署。

image-20230829221234926

完成部署后,通过上一步自己设置的用户名和密码就可以登录服务器后台,假设博客地址为 https://yournewdomain.com,博客后台的登录网址为 https://yournewdomain.com/wp-admin

image-20230829221507291

登录后,进入 WordPress 后台界面,如图所示。

搭建成功,可以自定义自己的模块、插件、等等配置了。

image-20230829221548159

宝塔的好处是自动配置了 Nginx 反向代理和 HTTPS,不用自己动手,后期管理文件、数据库也方便,适合不懂技术的新手。

三、WordPress 迁移:四种方法,覆盖不同场景

博客用久了,难免会遇到换服务器、换域名的情况,迁移就成了刚需。我试过几种迁移方法,各有优劣,大家根据自己的情况选。

1.手动迁移:适合技术用户,灵活度高

手动迁移比较麻烦,但灵活度高,适合需要自定义备份内容的用户,步骤如下:

  1. 备份数据库:用 phpMyAdmin 登录原服务器数据库,选择 WordPress 对应的数据库,点击 “导出”,选择 SQL 格式,下载备份文件;
  2. 备份博客文件:用 FTP 工具连接原服务器,下载/var/www/html目录下的所有文件(主题、插件、上传的图片都在这里);
  3. 恢复数据库:在新服务器上创建同名数据库,用 phpMyAdmin 导入备份的 SQL 文件;
  4. 恢复博客文件:用 FTP 工具把备份的文件上传到新服务器的站点目录;
  5. 修改配置文件:打开wp-config.php,修改数据库账号密码,和新服务器一致;
  6. 替换旧域名:如果换了域名,用 Better Search Replace 插件批量替换数据库里的旧域名,避免链接失效。

2. 宝塔面板迁移:新手友好,可视化操作

如果用的是宝塔面板,迁移也很简单,还支持定时备份到云存储,比如腾讯云 COS、阿里云 OSS,异地备份更安全。

1. 定时备份(推荐提前设置)

  1. 点击左侧 “计划任务”→“添加任务”,选择 “网站备份”;
  2. 选择要备份的网站和数据库,备份周期选每月一次(或每周),远程存储选腾讯云 COS(我用的这个,稳定);
  3. 填写 COS 的 AccessKey、SecretKey、存储桶,保存后就会自动备份,还能保留 3 份历史备份,不怕备份文件丢失。

我同时备份wordpress的目录和数据库,每月执行一次,备份到腾讯云COS,保留3份。

image-20251122124728596

如下图所示,目录和数据库分别备份到相应的文件夹。

image-20251122125106449

2. 还原迁移

如果你需要还原站点了,使用宝塔面板比较简单,分两步就行了,上传数据库和导入数据库文件即可。

导入数据库

首先在宝塔面板选择添加数据库,完成命名和密码设置,点击导入备份,从本地上传之前备份的压缩包,导入后就会显示在下方,这样并没有完成,还要点击导入,才会实现解压压缩包数据,完成对新数据库的覆盖,这样就完成数据库的还原了,还是非常简单的。

image-20251122125532422

上传站点文件

接下来就是上传站点文件,首先通过宝塔面板创建一个新的PHP站点。填入你的站点域名和目录。

image-20251122125954486

来到站点目录,删除默认创建的站点文件,将之前备份的站点压缩包文件上传。

image-20251122130327895

解压到网站目录

image-20251122131621494

将解压的文件移动到站点目录里,这样就完成了站点文件迁移。

image-20251122132319118

注意事项
修改配置文件

不过这样还没完成配置,还要更改下博客的数据库和站点配置文件。因为数据库我们是重新创建的,名字和密码可能会不一样(你也可以设置成一样的),所以需要重新配置。

打开目录下解压的wp-config.php的文件,修改这一段代码

define( 'DB_NAME', 'yourdbname' );  #修改成你的数据库名字

/** Database username */
define( 'DB_USER', 'yourdbname' );  #修改成你的数据库用户名字

/** Database password */
define( 'DB_PASSWORD', 'yourdbpassword' );  #修改成你的数据库密码

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8mb4' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

注意你迁移前后的博客域名注意要一致,否则会无法访问站点,这就是wordpress的痛点了,他要求只能通过一个站点域名访问wordpress站点,如果不一样,就要在配置文件里修改一下。在wp-config.php文件最后加上这一段代码。

define('WP_HOME', 'http://yournewdomain.com');    #修改成你的站点域名
define('WP_SITEURL', 'http://yournewdomain.com');  #修改成你的站点域名
修改站点地址

完成这样后,就可以访问你迁移后的wordpress站点了。不过这样简单的修改域名只是让你可以访问站点,还存在一些问题,毕竟WordPress更换域名不是简单把DNS改一下那么轻松,它涉及数据库、缓存、搜索引擎设置、重定向等多个层面。

进入站点后,进入后台的:设置 > 常规 > WordPress地址(URL) & 站点地址(URL)

确保这两个都改为新域名,点击保存后网站会立即跳转。

image-20251122135544291

批量替换数据库中的旧域名

Better Search Replace 是一个可以对WordPress数据库进行搜索和替换的插件,比如你网站更换域名,或者你需要一次性更换邮箱设置(可能在不同的选项都用到了这个邮箱),等等,通过 Better Search Replace 插件就可以非常方便地实现。

可以在后台 插件 -> 安装插件 界面,搜索 Better Search Replace 进行在线安装,或者到这里下载 Better Search Replace 后手动安装插件。

启用插件以后,就可以在 工具 – Better Search Replace 进入插件界面。

image-20251122162643026

假设原来网址为 http://localhost,线上的网址为 http://yournewdomain.com ,那我们就可以按照下面的步骤操作。

  1. 先备份下你的数据库
  2. 在 搜索 字段,输入你要查找的内容,这里输入 http://localhost
  3. 在 替换为 字段,输入 http://yournewdomain.com
  4. 选择数据库表,全选所有数据表
  5. 要真正替换数据,就取消“作为尝试运行”那个选项
  6. 点击“运行搜索/替换”按钮就开始执行了

如果在运行过程中,提示执行方面的错误,可以尝试切换到下图的设置标签,减少“最大页面大小”的值,保存后再去试试。

这样就完成wordpress站点的迁移了。

3.Docker 迁移:最简单,推荐技术用户

如果你的 WordPress 是用 Docker 搭的,迁移简直不要太方便!因为我们在 docker-compose.yml 里已经把博客文件和数据库都做了持久化映射,迁移步骤就两步:

  1. 备份数据:把原服务器上~/docker/wordpress目录下的db(数据库)、app(博客文件)、redis-data(缓存)三个文件夹打包备份,下载到本地;
  2. 恢复数据:在新服务器上创建同样的目录~/docker/wordpress,把备份的三个文件夹上传过去,然后重新运行docker-compose up -d,搞定!
 services:
  db:
    ...
    volumes:
      - './db:/var/lib/mysql'
    ...
  app:
    ...
    volumes:
      - './app:/var/www/html'
    ... 
  redis:
    ...
    volumes:
      - ./redis-data:/data
    ...

这种方法不用改配置文件,数据完全一致,我换服务器的时候就是这么迁的,全程不到 10 分钟。

4.使用插件迁移

如果既不用 Docker 也不用宝塔,用插件迁移是最方便的,我推荐 WPvivid Backup,免费功能完全够用,还支持远程存储。

1. 安装插件

在 WordPress 后台 “插件”→“安装插件”,搜索 “WPvivid Backup”,安装并启用。

image-20251030004616779

2. 备份原站点

  1. 点击左侧 “WPvivid Backup”→“备份与恢复”,选择 “数据库 + 文件”,点击 “立即备份”;
  2. 备份完成后,点击 “下载” 把备份文件保存到本地,或者配置远程存储,自动上传备份文件。

wpvivid备份与恢复

计划

勾选“启用备份计划”,时间为“每天”,文件选择“数据库+文件(WordPress文件)”,保存修改即可。

wpvivid自动备份计划

建议将备份文件发送到远程存储,步骤见下方“远程存储”设置。

远程存储

远程存储是重点,也是一定要配置的功能!

WPvivid支持使用 Google Drive 、Dropbox 、oneDrive 、Amazon S3 、DigitalOcean Spaces 、 FTP 等方式配置远程存储。

前几种网盘国内的网络都无法访问或者不太稳定,这里推荐自己搭建FTP进行远程存储。

image-20251030005118658

配置远程存储成功后,点击上方“计划”,勾选“启用备份计划”与“发送文件到远程存储”;点击“设置”,勾选“上传到远程存储后,将备份存储在本机”,保存修改即可。

启用自动备份计划

3. 恢复新站点

  1. 在新服务器上搭建好空白的 WordPress(用 Docker 或宝塔都可以);
  2. 同样安装 WPvivid Backup 插件,点击 “备份与恢复”→“上传”,上传之前备份的文件;
  3. 点击 “还原”,等待还原完成,新站点就和原站点一模一样了,包括账号密码、主题插件。

这种方法适合新手,不用操作服务器文件,全程在 WordPress 后台完成,缺点是备份文件大的话,上传下载比较慢。

wpvivid数据恢复演示

四、WordPress 插件推荐

安装好 WordPress 后,这些插件一定要装,能提升博客功能和体验:

  1. Akismet Anti-Spam:反垃圾评论神器,能自动拦截大部分垃圾评论,不用手动删除;
  2. WP Mail SMTP:解决 WordPress 默认邮件发送失败的问题,配置 SMTP 后,评论通知、密码找回邮件都能正常发送;
  3. WP Statistics:网站访问统计,能看到访问量、访客来源、热门文章,比第三方统计工具更隐私;
  4. Better Search Replace:批量替换数据库内容,换域名、改网站标题都能用;
  5. Simple Local Avatars:自定义用户头像,不用依赖 Gravatar,国内访问更快;
  6. WP Githuber MD:Markdown 编辑器,写技术博客必备,支持代码高亮、数学公式;
  7. Redis Object Cache:Redis 缓存插件,和我们 Docker 配置里的 Redis 配合,能大幅提升博客加载速度。

五、总结

  • 新手入门:优先选宝塔一键安装,简单快捷,后期管理方便;
  • 技术用户:选 Docker 安装,环境隔离,迁移方便,适合长期维护;
  • 迁移场景:Docker 用户用目录备份迁移,新手用宝塔用户用面板备份,按需选择。

WordPress 搭建和迁移看着复杂,其实实操一遍就会了,我第一次迁移的时候折腾了半天,现在换服务器半小时就能搞定。如果大家在操作过程中遇到问题,比如 Docker 启动失败、迁移后链接失效,可以留言问我,我会尽量帮忙解答~

参考

  1. 如何更换WordPress网站域名 – WordPress大学
  2. Docker系列 WordPress系列 搭建WordPress个人博客 - Bensz
  3. (19 封私信 / 81 条消息) 零基础WordPress建站教程:WP安装、主题插件、SEO一网打尽 - 知乎
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇