ローカルネットワーク内でWEBサーバー構築するには
背景
知り合いにホームページの代理作成をお願いされました。普段はデータ基盤や分析などが本業なので完全に畑違いではあったのですが、IT技術者を名乗る手前引き受けてしまったのが始まりです。
(ITをひとまとめにするのはマジやめてくれ...
目的
- ローカルネットワーク内で Webのデモ環境を整える
※ 本手順はローカル学習目的です。本番公開をする場合は追加のセキュリティ対策(鍵認証、ユーザ制限、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を編集しようとするとエラーが出ると思うので、以下のリンクの内容を行ってみてください