🍖

AmazonLinux2023にLetsEncryptを導入(nginx編)

2024/02/08に公開

nginxがシェア率超えたらしい

また超えたり超えなかったりどっちやねんかと思ってたらホントに超えてた。

【2024調査】Webサーバーの人気シェアランキング【日本/海外、Nginx/Apache】

もちろん色々なサイトを見てみると、まだまだApacheだったりやっぱりnginxだったり
要は結局どっこいどっこいなんじゃないかな。
(サイトの要件で選定しましょうって所もあったのでそれもその通りだと思うがここでそういう議論は端折る)

nginxでLEMPサーバ立ててみよう

なんかphpを入れる時にApacheがWeak Dependenciesで割り込んで来たので消しときます。

# カーネルのアップデート
dnf upgrade --releasever=2023.3.20240205

# swap領域を作成(2GB)
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
free -h # swap領域作成の確認

# php8インストール
dnf install php

# apacheアンインストール
dnf remove httpd

# nginxインストール
dnf install nginx
systemctl start nginx
systemctl enable nginx

# mysql8インストール
dnf install https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm
dnf install mysql-community-server

# system_time_zoneをJSTにするためサーバのtimezoneを変更
cp /etc/localtime /etc/localtime.org
ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
date # JSTが表示されるか確認

# mysql起動
systemctl start mysqld
systemctl enable mysqld

host周りの設定をする

nginxのconfは慣れない...とりあえず80番だけ

touch /etc/nginx/conf.d/fukino-to.conf
    server {
        listen       80;
        listen       [::]:80;
        server_name  fukino-to.jp;
        root         /home/fukino-to/develop/htdocs;
        error_log    /var/log/nginx/fukino-to_error.log warn;
        access_log   /var/log/nginx/fukino-to_access.log main;
    }

Certbotを入れる

snapdは入れられないのでpipからインストール

python3 -m venv /opt/certbot/
/opt/certbot/bin/pip install --upgrade pip
/opt/certbot/bin/pip install certbot certbot-nginx
/opt/certbot/bin/certbot --nginx

以上で https://fukino-to.jp にアクセス出来ればOK

Discussion