公式テーマディレクリにkanagataというテーマを登録している。
ただ、忙しさを言い訳にして、数年更新ができていない。
WordPressは毎年進化しているので、今後はできるだけ更新したいと思う。
そのために、更新コストをすこしでも減らしたいと考えている。
オンライン開発環境Gitpodは場所を選ばずに開発できる便利なサービスだと感じている。
2020年年末からDocker
を触り始めたこともあって、Gitpodを中心にして、ローカル&プロダクション環境も含めた効率的な開発環境を模索している。
AWS EC2(Docker Compose)
Gitpod(Docker)
AWS EC2 Ubuntu 18.04にDocker Composeを使って環境を構築。
まずはコードをEC2にデプロイするためにGitHub Actionsを設定。
$ ssh-keygen -m PEM -t rsa -C "info@example.com"
$ git clone git@github.com:xxxxx/example.git
settings
のsecret
に変数としてSSH接続情報を登録(変数名は任意).github/workflows/deploy.yml
)で使用
~/.ssh/authorized_keys
に追加$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
.github/workflows/deploy.ymlt
を作成SSHの鍵作成はCircleCIの以下のドキュメントを参照
ref. https://circleci.com/docs/ja/2.0/add-ssh-key/
Docker&Docker Composeをインストール。
ref. Install Docker Engine on Ubuntu
$ sudo apt update -y && sudo apt upgrade -y
$ sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get -y install docker-ce docker-ce-cli containerd.io
$ sudo gpasswd -a ubuntu docker
$ docker --version
$ sudo apt update -y && sudo apt upgrade -y
$ sudo apt install -y python3 python3-pip
$ sudo pip3 install docker-compose
$ docker-compose --version
docker-compose.ymlは「さわって学ぶクラウドインフラ docker基礎からのコンテナ構築」(大澤 文孝 (著), 浅居 尚 (著) )を参考に作成。
(WordPressイメージとmysql:5.7を使用
ref. Running with Docker
80/443ポートを使用していコンテナがあれば停止($ docker-compose down
)
Dockerホストで以下コード実行。
sudo docker run -it --rm --name certbot \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
-p 80:80 -p 443:443
certbot/certbot certonly
standalone
とwebroot
選択画面でstandalone
を選択
/etc/letsencrypt
に証明書が作成。docker-compose
のwordpress用サービスのvolumesを使ってコンテナにバインド(バインドマウント)“`docker-composer.yml
services:
# …..
wordpress-app:
# …..
image: wordpress
volumes:
– /etc/letsencrypt:/etc/letsencrypt
# …..
##### バーチャルホストにSSL設定
- example.comドメインを例に記載
- 公式WordpressイメージのOSは`Debian`
上記を前提に記載。
1. `/etc/apache2/sites-available`にバーチャルホスト用の`conf`ファイル作成
1. `/etc/apache2/site-available/default-ssl.con`をコピー(`example.com.conf`を作成
1. confファイル名は、`example.com.conf`にする(`ドメイン名.conf`)
- 上記ファイル名でないと`$ a2ensite example.com`で`Site example.com does not exist!`が発生
1. example.com.confにSSL用バーチャルホスト設定
1. `apachectl configtest`
1. `service apache2 reload`
- `apachectl graceful`は、`AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.3. Set the 'ServerName' directive globally to suppress this message`が発生
```example.com.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/exxample.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>
</IfModule>
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。