ConoHa VPSでWordPress+ツール系アプリを公開するまでの奮闘記3【パッケージ・アプリケーションのインストール編】

Wordpress備忘録

WordPressで技術ブログを運営しつつ、練習がてら作ったツール系アプリも同じサーバーで公開したい!
そんなケチな目標を掲げ、ConoHa VPSを契約して本番環境を構築した記録です。

前回はSSHキーの登録から、セキュリティを強固にした2222ポートでの接続まで実施しました。
今回はVPS環境で必須になるパッケージ・アプリケーションのインストールまでを追っていきます。

前回の記事はこちら。

ConoHa VPSでWordPress+ツール系アプリを公開するまでの奮闘記2【SSH鍵登録~2222ポート接続編】
ConoHa VPS構築記録の第2回。SSH鍵の生成・公開鍵登録からsshd_configの編集、Ubuntu 24.04特有のssh.socket問題の解消、UFW設定、2222番ポートでの接続確認まで、実際のつまずきポイントを交えて解説します。

パッケージの更新

このVPS環境に必要なソフトウェアをインストールしたいのですが、まずはどんなソフトがあるか「最新の商品ラインナップ」を取得する必要があります。

以下のコマンドを実行しましょう。

$ sudo apt update && sudo apt upgrade -y
  • apt update:インストール可能なパッケージの最新情報を取得
  • apt upgrade:実際にパッケージを最新版に更新
  • &&:前のコマンドが成功した場合のみ次を実行
  • -y:確認プロンプトを全て自動でYes

Dockerの確認

ConoHa契約時にアプリケーションとしてDockerを選択したためインストール済みですが、一応確認しておきます。

$ docker --version
$ docker compose version

こんな感じに表示されればOK。
表示されなくても、今インストールしちゃえば大丈夫です。

Docker version 27.x.x, build xxxxxxx
Docker Compose version v2.x.x

一般ユーザー(user)でDockerを操作できるよう設定します。

$ sudo usermod -aG docker user

ちなみに、Dockerグループへの追加は一度ログアウト→再ログインしないと反映されません。
再ログイン後、docker ps でヘッダーが表示されれば完了です。

参考記事

【初心者向け】現場で本当に使うDockerコマンドはこれだった
Docker初心者が現場で本当に使うコマンドを厳選して解説。up -d・down・ps・logs -fの基本4つを中心に、使うタイミングや注意点もわかりやすく紹介します。

自動セキュリティアップデートの設定

VPSは24時間インターネットに接続されているため、脆弱性を放置すると攻撃対象になります。

そこで、セキュリティパッチ ”だけ” を自動で適用する仕組みを設定しましょう。
コピペで大丈夫です。

$ sudo apt install -y unattended-upgrades
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
  • unattended-upgrades:無人アップグレードツール。人が操作しなくてもセキュリティパッチを自動適用する。
  • dpkg-reconfigure:インストール済みパッケージの設定をやり直すコマンド。

コマンドを実行すると、以下のような画面になります(すごくびっくりした)。

Automatically download and install stable updates? [yes/no]

YESで問題ありません。

ここでは、「安定版のアップデートを自動的にダウンロード・インストールしますか?」と聞いてくれてます。YESにすると、

  1. apt update → 最新のパッケージ情報を取得
  2. セキュリティパッチが存在するか確認
  3. 存在すれば自動でダウンロード・インストール

ここまでやってくれるんです。

自動適用されるのはセキュリティパッチのみです。
メジャーバージョンアップや通常のパッケージ更新は apt upgrade(手動)や do-release-upgrade など別のツール・コマンドの話になるので、このツールの対象外です。

パッケージ等が勝手に更新されたりはしないので安心ですね。

Nginxのインストール

なぜNginxが必要か?

今回はサブドメインを利用して複数のサービスを立ち上げようとしています。

たとえ複数のDockerコンテナが異なるポートで動いていても、ブラウザからのアクセスは全て80番か443番に来てしまうんですよね。
そこで、Nginxがリバースプロキシとして、どのドメインのリクエストをどのコンテナに転送するかを振り分ける役割を担ってくれるわけです。
頭が上がらないです。

インストールと再起動

$ sudo apt install -y nginx
$ sudo systemctl enable nginx  # サーバー起動時に自動起動するよう登録
$ sudo systemctl start nginx   # 今すぐ起動
  • systemctl enable:自動起動の登録のみ(即時起動はしない)
  • systemctl start:即時起動

enable と start は役割が異なるため、両方実行する必要があります。

イメージ

ブラウザ → https://your-site.com(443番)
              ↓
           Nginx
              ├── your-site.com      → localhost:8080(WordPress)
              ├── tool-a.your-site.com → localhost:3001(ツールA)
              └── tool-b.your-site.com → localhost:3002(ツールB)

動作確認

$ sudo systemctl status nginx

Active: active (running) と表示されればOKです。
ここらへんはスムーズに導入できましたかね?

certbotのインストール

HTTPSでサイトを公開するにはSSL証明書が必要です。
Let’s Encryptという認証局が無料で発行しており、certbotはその取得・更新・Nginxへの設定反映を自動化してくれます。

今はインストールのみ行い、実際のSSL証明書取得はドメインのDNS設定完了後に実施します。
というのも、DNS設定が完了していないと、Let’s EncryptがドメインのIPアドレスを確認できないんですよね。

$ sudo apt install -y certbot python3-certbot-nginx
  • certbot:Let’s EncryptのSSL証明書を取得・更新するツール本体
  • python3-certbot-nginx:certbotがNginxの設定を自動で書き換えるためのプラグイン

この2つをセットでインストールすることで、証明書取得からNginx設定まで一括で行えます。

ではまた次回、ドメイン・DNS設定からSSL証明書取得編にて!

タイトルとURLをコピーしました