手把手教你,如何在服务器部署wordpress

188 阅读3分钟

之前不是整了个京东云服务器嘛,恰好之前部署wordpress AI导航网站的免费主机空间彻底歇菜了,就想把网站迁移到云服务器上,这次就来分享下如何在云服务器上使用 Docker Compose 安装 WordPress,并通过 Nginx 反向代理配置域名和 SSL 证书。 想知道最近有哪些好用的ai工具​,可以来AI工具资源导航站看看(aitoolhub.top),1000多种AI工具,基本所有方向都涵盖了。 有需要服务器可以看看京东的50/年,2核2g3.cn/1ZQQ-cfE 用起来还挺舒服的。

前置条件

  • 一个已配置的云服务器(如 AWS EC2、DigitalOcean Droplet 等)
  • 已安装 Docker 和 Docker Compose
  • 一个域名,并且可以访问域名的 DNS 设置

步骤概述

  1. 安装 Docker 和 Docker Compose
  2. 创建 Docker Compose 配置文件
  3. 配置 Nginx 反向代理
  4. 获取并配置 SSL 证书
  5. 更新 WordPress 设置

1. 安装 Docker 和 Docker Compose

可以看这里:安装 Docker 和 Docker Compose

2. 创建 Docker Compose 配置文件

在你的项目目录下创建 docker-compose.yml 文件,并添加以下内容:

version: '3.8'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    ports:
      - "3307:3306"
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: example_root_password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: example_password

  wordpress:
    image: wordpress:latest
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: example_password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress_data:/var/www/html

  nginx:
    image: nginx:latest
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./certbot/conf:/etc/letsencrypt
      - ./certbot/www:/var/www/certbot
    depends_on:
      - wordpress
    restart: unless-stopped

volumes:
  db_data:
  wordpress_data:

3. 配置 Nginx 反向代理

在项目根目录下创建 nginx.conf 文件,并添加以下内容:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location / {
        proxy_pass http://wordpress:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
}

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    location / {
        proxy_pass http://wordpress:80;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

yourdomain.com 替换为你的实际域名。

4. 获取并配置 SSL 证书

创建 Certbot 所需的目录

在项目根目录下创建 certbot 目录结构:

mkdir -p certbot/conf certbot/www

使用 Certbot 获取 SSL 证书

运行以下命令使用 Certbot 获取 SSL 证书:

docker run -it --rm --name certbot \
  -v "$(pwd)/certbot/conf:/etc/letsencrypt" \
  -v "$(pwd)/certbot/www:/var/www/certbot" \
  certbot/certbot certonly --webroot --webroot-path=/var/www/certbot \
  --email your-email@example.com --agree-tos --no-eff-email \
  -d yourdomain.com -d www.yourdomain.com

your-email@example.com 替换为你的实际邮箱地址,将 yourdomain.comwww.yourdomain.com 替换为你的实际域名。

5. 重新启动 Docker Compose 服务

docker-compose down
docker-compose up -d

6. 更新 WordPress 设置

登录到你的 WordPress 管理后台,更新 设置 > 常规 中的 WordPress 地址 (URL)站点地址 (URL) 为你的域名(如 http://yourdomain.comhttps://yourdomain.com)。

至此,你已经成功在云服务器上使用 Docker Compose 安装了 WordPress,并配置了 Nginx 反向代理和 SSL 证书。如果有任何问题或需要进一步的帮助,请在评论区留言。