はじめに
ラズベリーパイを使って自作のWebサーバーを作ると、自分だけのホームページや写真共有サーバー、開発用のテスト環境を手軽に持てます。本書では初心者の方が迷わず進められるよう、基本の構成と手順をやさしく解説します。
この記事の目的
- ラズベリーパイでローカル向けのWebサーバーを立てる基本を理解していただくこと
- Apache/Nginxなど代表的な選択肢の違いを簡単に示すこと
- 必要な機材や大まかな流れ、セキュリティの注意点を押さえること
対象読者
- ラズベリーパイに触ったことがあるがWebサーバーは初めての方
- 少し学習用にサーバーを動かしてみたい開発者や趣味の方
本書の構成(全体の流れ)
- 第2章で用意するものを具体的に示します。例:ラズベリーパイ本体、電源、microSDカード、ネットワーク環境
- 第3章で基本的なセットアップ手順を説明します。OSの準備、パッケージの導入、簡単な動作確認方法を扱います
- 第4章以降でApacheやNginxを使った具体例、さらにLAMP/LNMP構成やローカル公開の発展例を紹介します
進める際の注意点
- 初期設定時は管理者権限を使うため、コマンドは正確に入力してください
- ネットワークに公開する場合はパスワードや不要なサービス停止などの基本対策を行ってください
この章では全体像を把握していただくことを優先します。次の章で必要な機材と準備手順を詳しく説明します。
用意するもの
- Raspberry Pi 本体(3 以降推奨)と電源
-
RasPi 3 は microUSB、Pi 4 は USB-C です。消費電力に余裕のある安定した電源(5V/2.5A 以上)を用意してください。
-
microSD カード(16GB 以上推奨)
-
高速(Class10、UHS-I)のカードをおすすめします。OS イメージを書き込むので、信頼できるメーカー品を使うと安心です。
-
ネットワーク接続
-
有線 LAN(安定)または Wi‑Fi。初期設定でネットワークに接続できるとインストールや更新が楽になります。
-
初期設定用の PC または周辺機器
-
SSH で接続する場合はネットワーク経由で使う PC。画面とキーボードで直接操作する場合はモニタ、HDMI ケーブル、USB キーボード・マウスを用意してください。
-
イメージ書き込み用ツール
-
PC 上で Raspberry Pi OS を microSD に書き込むためのソフト(Raspberry Pi Imager、balenaEtcher など)と SD カードリーダーがあると便利です。
-
あると便利なもの
-
ケース(放熱と保護)、ヒートシンク(負荷が高いときに有効)、予備の microSD、UPS(電源断対策)、LAN ケーブル。
-
注意点
- 電源は安定した容量の物を使ってください。microSD のデータは壊れやすいので事前にバックアップ方法を考えておくと安心です。
基本的な流れ
1. OSを書き込み・起動する
Raspberry Pi Imager などで Raspberry Pi OS を microSD に書き込み、Pi を起動します。初回起動時は画面の案内に従ってロケールやタイムゾーン、パスワードを設定してください。USB キーボードやモニターがない場合は、Imager の設定で Wi‑Fi と SSH を有効にしておくと便利です。
2. ネットワーク接続と更新
Pi をネットワークに接続したら、端末で次のコマンドを実行してパッケージを最新にします。
sudo apt update && sudo apt upgrade -y
これで既知の不具合やセキュリティ修正が反映されます。必要なら再起動してください。
3. Webサーバーの選択とインストール
用途に合わせて Apache または Nginx を選びます。静的ファイル中心なら Nginx、PHP を多用する既存環境と合わせるなら Apache が扱いやすいです。インストールは例えば:
sudo apt install apache2 -y
または
sudo apt install nginx -y
インストール後、ブラウザで Pi の IP アドレスを開き、デフォルトのウェルカムページが表示されれば成功です。さらに PHP やデータベースが必要ならこの後で追加インストールしてください。
Apache で立てる例
以下はRaspberry PiなどでApacheを使ってローカルにWebサーバを立てる簡単な手順例です。専門用語は最小限にして説明します。
1) インストール
- コマンド例: sudo apt install apache2 -y
- 上のコマンドでApacheを導入します。多くの環境ではインストール後に自動で起動します。
2) 動作確認
- ブラウザで http://<ラズパイのIPアドレス>/ にアクセスします。初期の「It works!」やApacheの初期ページが表示されれば動作しています。
3) 公開フォルダを編集する
- 公開ルートは /var/www/html です。
- 自分のページに差し替える例:
- sudo nano /var/www/html/index.html で編集、保存してブラウザで再読み込みします。
- コマンド例で上書き: echo ‘
ようこそ
‘ | sudo tee /var/www/html/index.html
4) 権限と所有者
- ファイル操作で権限の問題が起きることがあります。基本的な調整は以下です。
- sudo chown -R www-data:www-data /var/www/html
- sudo chmod -R 755 /var/www/html
- これでWebサーバがファイルを読めるようになります。
5) サービス操作とログ確認
- サービス確認: sudo systemctl status apache2
- 再起動: sudo systemctl restart apache2
- ログ場所: /var/log/apache2/access.log と /var/log/apache2/error.log でアクセスやエラーを確認できます。
6) 簡単な仮想ホスト例(任意)
- 新しいサイトを作るときは /etc/apache2/sites-available/ に設定ファイルを置き、a2ensite で有効化します。最小構成の例:
<VirtualHost *:80>
ServerName example.local
DocumentRoot /var/www/example
</VirtualHost>
- 設定後は sudo a2ensite example.conf && sudo systemctl reload apache2
7) ファイアウォール(必要な場合)
- UFWを使うなら: sudo ufw allow ‘Apache’ としてポート80を許可します。
以上が基本の流れです。まずは /var/www/html の index.html を差し替えて表示を確認すると、手早く成果を得られます。
Nginx や LAMP/LNMP 構成
概要
Nginx 単体で静的ファイルを配信できます。動的ページを使うなら、PHP とデータベースを入れて LAMP(Apache)や LNMP(Nginx)環境を作ります。
Nginx の基本手順
- インストール:
sudo apt install nginx。 - 動作確認: ブラウザでサーバの IP にアクセスし、Nginx の初期ページを確認します。
- ファイル配置: デフォルトは
/var/www/html。sudo chown -R www-data:www-data /var/www/htmlで所有権を合わせます。 - ファイアウォール:
sudo ufw allow 'Nginx HTTP'でポート80を許可します。
LNMP(Nginx + PHP)の追加
- PHP-FPM と拡張:
sudo apt install php-fpm php-mysql。 - サーバブロック設定: サイトの server ブロック内で
location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; ... }を有効にします(PHP バージョンに応じてパスを調整)。 - 確認:
/var/www/html/info.phpに<?php phpinfo(); ?>を置き、ブラウザで動作を確認します。
LAMP(Apache)の場合
- インストール:
sudo apt install apache2 php libapache2-mod-php mariadb-server。 - PHP ファイルはそのまま動きます。データベースは
sudo mysql_secure_installationで初期設定します。
補足
- 権限と所有者を正しく設定してください。
- データベースと接続する際は、アカウントとパスワードを安全に管理してください。
ローカル公開と発展例
ローカル公開(同一LAN内でのアクセス)
ラズパイをルーターに接続すれば、同じLAN内のPCやスマホからアクセスできます。やることは簡単で、ラズパイのプライベートIP(例: 192.168.1.10)をブラウザに入力するだけです。IPはラズパイで “hostname -I” やルーターの接続一覧で確認できます。
発展例1:ホームサーバー(メディアやバックアップ)
ラズパイにPlexやMiniDLNAを入れると、家の中で動画や音楽を共有できます。外付けHDDを接続して定期バックアップを取る設定も可能です。小規模なら省電力で運用できます。
発展例2:ファイルサーバー(Samba)
Windowsやスマホからファイルをやり取りしたい場合、Sambaを使います。共有フォルダを作り、アクセス権を設定すればエクスプローラーやファイルアプリから見えます。
発展例3:WordPressなどのブログ環境
LAMP(Linux + Apache + MySQL + PHP)を入れれば、WordPressを動かせます。インストールはパッケージを入れて設定ファイルを編集し、ブラウザで初期セットアップを行います。テスト環境や趣味のブログに向きます。
セキュリティと運用のポイント
同一LANでもパスワード管理や定期アップデートは必須です。外部公開する場合は、ポート開放やダイナミックDNS、強固な認証を導入してください。まずはローカルで動作確認をしてから次の段階へ進めると安全です。












