使用docker搭建wordpress并开启ssl访问

使用docker-compose快速搭建wordpress服务。

示例需要使用的端口 wordpress(8081->80 普通访问端口 8443->443 SSL访问端口) mysql(33060->3306 数据库访问端口) 可修改compose文件自行修改映射关系

准备工作1
#创建wordpress apache2配置目录
mkdir -p /opt/container/wordpress/apache2/a2_ssl
#创建wordpress html文件目录
mkdir -p /opt/container/wordpress/html
#创建wordpress mysql存储目录
mkdir -p /opt/container/wordpress/mysql
准备工作2 启动wordpress cp配置文件到本地
#启动容器
docker run -itd --name wordpress wordpress
#cp文件到本地
docker cp wordpress:/etc/apache2/ /opt/container/wordpress/
#删除容器
docker stop wordpress
docker rm wordpress

1.使用docker-compose up -d 启动docker-compose配置

docker-compose up -d

docker-compose编写参考 文件名docker-compose.yml

version: "3"

services:

  mysql:
    container_name: mysql
    image: mysql
    restart: always
    networks:
      - wpnet
    ports:
      - 33060:3306
    volumes:
      - /opt/container/wordpress/mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: xxxxxx

  wordpress:
    links:
      - mysql
    depends_on:
      - mysql
    container_name: wordpress
    image: wordpress
    restart: always
    networks:
      - wpnet
    ports:
      - 8081:80
      - 8443:443
    volumes:
      - /opt/container/wordpress/html:/var/www/html
      - /opt/container/wordpress/apache2:/etc/apache2
    environment:
      WORDPRESS_DB_HOST: mysql
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: root
      WORDPRESS_DB_PASSWORD: xxxxxx

networks:
  wpnet:
    driver: bridge

2.docker ps -a 查看状态 wordpress并未启动是因为数据库中wordpress数据库并未创建 启动失败

    #进入mysql容器      
    docker exec -it mysql /bin/bash  
    #登录数据库 输入密码
    mysql -u root -p
    #创建数据库
    create database wordpress;
    
    #配置mysql初始化密码 开启远程登陆
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
    #刷新权限
    FLUSH PRIVILEGES;
    #exit 退出容器
    exit

   #重新启动wordpress
   docker restart wordpress  

3.进入wordpress容器启用ssl功能

    #进入容器
    docker exec -it 容器id /bin/bash 
    #启用ssl
    a2enmod ssl
    #退出wordpress容器
    exit

4. 准备配置文件和证书目录a2_ssl

    cd /opt/container/wordpress/apache2 
    #将下载的apache ssl证书上传到a2_ssl目录下
    #修改default-ssl.conf配置文件中三行的内容
    SSLCertificateFile /etc/apache2/a2_ssl/owothink.com_public.crt
    SSLCertificateKeyFile /etc/apache2/a2_ssl/owothink.com.key
    #删除SSLCertificateChainFile前面的#号 修改为
    SSLCertificateChainFile /etc/apache2/a2_ssl/owothink.com_chain.crt

5.修改替换配置文件重启apache

    #替换配置文件
    cp /opt/container/wordpress/apache2/default-ssl.conf /opt/container/wordpress/apache2/sites-available/default-ssl.conf
    cp /opt/container/wordpress/apache2/sites-available/default-ssl.conf /opt/container/wordpress/apache2/sites-enabled/001-ssl.conf
    #进入wordpress容器重新加载功能
    /etc/init.d/apache2 force-reload
    #重新启动 执行后会自动退出容器
    /etc/init.d/apache2 restart
    #查看容器状态 
    docker ps -a
    #重启wordpress容器
    docker restart wordpress

6.配置完成使用浏览器访问8443端口 开始初始化wordpress