2617 字
9 分钟阅读
建站过程记录

一、准备 VPS

系统:

Ubuntu 22.04 LTS

登录:

ssh root@你的IP

更新:

apt update && apt upgrade -y

安装工具:

apt install curl wget nano -y

二、安装 Docker

执行:

curl -fsSL https://get.docker.com | sh

检查:

docker -v

安装 compose:

apt install docker-compose-plugin -y

检查:

docker compose version

三、创建 WordPress 项目

创建目录:

mkdir /opt/wordpress
cd /opt/wordpress

创建配置:

nano docker-compose.yml

填入:

services:

  wordpress:
    image: wordpress:latest
    container_name: wordpress
    restart: always

    ports:
      - "127.0.0.1:8080:80"

    environment:
      WORDPRESS_DB_HOST: wordpress_db
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: strong_password
      WORDPRESS_DB_NAME: wordpress

    volumes:
      - wordpress_data:/var/www/html

  wordpress_db:
    image: mariadb:latest
    container_name: wordpress_db
    restart: always

    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: strong_password
      MYSQL_ROOT_PASSWORD: root_password

    volumes:
      - db_data:/var/lib/mysql

volumes:
  wordpress_data:
  db_data:

注意修改:

strong_password
root_password

四、启动 WordPress

运行:

docker compose up -d

查看:

docker ps

看到:

wordpress
wordpress_db

启动完成

五、配置 Nginx 域名访问

假设:

blog.example.com

DNS添加:

A记录

blog.example.com
    ↓
你的VPS IP

安装 Nginx:

apt install nginx -y

创建配置:

nano /etc/nginx/sites-available/wordpress

写:

server {
    listen 80;
    server_name blog.example.com;

    # 禁止 XML-RPC
    location = /xmlrpc.php {
        deny all;
        access_log off;
        log_not_found off;
    }
    # 用户枚举
    location ~* /wp-json/wp/v2/users {
    deny all;
    }
    location ~* rest_route=/wp/v2/users {
    deny all;
    }
    # 隐藏文件
    location ~ /\. {
    deny all;
    }

    # 登录限速 在etc/nginx/nginx.conf里配置,意为每个IP每分钟最多请求5次
    #limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;
    location = /wp-login.php {
        limit_req zone=login burst=5 nodelay;
        proxy_pass http://127.0.0.1:8080;
        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 ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|webp|woff|woff2|ttf)$ {

        expires 30d;
        add_header Cache-Control "public";
        root /var/lib/docker/volumes/wordpress_wordpress_data/_data/wp-content/themes/mizuki-wp;
        proxy_pass http://127.0.0.1:8080;
        access_log off;
    }

    location / {

        proxy_pass http://127.0.0.1:8080;
        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;
    }

}

以上注释为可选配置
配置过长还需要在nginx.conf里增加容量

编辑:

nano /etc/nginx/nginx.conf

在里面加入:

proxy_headers_hash_max_size 1024;
proxy_headers_hash_bucket_size 128;

最后启用:

ln -s /etc/nginx/sites-available/wordpress \
/etc/nginx/sites-enabled/

测试:

nginx -t

重启:

systemctl restart nginx

现在:

http://blog.example.com

访问

六、配置 HTTPS

安装:

apt install certbot python3-certbot-nginx -y

申请:

certbot --nginx -d blog.example.com

完成:

https://blog.example.com

七、访问安装页面

浏览器:

https://blog.example.com

完成初始设置后:

https://blog.example.com/wp-admin

进入后台


至此,可以开始按自己喜好配置网站啦!

1 条评论

  1. 琴音 2026年7月22日

    OωO

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注