說明:
通過dockr-compose實現https訪問wordpress,為方便配置證書,借助nginx反向代理的功能
設置文件目錄結構
docker-compose內容
version: "2"
services:
db:
image: mysql:5.7
volumes:
- "./data/db:/var/lib/mysql"
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
nginx:
image: nginx:alpine
restart: always
volumes:
- ./cert:/etc/nginx/cert
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./home/wordpress:/var/www/html
- ./conf.d:/etc/nginx/conf.d
ports:
- "443:443"
links:
- wordpress
wordpress:
image: wordpress:4.9.4-php7.0-fpm
ports:
- 9000:9000
volumes:
- ./home/wordpress:/var/www/html
restart: always
environment:
- WORDPRESS_DB_NAME=wordpress
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_PASSWORD=wordpress
- WORDPRESS_DB_USER=wordpress
depends_on:
- db
default.conf內容
server {
listen 443;
server_name *******.com; #修改為自己的域名
ssl on;
root /var/www/html;
index index.php index.html;
ssl_certificate cert/*******.cer; #修改為自己的證書地址
ssl_certificate_key cert/*******.key; #修改為自己的密鑰地址
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass *.*.*.*:9000; #wordpress地址
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
注意:更換自己的域名、證書文件名稱以及php運行環境的ip地址
啟動容器
cd到docker-compose所在的目錄
docker-compose up –d
然后執行
docker ps
則啟動成功