21
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【前編】ラズパイで自宅サーバーを立ててWebサイトを公開するまで(超初心者向け)

21
Last updated at Posted at 2025-12-19

この記事は、「自宅サーバーでWebサイトを作ってみたい初心者」向けの記事です。

  • 自宅サーバーって何?
  • ラズパイで何ができるの?
  • Webサーバーってどう立てるの?

このあたりが まだふわっとしている人 を想定しています。

できるだけ 「何をしているか分からないまま進まない」 ように解説していきます。

今回は長くなるので 前編 です。

用意するもの

物理環境

最低限、以下が必要です。

  • サーバー(今回は Raspberry Pi 前提)
  • 電源
  • ネットワーク接続(有線 or Wi-Fi)
  • 初期設定用のPC(OSインストール時に必要)

サーバーの環境

ラズパイ側で以下を済ませておいてください。

  • OSのインストール
    (Raspberry Pi Imager などを使用)
  • SSHの有効化
    ※必須ではないけど、ほぼ必須
  • OSの初期設定
    (ユーザー名、Wi-Fi設定など)
  • 必須パッケージのインストール
    (ラズパイOSなら大体最初から入ってます)

ここが終わっていればOKです。

サーバー構築(Flaskで最小構成)

今回は Python + Flask を使って、
「とりあえずWebページが見える」状態を作ります。

ターミナルを開く

  • ラズパイに直接接続してもOK
  • SSH経由でもOK

※ SSHの設定方法は別記事に任せます。

Flaskのインストール

念のため、Flaskを入れておきます。

pip install flask

エラーが出る場合はこちら。

pip install flask --break-system-packages

ラズパイOSの仕様で怒られることがあります。
初心者のうちは深追いしなくて大丈夫です!

作業ディレクトリを作成

mkdir server
cd server

サーバープログラムを作成

nano server.py

以下を入力してください。

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True, port=5000)

⚠️ 注意ポイント

  • host="0.0.0.0":外部からアクセスできるようにするため
  • debug=True:開発用(本番では絶対OFF)

保存方法:

  • Ctrl + XY → Enter
    (MacのSSHでも Control + X

HTMLファイルを作成

mkdir templates
nano templates/index.html

中身は以下。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Hello World</title>
</head>
<body>
    <h1>Hello, World!</h1>
    <p>ラズパイWebサーバー起動中</p>
</body>
</html>

正直、こんなに長いHTMLじゃなくて全然OKです。

起動確認

python3 server.py

エラーが出なければ起動成功。

一度止めます。

Ctrl + C

IPアドレスを確認する

ifconfig

表示例(伏せ字あり):

eth0:
    inet 192.168.xxx.xxx

ここで重要なのは:

  • 127.0.0.1 ではない
  • 192.168.xxx.xxx のように、127から始まっていない方

この IPアドレスを覚えてください

ブラウザからアクセス

もう一度サーバーを起動。

python3 server.py

同じルーターに接続している端末から、
以下にアクセスします。

http://<IPアドレス>:5000

画面が表示されたら成功です 🎉

ルーターの設定(ポートフォワーディング)

⚠️ ここから一気に危険度が上がります

ルーター管理画面へ

ルーターの管理画面は、ルーターの機種・メーカーによって異なります

よくある例は以下ですが、必ずしも当てはまるとは限りません。
詳しくは各メーカーの取扱説明書をご覧ください。

  • 192.168.0.1
  • 192.168.1.1
  • 192.168.10.1
  • 192.168.100.1

ポートフォワーディング設定

  • IPv4 ポートフォワーディングを探す
  • 内部IP:ラズパイのIP
  • ポート:5000
  • 優先度:5くらい

これで 外部からもアクセス可能 になります。

⚠️ 注意

  • Flaskの debug=True のまま公開しない
  • 本番利用は絶対NG
  • あくまで 検証用・学習用

前編まとめ

  • ラズパイでWebサーバーは意外と簡単
  • Flaskを使うと爆速で確認できる
  • IPアドレスとポートの概念が超重要
  • ポート開放は便利だけど危険

次回(後編)

後編では、

  • セキュリティ最低限どうする?
  • ポート5000卒業
  • 常時起動
  • ドメインの話

この辺をやります。

おわりに

ここまで読んでくれてありがとうございます!
間違い・ツッコミ・改善案は大歓迎です。

👉 続編はこちら

21
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?