作为一名用 WordPress 写了5年博客的老玩家,经常有朋友问我怎么安装和迁移 WordPress——不管是新手入门建站,还是换服务器迁移数据,这俩都是刚需操作。今天就把我实战踩坑总结的几种方案整理出来,全程干货,新手跟着操作也能搞定。
虽然现在静态博客工具(比如 Hexo、Hugo)很火,但我一直偏爱 WordPress。核心原因很实在:可视化后台不用懂代码,写文章、换主题全靠点点鼠标;插件生态太全,统计、评论管理、SEO 优化这些功能直接搜了就能用;支持自定义代码和二次开发,后期想加功能不受限;而且数据存在自己服务器上,不怕平台跑路,迁移也灵活。如果是新手想快速搭个人博客,或者需要长期维护、频繁更新内容,WordPress 绝对是首选。
一、WordPress 安装:两种主流方案,按需挑选
(一)Docker 安装,适合技术党
我自己的博客就是用 Docker 搭建的,最大优势是环境隔离,不会和服务器上其他软件冲突,后续迁移也方便。

站长导航
优网导航旗下汇集全网优质站长工具,一站式站长工具大全导航网站
1. 前期准备
先创建一个专属目录,统一管理配置和数据,我习惯放在 ~/docker/wordpress,命令如下:
work=~/docker/wordpress && mkdir -p $work && cd $work
然后需要开放端口,这里选 18080 端口(避免和其他服务冲突),防火墙配置命令分系统:
# Ubuntu/Debian系统用ufw防火墙,这条命令是允许18080端口的TCP连接,并备注WordPress,最后重新加载防火墙规则
sudo ufw allow 18080/tcp comment 'WordPress' && sudo ufw reload
# CentOS系统用firewalld,取消注释后执行,作用是永久开放18080端口并重新加载规则
# sudo firewall-cmd --add-port=18080/tcp --permanent && sudo firewall-cmd --reload
2. 编写 docker-compose.yml 文件
新建这个配置文件,直接复制下面的内容就行,注意两个关键坑要避开:
- 要是服务器是 arm 架构,得把
mysql:5.7改成mysql:oracle,不然会启动报错; - 数据库密码和用户密码一定要设复杂点,别用默认值,示例里的密码仅作参考。
---
version: '3.0'
services:
db:
image: mysql:5.7 # 重点提醒:arm架构服务器请替换为mysql:oracle
container_name: wordpress-db
restart: unless-stopped
# 要是用mysql 8.0版本,建议取消下面这行注释,限制binlog大小和过期时间
# command: --max-binlog-size=200M --expire-logs-days=2
environment:
MYSQL_ROOT_PASSWORD: rootpassword # 按需修改成复杂密码
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: yourpassword # 按需修改成复杂密码
volumes:
- './db:/var/lib/mysql' # 数据库数据持久化到本地db目录
networks:
- default
app:
image: wordpress:latest # 拉取最新版WordPress镜像
container_name: wordpress-app
restart: unless-stopped
ports:
- 18080:80 # 端口映射,和前面开放的防火墙端口保持一致,可按需修改
environment:
WORDPRESS_DB_HOST: db # 连接上面定义的db服务
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: yourpassword # 和上面的MYSQL_PASSWORD保持一致
volumes:
- './app:/var/www/html' # WordPress文件持久化到本地app目录
links:
- db:db
depends_on:
- redis
- db
networks:
- default
redis:
image: redis:alpine # 轻量版Redis镜像,用于缓存提升速度
container_name: wordpress-redis
restart: unless-stopped
volumes:
- ./redis-data:/data # Redis缓存数据持久化
networks:
- default
networks:
default:
name: wordpress # 自定义网络名称,方便容器间通信
3. 启动服务并完成初始化
配置文件搞定后,执行下面的命令后台启动服务:

AI 工具导航
优网导航旗下AI工具导航,精选全球千款优质 AI 工具集
# 进入之前创建的工作目录,然后启动docker-compose服务
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 就行。
配置完成后,直接访问 https://yournewdomain.com 就能登录博客了。
(二)宝塔一键安装,适合新手
要是不想折腾命令行和配置文件,宝塔面板的一键安装绝对适合你,全程鼠标操作,不用懂技术也能搞定。

