Ubuntu上にWordPressの環境を構築しました。
Dockerを使用すると簡単にできそうなので、その方法を書き留めておきます。
Dockerのイメージ取得
まずは、Dockerのイメージを取得します。
WordPressとMariaDBのイメージを取得します。
$ sudo docker pull wordpress
$ sudo docker pull mariadb
取得したイメージは下記の通りです。
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest b6306a6a7068 6 days ago 616MB
mariadb latest e2278f24ac88 6 weeks ago 410MB
コンテナーの作成
取得したDockerイメージからコンテナーを作成・起動します。
まずは、DBのコンテナーを作成・起動します。
MYSQL_ROOT_PASSWORD、MYSQL_DATABASE、MYSQL_USER、MYSQL_PASSWORDには、任意の値を設定してください。
$ sudo docker run --name wpdb -e MYSQL_ROOT_PASSWORD=rootpassword -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wp -e MYSQL_PASSWORD=wppassword -d mariadb
次に、WordPressのコンテナーを作成・起動します。
WORDPRESS_DB_USER、WORDPRESS_DB_PASSWORD、WORDPRESS_DB_NAMEには、それぞれ、DBコンテナー作成時の、MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASEの値を設定します。
また、SSLに対応したいので、443ポートも開いておきます。
$ sudo docker run --name wp --link wpdb:mariadb -p 80:80 -p 443:443 -e WORDPRESS_DB_HOST=wpdb:3306 -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wppassword -e WORDPRESS_DB_NAME=wordpress -d wordpress
WordPressをSSL対応にする
サーバー証明書は、「Let’s Encrypt」のサービスを使います。
また、Certbotツールを使用し登録と更新作業の自動化を行います。
まずは、下記サイトより、python3-certbot-apache_1.10.1-1_all.debをダウンロードします。
※バージョン番号は変わると思います。
https://packages.debian.org/bullseye/python3-certbot-apache
python3-certbot-apache_1.10.1-1_all.debが、ホストマシンの/tmpディレクトリーにあり、WordPressコンテナーの/tmpディレクトリーにコピーするものとします。
$ sudo docker cp /tmp/python3-certbot-apache_1.10.1-1_all.deb wp:/tmp/
WordPressコンテナーにログインします。
# apt update
# apt upgrade -y
Certbotをインストールします。
# apt install /tmp/python3-certbot-apache_1.10.1-1_all.deb
Certbotを起動します。
# certbot --apache
自分のメールアドレスを入力します。
…(略)
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): hogehoeg@mail.com
質問が2つ出てきますが、ここは両方ともYesとしておきます。
…(略)
(Y)es/(N)o: Y
…(略)
(Y)es/(N)o: Y
WordPressを公開するドメイン名を入力します。
…(略)
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated) (Enter 'c' to cancel): www.hogehoge.com
下記メッセージが表示されれば、サーバー証明書の登録完了です。
…(略)
Congratulations! You have successfully enabled https://www.hogehoge.com
…(略)
Certbotがサーバー証明書を正常に更新できるか確認します。
# certbot renew --dry-run
これでCertbotの設定は完了です。
WordPressコンテナーからログアウトします。
# exit
コンテナーの自動起動
最後に、ホストマシン起動時に、Dockerのコンテナーが自動起動するように設定します。
$ sudo docker update --restart=always wpdb
$ sudo docker update --restart=always wp
以上で、構築完了です。
構築したサイトにアクセスして、WordPressの設定画面が表示されることを確認します。