docker的WordPress启用https
docker 的 http 部署配置
集成 MySQL 的版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30version: '3.3'
services:
db:
image: mysql:5.7.38
volumes:
- ./data:/var/lib/mysql
ports:
- "3307:3306"
restart: "no"
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:6.0.2
ports:
- "8000:80"
restart: "no"
environment:
WORDPRESS_DB_HOST: "db:3306"
WORDPRESS_DB_USER: "wordpress"
WORDPRESS_DB_PASSWORD: "wordpress"
WORDPRESS_DEBUG: 1
volumes:
- ./wordpress:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini使用 rds 版本的 mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16version: '3.3'
services:
wordpress:
image: wordpress:6.0.2
ports:
- "80:80"
restart: "no"
environment:
WORDPRESS_DB_HOST: "${MYSQL_HOST}:${MYSQL_PORT}"
WORDPRESS_DB_NAME: "${MYSQL_DB_NAME}"
WORDPRESS_DB_USER: "${MYSQL_USERNAME}"
WORDPRESS_DB_PASSWORD: "${MYSQL_PASSWORD}"
# WORDPRESS_DEBUG: 1
volumes:
- ./wordpress:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
启用 https
先增加端口和 ssl 证书映射
1 | version: '3.3' |
进入 wordpress 容器,加载 apache 的 ssl 模块。
1 | [root@instance]# docker exec -it wordpress bash |
编辑容器中的 ssl 文件
1 | root@0f05292f2238:/var/www/html# vim /etc/apache2/sites-available/default-ssl.conf |
容器中没有 vim,我们先把文件拷贝出来,然后在映射进去
1 | root@0f05292f2238:/var/www/html# cp /etc/apache2/sites-available/default-ssl.conf /ssl/default-ssl.conf |
ssl 证书和私钥
找到 SSLCertificateFile 和 SSLCertificateKeyFile 这两个配置项,改成把私钥和证书
1 | # A self-signed (snakeoil) certificate can be created by installing |
强制 http 请求转到 https
编辑 /etc/apache2/sites-available/000-default.conf ,找到 <VirtualHost *:80> 标签中增加下面的配置:
1 | <Directory "/var/www/html"> |
这里要注意修改文件的位置
踩坑
如果发现没有生效看这里
1、重建容器需要重新启用 ssl
1 | a2enmod ssl |
2、从 apache 的配置文件 apache2.conf
可以看到,apache 只会读取 /etc/apache2/sites-enabled
目录的配置文件,所以需要把 /etc/apache2/sites-available
下的 default-ssl.conf
文件链接到 /etc/apache2/sites-enabled
目录下。
1 | ln -s /etc/apache2/sites-available/default-ssl.conf \ |
最终完整版的配置
1 | version: '3.3' |
docker的WordPress启用https
https://hexo.terwer.space/post/docker-s-wordpress-enables-https-jv469.html