Dockerで動くWordPress+nginxをHTTPS化する

どうも、ついにきました!
このブログをHTTPS化したいと思います!

※重要※
まず、ホストにAWSのEC2を使っている場合は、セキュリティーグループで443は開けておいてください。私はこれで2日くらい溶かしました。

なお、3分でdocker使ってWordPressを立ち上げる with NGINXも参考にしてください。

今回はHTTPS化のために、https-portalを使います。

ディレクトリ構成は以下の感じ

アプリケーションディレクトリ
┣ docker-compose.yml
┣ php-uploads.ini
┗ nginx/
  ┗ nginx.conf
  ┗ conf.d/
    ┗ default.conf

最初に、docker-compose.ymlは下記の通り

version: '3.3'

services:

   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: パスワード
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: パスワード

   wordpress:
     depends_on:
       - db
     image: wordpress:5.2.4-fpm-alpine
     restart: always
     volumes:
       - ./wordpress:/var/www/html
       - ./php-uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: パスワード
       WORDPRESS_DB_NAME: wordpress

   nginx:
     image: nginx:1.16.1-alpine
     depends_on:
       - wordpress
     links:
       - wordpress
     restart: always
     volumes:
       - ./nginx/nginx.conf:/etc/nginx/nginx.conf
       - ./nginx/conf.d:/etc/nginx/conf.d
       - ./nginx/log:/var/log/nginx
       - ./wordpress:/var/www/html

   https-portal:
     image: steveltn/https-portal:1
     depends_on:
       - nginx
     links:
       - nginx
     ports:
       - 80:80
       - 443:443
     restart: always
     volumes:
       - ./ssl_certs:/var/lib/https-portal
     environment:
       DOMAINS: 'www.xxxyyy.org -> http://nginx:80'
       STAGE: production
       CLIENT_MAX_BODY_SIZE: 64M

volumes:
    db_data: {}

wordpressコンテナのvolumesの./php-uploads.iniは、画像ファイルなどの大きめのファイルをアップロードできるように設定ファイルを置くために書いています。

https-portalのenvironmentのDOMAINSの記述の意味は、www.xxxyyy.orgにアクセスが来たらnginxコンテナの80ポートにフォワードしてね、ってことです。

先ほど触れたphp-upload.iniの内容は下記の通り

file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

残りのnginx関連のファイルは3分でdocker使ってWordPressを立ち上げる with NGINXを参照してくださいませ。

全てのファイルの準備ができたら、docker-compose up -dです。

無事にhttpsでアクセスできたと思います。

参考サイト
https://www.dmuth.org/wordpress-5-in-docker-with-nginx-and-letsencrypt/

Please share this page:

コメントを残す