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 扩展缺失等常见问题。

相关推荐
火柴就是我6 小时前
让我们实现一个更好看的内部阴影按钮
android·flutter
砖厂小工13 小时前
用 GLM + OpenClaw 打造你的 AI PR Review Agent — 让龙虾帮你审代码
android·github
张拭心13 小时前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
张拭心14 小时前
Android 17 来了!新特性介绍与适配建议
android·前端
fetasty14 小时前
rustfs加picgo图床搭建
docker
Kapaseker16 小时前
Compose 进阶—巧用 GraphicsLayer
android·kotlin
黄林晴16 小时前
Android17 为什么重写 MessageQueue
android
蝎子莱莱爱打怪1 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
阿巴斯甜2 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker2 天前
实战 Compose 中的 IntrinsicSize
android·kotlin