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 分钟前
Ubuntu24.04 基于Containerd部署K8s1.34(私服部署)
docker·云原生·kubernetes
秋邱17 分钟前
价值升维!公益赋能 + 绿色技术 + 终身学习,构建可持续教育 AI 生态
网络·数据库·人工智能·redis·python·学习·docker
q***33371 小时前
SpringMVC新版本踩坑[已解决]
android·前端·后端
F***74171 小时前
数据库课设---酒店管理系统(MySQL、VBNet)
android·数据库·mysql
踢球的打工仔1 小时前
PHP面向对象(5)
android·java·php
1***t8271 小时前
MySQL 8.0安装
数据库·mysql·adb
3***g2051 小时前
Linux系统离线部署MySQL详细教程(带每步骤图文教程)
linux·mysql·adb
K***43065 小时前
IDEA+Docker一键部署项目SpringBoot项目
spring boot·docker·intellij-idea
i***t91910 小时前
Linux下MySQL的简单使用
linux·mysql·adb
小雪_Snow11 小时前
CentOS 7 测试 docker 镜像源
docker·centos