博主干了这么多年 WordPress 部署,坦白说,这活儿说难不难,说简单也真不简单。尤其最近看到很多朋友在各种搜索“docker部署”、“nginx部署多个web项目”、“redis docker compose生产环境部署”之类的关键词,其实底层的部署思维都是相通的。今天我就把 WordPress 部署这件事从头到尾捋一遍,从方案选型、手动安装、容器化部署,到性能优化、安全加固和问题排查,一次性讲透,保证你看完能少踩几个我当年踩过的坑。
这篇攻略适合谁?刚接触服务器想自己搭站的新手,也适合已经在用虚拟主机但想迁到云服务器、或者想学 Docker 部署的技术人。我会尽量把每一步背后的“为什么”也讲清楚,而不是只丢给你一串命令。
1. 部署之前,先把方案选明白
1.1 三种主流部署方式怎么选
我见过太多人一上来就急着敲命令,结果环境装到一半发现装错了系统版本,或者后续扩展卡死。部署 WordPress 之前,先花十分钟把方案定下来,后面能省一整天的折腾时间。
目前主流的部署方式有三种:本地环境(比如 XAMPP、WAMP)、云服务器 + LNMP(Linux + Nginx + MySQL + PHP)手动搭建、以及 Docker 容器化部署。
本地环境适合开发调试,装个 XAMPP 一键启动,几分钟就能在电脑里跑起一个 WordPress。但本地环境只适合“写代码、调主题、改插件”,不适合做正式站点,因为性能和网络环境跟线上完全不是一回事。
云服务器 + LNMP 手动搭建是我最推荐新手走一遍的方式。虽然需要敲命令,但整个过程中你能真正理解 Nginx、PHP-FPM、MySQL 这三个组件是怎么协同工作的。理解了这些,以后遇到白屏、数据库连不上这类问题,你基本能猜出问题出在哪一层,不用每次靠搜索引擎救命。
Docker 容器化部署则是这几年团队协作和生产环境的标配。它的好处是环境隔离、可复制、可回滚。比如你在本地用 Docker 跑起来的 WordPress,直接推到另一台服务器上也能一模一样地跑起来。不过 Docker 有个学习曲线,对完全没有 Linux 基础的朋友来说,刚开始会有点不适应。
三者的取舍,我做成了一张表方便你对照:
| 对比维度 | 本地环境 | 云服务器 + LNMP | Docker 容器化 |
| 学习门槛 | 最低 | 中等 | 偏高 |
| 适合场景 | 开发调试 | 个人站点、小型企业站 | 团队协作、自动化运维、多站点 |
| 资源占用 | 高(本机承担) | 低 | 中等 |
| 部署速度 | 最快 | 中等 | 安装快,但理解慢 |
| 可移植性 | 差 | 一般 | 最强 |
| 维护成本 | 低 | 中等 | 中等偏高 |
我的建议很直接:如果你是想认真搭一个能长期运行的网站,别偷懒跳过手动 LNMP 这一步。哪怕你最后选择了 Docker,先手动搭一次带给你的排查能力,会在未来无数次救你于水火之中。
1.2 服务器配置怎么估算
服务器配置的问题,我看到很多人一上来就问“2核4G够不够”“1核1G能不能跑”。实际上,WordPress 对服务器资源的消耗,很大程度上取决于你有没有做好缓存、用的主题插件是否克制,以及访问量到底多大。
按我的经验给个参考:单纯跑一个 WordPress 站点,访问量不大(日均几百到一两千 PV)的情况下,1核1G 的机器配合 Nginx + PHP-FPM + Redis 缓存,是能撑住的。但如果你的主题很臃肿、插件装了几十个,1G 内存跑 PHP-FPM 和 MySQL 会非常吃力,经常出现“数据库连接错误”那种吓人的提示。
如果你打算用 Docker 跑 WordPress,我建议至少 2 核 4G。因为 Docker 本身有开销,再加上 MySQL、Redis、Nginx 这些容器,内存一下子就吃紧了。特别是 MySQL 默认会吃掉大量内存做缓存,你必须在配置里做一些限制,这个我在后面 Docker 部分会详细讲。
硬盘方面,网站源码本身很轻,一般几百 MB 到几个 GB 就够,但图片、备份文件会持续增长。建议系统盘和数据盘分开,至少预留 40GB 以上的空间。带宽更是容易被忽视的坑,之前有个朋友用 1M 带宽的机器跑站,后台传一张 5MB 的图片等了一分多钟,用户访问稍微大点的图直接卡死。如果图片量大,要么升级带宽,要么老老实实上 CDN。
域名、SSL 证书这些就不展开说了,证书直接用免费机构签发的就行,后面我会在部署上线环节讲怎么配。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. LNMP 手把手装一个 WordPress
2.1 操作系统的准备与基础组件安装
LNMP 手动搭建的第一步,是有一台干净的服务器。我习惯用 Debian 系的系统,下面命令都以 Ubuntu 22.04 为例。如果你手里的机器是 CentOS 或者别的发行版,包管理命令要做相应替换。
新服务器拿到手,第一件事是更新系统包,然后创建一个普通用户,别用 root 裸奔。虽然这里为了省事很多人直接 root 操作,但正式环境里用 root 跑 Web 服务万一被提权,那损失是不可估量的。
更新并安装基础工具:
bash复制sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip zip vim
接下来安装 Nginx:
bash复制sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
装完后浏览器直接访问服务器 IP,如果看到 Nginx 的欢迎页,说明 Web 服务器已经起来了。
然后是 PHP 及常用扩展。WordPress 官方现在推荐 PHP 8.1 以上版本,性能比 PHP 7.4 有明显提升。Ubuntu 22.04 自带的 PHP 版本是 8.1,直接装就行:
bash复制sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-imagick php-redis
这里解释一下为什么这些扩展一个都不能少:php-mysql 是连数据库用的,php-gd 和 php-imagick 用来处理图片缩略图,php-mbstring 和多字节字符处理有关,php-xml 被很多插件依赖,php-zip 是后台安装主题插件时解压压
