docker搭建LNMP------做论坛 wordpress
·
前言
随着互联网技术的发展,快速搭建稳定、可扩展的网站环境成为许多开发者和站长的需求。LNMP(Linux + Nginx + MySQL + PHP)作为经典的网站服务架构,广泛应用于各类动态网站部署,而 WordPress 则是全球流行的内容管理系统,尤其适合快速搭建论坛、博客等站点。
本指南将详细介绍如何通过 Docker 和 Docker Compose 工具快速搭建 LNMP 环境并部署 WordPress 论坛。相比传统的手动部署方式,Docker 容器化部署具有环境隔离、配置简单、迁移方便等优势,能有效减少因系统环境差异导致的部署问题,同时简化后续的维护与升级流程。无论是开发测试还是生产环境使用,本方案都能为你提供清晰、可操作的实施步骤。
1 安装docker
# 关闭防火墙和增强功能
systemctl stop firewalld.service
setenforce 0
# 1. 安装 Docker
# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 Docker-CE
yum install -y docker-ce docker-ce-cli containerd.io
# 启动服务
systemctl start docker
systemctl enable docker
# 华为云加速器(镜像加速器)
mkdir -p /etc/docker
------------------------------------------------------------------------------------------------------------
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [ "https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com" ]
}
EOF
------------------------------------------------------------------------------------------------------------
2 安装 Docker Compose
# 下载最新版 Docker Compose(截至2025年,v2.27.0 为稳定版,可替换为最新版本)
curl -L "https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
chmod +x /usr/local/bin/docker-compose
# 创建软链接(确保命令全局可用)
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装(出现版本信息即正常)
docker-compose --version
3 编写配置文件
# 创建项目目录
mkdir -p /opt/lnmp-wordpress && cd /opt/lnmp-wordpress
# 创建子目录(分别存放 Nginx 配置、日志、MySQL 数据、WordPress 代码)
mkdir -p nginx/conf.d nginx/logs mysql wordpress
# 编写核心配置文件
vim /opt/lnmp-wordpress/docker-compose.yml
------------------------------------------------------------------------------------------------------------
version: '3'
services:
# Nginx 服务
nginx:
image: nginx:latest # 使用最新版 Nginx 镜像
ports:
- "80:80" # 映射宿主机 80 端口到容器 80 端口
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d # 挂载 Nginx 配置
- ./nginx/logs:/var/log/nginx # 挂载 Nginx 日志
- ./wordpress:/var/www/html # 挂载 WordPress 代码目录
depends_on:
- php # 依赖 PHP 服务(确保 PHP 先启动)
restart: always # 容器退出后自动重启
networks:
- lnmp-net # 加入自定义网络
# PHP 服务(含 PHP-FPM,用于解析 PHP 代码)
php:
image: php:7.4-fpm # WordPress 推荐 PHP 7.4+,兼容稳定
volumes:
- ./wordpress:/var/www/html # 挂载代码目录到容器
depends_on:
- mysql # 依赖 MySQL 服务
restart: always
networks:
- lnmp-net
# 安装 WordPress 必需的 PHP 扩展(mysqli/pdo 用于数据库连接)
command: >
bash -c "docker-php-ext-install mysqli pdo pdo_mysql &&
chown -R www-data:www-data /var/www/html &&
php-fpm" # 启动 PHP-FPM 服务
# MySQL 服务
mysql:
image: mysql:5.7 # WordPress 兼容 MySQL 5.7(稳定版)
ports:
- "3306:3306" # 映射数据库端口(可选,本地连接用)
volumes:
- ./mysql:/var/lib/mysql # 数据持久化到宿主机
environment:
- MYSQL_ROOT_PASSWORD=Lnmp@123 # MySQL root 密码(自定义)
- MYSQL_DATABASE=wordpress_db # 自动创建 WordPress 数据库
- MYSQL_USER=wp_user # WordPress 数据库用户
- MYSQL_PASSWORD=Wp@456 # 数据库用户密码(自定义)
restart: always
networks:
- lnmp-net
# 自定义网络(使服务间可通过服务名通信)
networks:
lnmp-net:
driver: bridge
============================================================================================================
# 编写 Nginx 配置文件
vim nginx/conf.d/wordpress.conf
------------------------------------------------------------------------------------------------------------
server {
listen 80;
server_name localhost; # 若有域名,替换为你的域名(如 example.com)
root /var/www/html; # 网站根目录(对应容器内的 WordPress 目录)
index index.php index.html index.htm; # 默认首页
# 日志路径(映射到宿主机 ./nginx/logs 目录)
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# 处理 PHP 文件(转发到 PHP 容器的 9000 端口)
location ~ \.php$ {
fastcgi_pass php:9000; # "php" 是 docker-compose 中 PHP 服务的名称
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; # 引入默认 FastCGI 参数
}
# 静态文件缓存(优化性能)
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d; # 缓存 30 天
}
}
============================================================================================================
# 启动 LNMP 服务(在 /opt/lnmp-wordpress 下执行)
docker-compose up -d
# 查看启动状态
docker-compose ps
4 下载并配置 WordPress 代码
# 进入 WordPress 目录
cd /opt/lnmp-wordpress/wordpress
# 下载最新版 WordPress 中文包(若速度慢,可手动下载上传)
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
# 解压并移动文件到当前目录
tar -zxvf latest-zh_CN.tar.gz
mv wordpress/* .
rm -rf wordpress latest-zh_CN.tar.gz # 清理压缩包和空目录
# 设置目录权限(关键:避免安装时出现权限错误)
CentOS/RHEL 系统
# 1. 查看 PHP 容器内 www-data 用户的 UID/GID(容器内固定为 33)
docker exec -it lnmp-wordpress-php-1 id www-data
# 输出类似:uid=33(www-data) gid=33(www-data) groups=33(www-data)
# 2. 直接用 UID/GID 给本地目录授权(无需依赖系统用户)
chown -R 33:33 /opt/lnmp-wordpress/wordpress
5 浏览器完成 WordPress 安装
- 打开浏览器,访问服务器的 IP 地址(如
http://你的服务器IP)。 - 选择语言:点击 “简体中文”,然后 “继续”。
- 点击 “现在就开始!”,填写数据库信息(需与docker-compose.yml中一致)
- 数据库名:
wordpress_db - 用户名:
wp_user - 密码:
Wp@456(你在配置中自定义的密码) - 数据库主机:
mysql(Docker 内部通过服务名访问,无需改 IP) - 表前缀:保持默认
wp_
- 数据库名:
- 点击 “提交”,然后点击 “运行安装程序”。
- 填写站点信息:
- 站点标题:例如 “我的论坛”
- 用户名:管理员账号(自定义,如
htj) - 密码:管理员密码(建议复杂些)
- 电子邮箱:你的邮箱
- 点击 “安装 WordPress”,完成后点击 “登录”,输入管理员账号密码即可进入后台。
6 日常维护命令
- 查看容器状态:
docker-compose ps - 查看日志
- Nginx 日志:
cat /opt/lnmp-wordpress/nginx/logs/error.log - 容器实时日志:
docker-compose logs -f nginx(替换nginx为php或mysql查看对应日志)
- Nginx 日志:
- 重启服务:
docker-compose restart(全部重启)或docker-compose restart nginx(单独重启 Nginx) - 停止服务:
docker-compose down(仅停止容器,数据保留) - 备份数据
- 数据库:打包
mysql目录:tar -zcvf mysql_backup.tar.gz /opt/lnmp-wordpress/mysql - 网站文件:打包
wordpress目录:tar -zcvf wordpress_backup.tar.gz /opt/lnmp-wordpress/wordpress
- 数据库:打包
注意事项
- 生产环境需修改配置中的密码(
MYSQL_ROOT_PASSWORD、MYSQL_PASSWORD)为强密码。 - 若需通过域名访问,需将域名解析到服务器 IP,并修改 Nginx 配置中的
server_name为你的域名。 - 建议添加 HTTPS 加密(可通过 Let’s Encrypt 申请免费证书,在 Nginx 配置中添加 443 端口监听)。
- 如需升级 PHP 或 MySQL 版本,修改
docker-compose.yml中的镜像标签(如php:8.2-fpm、mysql:8.0),然后执行docker-compose up -d重建容器。
7 总结
通过本文档的步骤,你已成功利用 Docker 和 Docker Compose 搭建了 LNMP 环境并部署了 WordPress 论坛。整个过程通过容器化方式实现,避免了复杂的系统依赖配置,同时保证了环境的一致性和可移植性。
部署完成后,你可以通过 WordPress 后台轻松扩展站点功能,如安装论坛插件、更换主题等。日常维护中,可通过文档提供的命令进行容器管理、日志查看和数据备份,确保站点稳定运行。
如需进一步优化,建议根据实际需求配置 HTTPS 加密、调整 Nginx 性能参数或升级组件版本。容器化的架构使得后续的升级和迁移变得简单,只需修改配置文件并重建容器即可,极大降低了维护成本。希望本指南能为你的 WordPress 论坛搭建提供可靠的技术支持。
更多推荐



所有评论(0)