Docker Compose 搭建 LNMP 环境并部署 WordPress 论坛

目录

详细步骤说明

[1. 环境准备](#1. 环境准备)

[2. 核心配置说明](#2. 核心配置说明)

[3. 安装 WordPress](#3. 安装 WordPress)

[4. 常用命令](#4. 常用命令)

[5. 注意事项](#5. 注意事项)

6.常见错误


以下是使用 Docker Compose 搭建 LNMP 环境并部署 WordPress 论坛的完整步骤,整合了之前的所有配置和问题解决方案:

复制代码
# 一、准备工作
## 1. 创建项目目录结构
mkdir -p lnmp/{nginx/conf,php,mysql/data,wordpress}
cd lnmp

# 二、编写配置文件
## 1. 创建PHP Dockerfile(安装mysqli扩展)
cat > ./php/Dockerfile << 'EOF'
FROM php:7.4-fpm
# 安装WordPress必需的MySQL扩展
RUN docker-php-ext-install mysqli pdo_mysql
CMD ["php-fpm"]
EOF

## 2. 创建PHP配置文件
cat > ./php/php.ini << 'EOF'
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
EOF

## 3. 创建Nginx配置文件
cat > ./nginx/conf/wordpress.conf << 'EOF'
server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
EOF

## 4. 创建docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf:/etc/nginx/conf.d
      - ./wordpress:/var/www/html
    depends_on:
      - php
    restart: always

  php:
    build: ./php
    volumes:
      - ./wordpress:/var/www/html
      - ./php/php.ini:/usr/local/etc/php/php.ini
    depends_on:
      - mysql
    restart: always

  mysql:
    image: mysql:5.7
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppassword
    restart: always
EOF

# 三、下载WordPress源码
wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
cp -r wordpress/* ./wordpress/
rm -rf wordpress latest.tar.gz

# 四、设置目录权限
chmod -R 755 ./wordpress
chmod 666 ./wordpress/wp-config.php  # 允许WordPress写入配置文件

# 五、启动服务(禁用BuildKit避免构建问题)
export DOCKER_BUILDKIT=0
docker-compose up -d --build

# 六、显示启动结果
docker-compose ps

详细步骤说明

1. 环境准备

  • 确保已安装 Docker 和 Docker Compose
  • 执行脚本前请确保当前目录干净,脚本会自动创建所需的目录结构

2. 核心配置说明

  • PHP 配置 :通过 Dockerfile 安装了 mysqlipdo_mysql 扩展,解决了 WordPress 所需的数据库连接扩展问题
  • Nginx 配置 :正确配置了 PHP 解析规则,确保 .php 文件能被 PHP-FPM 处理
  • MySQL 配置:预设了 WordPress 所需的数据库和用户,无需手动创建
  • 权限设置:对 WordPress 目录设置了合适的权限,避免 403 错误和配置文件无法写入的问题

3. 安装 WordPress

  1. 服务启动后,在浏览器访问服务器 IP(如 http://172.16.0.10
  2. 选择语言,点击 "继续"
  3. 填写网站信息(站点标题、用户名、密码等)
  4. 点击 "安装 WordPress" 完成安装
  5. 如果出现无法写入 wp-config.php 的提示:
    • 复制页面中的配置代码
    • 在服务器上执行:vi ./wordpress/wp-config.php
    • 粘贴代码并保存
    • 点击页面中的 "运行安装"

4. 常用命令

  • 停止服务:docker-compose down
  • 重启服务:docker-compose restart
  • 查看日志:docker-compose logs -f
  • 进入容器:docker exec -it 容器名 /bin/bash(容器名可通过 docker ps 查看)

5. 注意事项

  • 生产环境中建议修改 MySQL 密码(docker-compose.yml 中的 MYSQL_ROOT_PASSWORDMYSQL_PASSWORD
  • 定期备份 ./mysql/data 目录(数据库数据)和 ./wordpress 目录(网站文件)
  • 如果需要使用 HTTPS,可以参考之前的 Nginx HTTPS 配置,在 Nginx 容器中添加 SSL 证书和配置

6.常见错误

  • 配置加速器依旧无法拉取镜像,可以通过直接指定华为云镜像源官方仓库拉取,如
    docker pull swr.cn-south-1.myhuaweicloud.com/library/nginx:latest
  • 手动拉取的镜像要注意关掉服务,比如拉取MySQL镜像,需要使用systemctl stop mysqld关闭服务
  • 搭建论坛需要安装php扩展,否则无法正常使用

输入用户名和密码后,会先让你创建账号,创建完进入该页面

按照以上步骤操作,即可成功搭建 LNMP 环境并部署 WordPress 论坛,解决了端口冲突、权限问题、PHP 扩展缺失等常见问题。

相关推荐
java之迷10 小时前
Windows环境下,源码启动+本地部署和启动开源项目Ragflow失败SRE模块
windows·docker·开源
致宏Rex11 小时前
Docker 实战教程(7) | 镜像管理和仓库操作
运维·docker·容器
罗技12311 小时前
不用每次都改 `easysearch.yml` 也能改启动参数 —— 用 Docker 环境变量搞定一切
docker·容器·eureka
Pika12 小时前
深入浅出 Compose 测量机制
android·android jetpack·composer
落日漫游13 小时前
Kubernetes容器运行时:cri-docker vs containerd
docker·kubernetes
木易 士心17 小时前
MPAndroidChart 用法解析和性能优化 - Kotlin & Java 双版本
android·java·kotlin
消失的旧时光-194317 小时前
Kotlin Flow 与“天然背压”(完整示例)
android·开发语言·kotlin
ClassOps17 小时前
Kotlin invoke 函数调用重载
android·开发语言·kotlin
努力学习的小廉18 小时前
初识MYSQL —— 数据类型
android·数据库·mysql