松実のStudy Knowledge

ローカルネットワーク内でWEBサーバー構築するには

背景

知り合いにホームページの代理作成をお願いされました。普段はデータ基盤や分析などが本業なので完全に畑違いではあったのですが、IT技術者を名乗る手前引き受けてしまったのが始まりです。
(ITをひとまとめにするのはマジやめてくれ...

目的

※ 本手順はローカル学習目的です。本番公開をする場合は追加のセキュリティ対策(鍵認証、ユーザ制限、SSLなど)を必ず行ってください。

手順

Raspberry Pi 4 に 64bit Raspberry Pi OS(Raspberry Pi Imager を使用)をインストールし、 ローカルネットワーク内で Apache による静的なサイトを公開するまでの最小構成をまとめました。
基本はターミナル操作(SSH 経由)で完結します。

1. ラズベリーパイに 64bit Raspberry Pi OS を入れる

Raspberry Pi Imager を使って microSD に OS を書き込みます。64bit イメージ(Raspberry Pi OS (64-bit))を選択してください。

こちらで解説しています。
ラズベリーパイ(Raspberry Pi:ラズパイ)を初期起動するには

2. ユーザーの作成

もし必要であれば管理者権限で新しいユーザーを作成します。

sudo adduser yourusersudo usermod -aG sudo youruser

初回起動時に作成したユーザーで対応してもOKです

3. SSH の有効化

raspi-config で有効化、または microSD の boot パーティションに空の ssh ファイルを作成します。

sudo raspi-config

※以降は別のPCからSSHで接続し、作業を行ってもOKです。もし行う場合は

①ローカルIPの把握

hostname -I

→192.168.x.xがローカルIPです。

②別のPCのターミナルでSSHを実行

ssh youruser@192.168.x.x

→パスワードは入力です。

4. GUI → CLI で起動する設定に変更

raspi-config の「System Options」→「Boot / Auto Login」→「Console」を選択します。

sudo raspi-config

5. Apache を入れる(Web サーバー)

Apache をインストールし、ブラウザからアクセスして動作を確認します。

sudo apt updatesudo apt install -y apache2

6. ufw(ファイアウォール)を入れる

シンプルなファイアウォールを導入します。

sudo apt install -y ufwsudo ufw status verbose

7. ポートを開く

HTTP (80) と SSH (22) を許可します。

sudo ufw allow OpenSSHsudo ufw allow 80/tcpsudo ufw enable

8. 別PCから接続する

ラズパイの IP アドレスを確認し、別 PC から接続します。

hostname -I

→192.168.x.xをブラウザのURLへ入力し、アクセスできることが出来たら成功です。

/var/www/htmlにHTMLファイルを配置すると作成したHTMLを確認することができます

ただHTMLを編集しようとするとエラーが出ると思うので、以下のリンクの内容を行ってみてください

Web サーバー用ディレクトリの安全な編集設定

松実 エンジニア(♂)

都内で働く園児ニア。
1996年生まれ
独立を夢見る、東京都内で働くOLD園児
Power Platform,Azure の分析基盤関係を主体に仕事をしている。
まずは継続的に記事を書きたい。