免费在线工具导航
优网导航旗下整合全网优质免费、免注册的在线工具导航大全
1. 前期准备
先在服务器上安装宝塔面板,登录后需要安装运行环境:PHP(推荐 7.4 或 8.0 版本)、MySQL、Nginx。这些软件面板会自动安装,不用手动操作。
宝塔集成了很多网站部署的一键脚本,像 WordPress 博客、Discuz 论坛这些常用程序,都能快速部署。
2. 一键部署 WordPress 步骤
- 点击左侧「网站」→「添加站点」,输入你的域名,然后选择「一键部署」;
- 在模板列表里找到「WordPress」(我用的是 6.0.2 版本,稳定不踩坑),数据库账号密码可以让面板自动生成,记得保存好;
- 点击「提交」,宝塔会自动下载 WordPress 源码、创建数据库,全程不用管,等一会儿就好;
- 部署完成后,访问你的域名,进入 WordPress 安装向导,后续步骤和 Docker 安装一致。
3. 安装向导收尾
- 选择语言为简体中文,点击继续;
- 填写数据库连接信息:把宝塔创建的数据库名、用户名、密码填进去,数据库主机默认填 localhost,表前缀保持 wp_ 即可,点击提交;
- 设置网站信息:填写站点标题、管理员账号密码、电子邮箱,是否允许搜索引擎索引根据需求选择,最后点击「安装 WordPress」;
- 安装完成后,通过
https://yournewdomain.com/wp-admin访问后台,用刚才设置的账号密码登录就行。
宝塔的优势很明显:自动配置好了 Nginx 反向代理和 HTTPS,不用自己动手,后期管理文件、数据库也方便,纯可视化操作,新手闭眼冲。
二、WordPress 迁移:四种方案,覆盖不同场景
博客用久了,换服务器、换域名都是常事,迁移就成了刚需。我试过四种迁移方法,各有优劣,大家根据自己的情况选。
(一)手动迁移:技术党专属,灵活度拉满
手动迁移步骤多一点,但灵活度高,适合需要自定义备份内容的用户,步骤拆解如下:
1. 备份原站点数据
- 备份数据库:用 phpMyAdmin 登录原服务器的数据库,找到 WordPress 对应的数据库,点击「导出」,选择 SQL 格式,下载备份文件;
- 备份博客文件:用 FTP 工具连接原服务器,下载
/var/www/html目录下的所有文件——主题、插件、上传的图片都在这个目录里。
2. 恢复到新服务器
- 恢复数据库:在新服务器上创建一个和原服务器同名的数据库,用 phpMyAdmin 导入之前备份的 SQL 文件;
- 恢复博客文件:用 FTP 工具把备份的文件上传到新服务器的站点目录;
- 修改配置文件:打开新服务器站点目录下的
wp-config.php,把数据库账号密码改成新服务器的配置; - 替换旧域名(换域名时用):安装 Better Search Replace 插件,批量替换数据库里的旧域名,避免链接失效。
(二)宝塔面板迁移:新手友好,可视化操作
如果原站点是用宝塔搭建的,迁移就很简单,还支持定时备份到云存储,异地备份更安全。
1. 提前设置定时备份(推荐)
- 点击左侧「计划任务」→「添加任务」,任务类型选择「网站备份」;
- 选择要备份的网站和数据库,备份周期建议选每月一次(或每周),远程存储推荐腾讯云 COS(我一直在用,稳定靠谱);
- 填写 COS 的 AccessKey、SecretKey、存储桶信息,保存后就会自动备份,还能保留 3 份历史备份,不怕备份文件丢失。
2. 还原迁移步骤
- 导入数据库:在新服务器的宝塔面板里添加数据库,设置好名称和密码,点击「导入」,上传之前备份的数据库压缩包,然后点击「导入」解压覆盖,数据库就还原好了;
- 上传站点文件:在宝塔面板创建一个新的 PHP 站点,填入域名和目录,删除默认文件,上传之前备份的站点压缩包,解压后移动到站点目录;
- 修改配置文件:打开站点目录下的
wp-config.php,修改数据库名称、用户名、密码,和新服务器的数据库配置一致; - 更换域名额外操作:如果换了域名,在
wp-config.php最后添加两行代码:
define('WP_HOME', 'http://yournewdomain.com'); // 改成你的新域名
define('WP_SITEURL', 'http://yournewdomain.com'); // 改成你的新域名
然后登录 WordPress 后台,进入「设置」→「常规」,把「WordPress 地址 (URL)」和「站点地址 (URL)」都改成新域名,点击保存即可。
(三)Docker 迁移:最简单高效,技术党首选
如果你的 WordPress 是用 Docker 搭建的,迁移简直不要太方便!因为配置文件里已经把博客文件和数据库做了持久化映射,步骤就两步:
1. 备份原服务器数据
把原服务器上 ~/docker/wordpress 目录下的三个文件夹打包备份,下载到本地:
db文件夹:存放数据库数据;app文件夹:存放 WordPress 核心文件、主题、插件;redis-data文件夹:存放 Redis 缓存数据。
2. 恢复到新服务器
- 在新服务器上创建同样的目录:
~/docker/wordpress; - 把备份的三个文件夹上传到这个目录;
- 执行命令
docker-compose up -d,启动服务就搞定了。
这种方法不用改任何配置文件,数据完全一致,我换服务器的时候用这个方法,全程不到 10 分钟就搞定了。
(四)插件迁移,无技术门槛
如果既不用 Docker 也不用宝塔,用插件迁移是最方便的选择,我推荐 WPvivid Backup,免费功能完全够用,还支持远程存储。
1. 安装插件
在 WordPress 后台「插件」→「安装插件」,搜索「WPvivid Backup」,点击安装并启用。
2. 备份原站点
- 点击左侧「WPvivid Backup」→「备份与恢复」;
- 选择「数据库 + 文件」(确保所有数据都备份),点击「立即备份」;
- 备份完成后,要么下载备份文件到本地,要么配置远程存储(推荐 FTP,国内访问稳定),自动上传备份文件。
3. 恢复到新站点
- 在新服务器上搭建好空白的 WordPress(用 Docker 或宝塔都可以);
- 同样安装 WPvivid Backup 插件;
- 点击「备份与恢复」→「上传」,上传之前备份的文件;
- 点击「还原」,等待还原完成,新站点就和原站点一模一样了,包括账号密码、主题插件。
这种方法全程在 WordPress 后台操作,不用碰服务器文件,适合新手。缺点是如果备份文件比较大,上传下载会慢一点。
三、必备插件推荐
安装好 WordPress 后,这几个插件建议必装,能解决很多实际问题:
- Akismet Anti-Spam:反垃圾评论神器,能自动拦截大部分垃圾评论,不用手动清理;
- WP Mail SMTP:解决 WordPress 默认邮件发送失败的问题,配置后评论通知、密码找回邮件都能正常发送;
- WP Statistics:网站访问统计工具,能看到访问量、访客来源、热门文章,比第三方统计更隐私;
- Better Search Replace:批量替换数据库内容,换域名、改网站标题的时候特别好用;
- Simple Local Avatars:自定义用户头像,不用依赖 Gravatar,国内访问速度更快;
- WP Githuber MD:Markdown 编辑器,写技术博客必备,支持代码高亮、数学公式;
- Redis Object Cache:Redis 缓存插件,和 Docker 配置里的 Redis 配合使用,能大幅提升博客加载速度。
四、总结
- 新手入门:优先选宝塔一键安装,操作简单,后期管理方便,不用懂技术;
- 技术用户:选 Docker 安装,环境隔离,迁移高效,适合长期维护;
- 迁移场景:Docker 用户直接用目录备份迁移,宝塔用户用面板备份迁移,普通用户用 WPvivid Backup 插件,按需选择就行。
其实 WordPress 搭建和迁移看着复杂,实际操作一遍就会了。我第一次迁移的时候折腾了半天,现在换服务器半小时就能搞定。如果操作过程中遇到问题,比如 Docker 启动失败、迁移后链接失效,都可以留言问我,我会尽量帮忙解答~



