Docker:WordPress:環境構築

環境構築

環境
  • CentOS Stream 9 (ホスト環境)
  • ホストに Apache 2.4.53をインストール済み
  • SSL証明書として Let's Encrypt を利用
  • ホストに対してhttps通信が可能
  • ホストのグローバルIPアドレスに関連付けされたドメイン名を取得済み
  • Docker 20.10.21 がインストール済み
構成
--->[ホストのApache]--->[WordPressコンテナ]<---->[MYSQLコンテナ]
方針

WordPress用に新しくサブドメインを登録する。

そのサブドメインにアクセスしてきたら、Apacheに設定したリバースプロキシでWordPressコンテナに通信を転送する。

また、SSL証明書はホスト上のApacheにて設定する。

サブドメイン登録

このページに書かれている方法でサブドメインを登録する。サブドメイン参考

以下では「abc.example.com」を例に記載する。

SSL証明書の発行

下記のコマンドを実行してSSL証明書を発行する。

$ certbot certonly --webroot -w <ドキュメントルート> -d abc.example.com
Apacheの設定

「/etc/httpd/conf.d/ssl.conf」に下記を追記する。

<VirtualHost abc.example.com:443>
   ServerName wp.sirokujira.com
   SSLEngine on
   SSLProtocol all
   SSLCertificateFile <証明書の絶対パス>/cert.pem
   SSLCertificateKeyFile <証明書の絶対パス>/privkey.pem
   SSLCertificateChainFile <証明書の絶対パス>/chain.pem

   ProxyPreserveHost On
   ProxyPass / http://localhost:8082/
   ProxyPassReverse / http://localhost:8082/
   RequestHeader set X-Forwarded-Proto "https" ※1
   RequestHeader set X-Forwarded-Port "443"    ※1
</VirtualHost>

※1. この設定がないと、混在コンテンツとなりjavascriptやcss等が正常に読み込まれない

設定ファイルを編集後、下記のApacheを再起動する。

$ sudo systemctl restart httpd
docker-compose.yml の作成

任意のディレクトリで下記内容の「docker-compose.yml」を作成する。

version: '3'
services:
  wordpress:
    image: wordpress:php8.0-apache
    container_name: wordpress
    ports:
      - 8082:80
    volumes:
      - ./wp-data:/var/www/html
    environment:
      WORDPRESS_DB_HOST: wordpress-db
      WORDPRESS_DB_USER: <ユーザ名>
      WORDPRESS_DB_PASSWORD: <パスワード>
      WORDPRESS_DB_NAME: <DB名>
    depends_on:
      - wordpress-db
    restart: always

  wordpress-db:
    image: mysql:8.0
    container_name: wordpress-db
    ports:
      - 3308:3306
    environment:
      TZ: Asia/Tokyo
      MYSQL_ROOT_PASSWORD: <ルートパスワード>
      MYSQL_DATABASE: <DB名>
      MYSQL_USER: <ユーザ名>
      MYSQL_PASSWORD: <パスワード>
    volumes:
      - ./db-data:/var/lib/mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    restart: always
コンテナ作成
$ docker-compose up -d

コマンド実行後、WordPress と MySQL の接続に数十秒かかる。

その後、「https://abc.example.com」にアクセスして、WordPressのインストール画面が表示されること

コメントを入力:
 
  • Docker/WordPress/環境構築.txt
  • 最終更新: 2023/05/13 21:31
  • by 白くじら