[begin] 环境说明 [/begin]由于我使用的是ESXi 服务器,可以创建多台虚拟机,为便于管理所以将一个项目单独建立一台虚拟机进行使用管理,且docker-compose 将Ngainx WordPress MariaDB 部署在一个Stacks中。
一、 概述
本站点使用 Dockerfile 创建属于自己的镜像,部署Nginx + WordPress + MariaDB 及其所需依赖,并使用Docker Compose管理多个容器,并将所有数据实现在NFS中存储。
使用了以下镜像
- mariadb
- wordpress (php-fpm版)
- nginx
本文将介绍通过此方法搭建全新WordPress站点的方法,文中展示的配置文件需要根据自身环境进行修改
注意:尚未尝试从其他部署方法迁移到本方法的具体过程
尝试迁移前请备份原WordPress数据
二、部署环境
2.1 环境总览
- Ubuntu 20.04.4
- Docker v20.10.21
- Docker Compose v1.29.2
- Synology NAS
2.2 安装 Docker
执行安装脚本
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
检查Docker安装情况
docker --version
检查Docker Compose安装情况
docker-compose --version
更新系统
apt-get update
三、安装部署
3.1 docker-compose.yml 创建
version: "3.8"
services:
nginx:
image: nginx:latest
# ./wordpress 中包含了WordPress本体文件
# ./config 中包含Nginx配置文件
# ./key (可选) 中包含SSL证书 用于启用https连接
volumes:
- nginx-html:/usr/share/nginx/html/
- nginx-conf:/etc/nginx/conf.d/
- nginx-key:/key
# 对外开放 80 (http) 和 443 (https) 端口
ports:
- 80:80
- 443:443
networks:
aoliyougei_net:
ipv4_address: 172.16.1.2
restart: always
wordpress:
depends_on:
- mariadb
image: wordpress:latest
# 其中包含了WordPress的本体文件
volumes:
- wordpress-data:/var/www/html
networks:
aoliyougei_net:
ipv4_address: 172.16.1.3
restart: always
environment:
# 数据库URL
WORDPRESS_DB_HOST: 172.16.1.4:3306
# 数据库用户
WORDPRESS_DB_USER: aoliyougei
# 数据库密码
WORDPRESS_DB_PASSWORD: aoliyougei
# 数据库名
WORDPRESS_DB_NAME: aoliyougei
mariadb:
image: mariadb
# 映射mariadb容器内存放数据库数据的文件夹
# 其中包含了WordPress的核心数据信息
volumes:
- mariadb-data:/var/lib/mysql
restart: always
# 下面的环境变量会在数据库数据文件夹已存在时失效
environment:
# root用户的初始密码
MYSQL_ROOT_PASSWORD: password
# 使用的数据库
MYSQL_DATABASE: wordpress
# 使用的用户
MYSQL_USER: wprdpress
# 使用的用户的密码
MYSQL_PASSWORD: password
networks:
# 使用自己建立的Docker网络 并配置指定IP
aoliyougei_net:
ipv4_address: 172.16.1.4
# phpmyadmin 管理数据库
phpmyadmin:
depends_on:
- mariadb
image: phpmyadmin
restart: always
environment:
- PMA_HOST=mariadb
- PMA_USER=root
- PMA_PASSWORD=aoliyougei
networks:
# 使用自己建立的Docker网络 并配置指定IP
aoliyougei_net:
ipv4_address: 172.16.1.5
networks:
aoliyougei_net:
3.2 Nginx配置
进入 Nginx 容器内
docker exec -it 容器名称 bash
更新及安装
在 /etc/nginx/conf.d
文件夹中创建配置文件 test.conf
erver {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.域名.com;
ssl_certificate /key/域名.com.crt;
ssl_certificate_key /key/域名.com.key;
location / {
proxy_set_header X-FORWARDED-FOR $remote_addr;
proxy_set_header X-FORWARDED-PROTO $scheme;
proxy_set_header Host $http_host;
proxy_pass http://172.16.1.3:80;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Redis 插件配置
编辑 wp-config.php 文件>搜索>define( 'DB_COLLATE', '');
在define( 'DB_COLLATE', '');
后添加如下内容
/** Redis Object Cache */
define( 'WP_REDIS_CLIENT', 'credis' );
define('WP_REDIS_HOST', 'redis');
define('WP_REDIS_DATABASE', '0');
感谢您的来访,获取更多精彩文章请收藏本站。
© 版权声明
THE END
暂无评论内容