自建 VPS 服务器的一些攻略

Wordpress 博客系统

— 目录 —

Wordpress 大概是最常用的 blog 系统了。(省略介绍若干)

本篇涉及的前置知识:

安装 Wordpress 的三种方式

1. 直接放在 VPS 的目录下

创建数据库

参照本站数据库管理一节的内容,为 wordpress 创建一个新的数据库

# 进入 MariaDB 数据库界面
sudo docker exec -it vps-mariadb sh -c 'mariadb -u root -p"$(cat $MARIADB_ROOT_PASSWORD_FILE)"'

# 在数据库提示符下,创建数据库 db_wordpress_1
CREATE DATABASE db_wordpress_1 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 创建数据库用户 user_wordpress_1,如果要使用已有的用户,这一步可以跳过
CREATE USER 'user_wordpress_1'@'%' IDENTIFIED VIA mysql_native_password USING PASSWORD('password_1');

# 将新建数据库的使用权限授予用户
GRANT ALL ON db_wordpress_1.* TO 'user_wordpress_1'@'%';

# 刷新权限
FLUSH PRIVILEGES;

# 退出 MariaDB 数据库
QUIT;

下载 wordpress 程序

# 确认临时文件夹不存在
rm /tmp/wordpress -rf

# 从官网下载最新的 wordpress 程序
curl -o /tmp/wordpress.zip https://wordpress.org/latest.zip

# 解压程序包
7z x /tmp/wordpress.zip -o/tmp/

# 移动 wordpress 程序到网站位置
mv /tmp/wordpress /WEBSITES/wordpress.example.com

配置 Nginx 网络服务器

在 Nginx conf 配置文件中添加:

server {
    server_name wordpress.example.com;      # 网站域名
    root /WEBSITES/wordpress.example.com/;  # 网站所在文件夹

    listen 443 ssl;  # https 证书所在位置
    ssl_certificate /ADMIN/https-certs/all.example.com.public.pem;
    ssl_certificate_key /ADMIN/https-certs/all.example.com.private.key;

    index index.php;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
    }
}

在浏览器初始化 wordpress

在浏览器打开 https://wordpress.example.com ,进入初始设置页面,点击 Let’s go,输入之前创建的数据库的信息:

点击 Submit 提交后,选择网站的界面语言,然后输入网站的管理信息(这些都可以在建站后,在管理界面随意更改)

然后提交,wordpress 网站就建好了。

2. 使用 docker,但是使用 vps 统一的数据库

待补充。

3. 使用包含自身数据库的 docker

这里是一个最快的,用 docker 创建一个 wordpress 站点的步骤。如果你只想临时建个站测试一下,这样会更方便。数据库用的也是独立的,和 vps 原有的数据库并无关联。

docker compose 目录结构

/DOCKERS/wordpress_5505  # docker compose 项目目录
├── database-data        # 数据库存储文件夹
├── wordpress            # wordpress 存储文件夹
└── docker-compose.yml   # 配置文件

docker-compose.yml

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 5505:80
    environment:
      WORDPRESS_DB_HOST: wordpress_db
      WORDPRESS_DB_USER: example_user
      WORDPRESS_DB_PASSWORD: example_user_password
      WORDPRESS_DB_NAME: example_database
    volumes:
      - ./wordpress:/var/www/html
    depends_on:
      - wordpress_db

  wordpress_db:
    image: mariadb:11.4-ubi
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=expmple_root_password
      - MARIADB_DATABASE=example_database
      - MARIADB_USER=example_user
      - MARIADB_PASSWORD=example_user_password
    volumes:
      - ./database-data:/var/lib/mysql

在 Nginx conf 配置文件中添加:

server {
    server_name wordpress.example.com;

    listen 443 ssl;
    ssl_certificate /ADMIN/https-certs/all.example.com.public.pem;
    ssl_certificate_key /ADMIN/https-certs/all.example.com.private.key;

    location / {
        proxy_pass http://localhost:5505;
        proxy_set_header Host $host:$server_port;
        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;
    }
}

然后在浏览器打开 https://wordpress.example.com ,会跳过输入数据库信息的部分,而直接进入选择语言和管理员信息的页面。

#Blog #Docker #Php #Mysql