HOME | Raspberry Pi | ビジネス書籍紹介 | 2026-01-04 (Sun) Today's Access : 275 Total : 1260973. Since 10 Sep. 2019

ラズパイで作る自宅WEBサーバ構築
第1回 Ubuntu Server インストール
2025.06.10

2022年4月21日、Ubuntu22.04がリリースされました。 この Ubuntu 22.04 LTS には5年間のサポート期間が提供されます。

●初期設定時における構成図


うぷ主の実働環境におけるWEBサーバを含む周辺機器は仕事部屋とは別の場所に設置しています。 そのため、新規サーバの設定時などはサーバを手元に置いたほうが便利です。 BUFFALOの無線LAN子機は、開発環境に有線LAN接続環境を提供しています。

最初にWindows環境でubuntuの初期イメージファイルを作成します。

まずは、ubuntu server イメージファイルをダウンロードします。
●Ubuntu Server 22.04.2 LTS
ubuntu-22.04.2-preinstalled-server-arm64+raspi.img.xz
画面を下にスクロールすると、「Download Ubuntu Server」という項目があり、 [Ubuntu Server 22.04.2 LTS]をダウンロード。
→ ubuntu-22.04.2-preinstalled-server-arm64+raspi.img.xz
※このイメージファイルはシステム修復の際に必要になりますので、大切に保管しておきましょう。

●7-Zip 高圧縮率のファイルアーカイバ(圧縮・展開/圧縮・解凍ソフト)
xz形式のファイルを解凍するソフトがインストール済みであれば必要ありません。
https://sevenzip.osdn.jp/
所有するパソコンに適したファイルをダウンロード
Windows 64ビット x64 → 7z2301-x64.exe
Windows 32ビット x86 → 7z2301.exe
インストールを実行してください。

ubuntu server のイメージファイルを解凍してください。
ubuntu-22.04.2-preinstalled-server-arm64+raspi.img.xz
↓
ubuntu-22.04.2-preinstalled-server-arm64+raspi.img
●SD Memory Card Formatter 5.0.2 for SD/SDHC/SDXC
https://www.sdcard.org/jp/downloads/formatter/
(Windows 7,8,8.1,10,11に対応)


Raspberry Pi の本体システムとして使えるのはFAT32フォーマットシステムだけなので、必然的にFAT32形式で使える最大容量は microSDHC 32GBになります。
なお、容量8GBや16GBのものではなく、32GBのSDカードの使用をお奨めします。

microSDカードをパソコンにセットし、FAT32でフォーマットします。
※ubuntu をインストールしたSDカードを再使用する場合は、クイックフォーマットではなく、上書きフォーマットを行ったほうが無難です。

●Win32 Disk Imager
https://sourceforge.net/projects/win32diskimager/
→ win32diskimager-1.0.0-install.exe
インストールを実行してください。

解凍した ubuntu server イメージファイルを microSDカードに書き込んでください。
※Win32 Disk Imager の使い方は検索するとすぐ見つかります。

●ディスプレイ設定
モニターはubuntuの今回の初期インストール時のみに使用します。HDMI接続のものが便利です。
WIMAXIT 8インチ 1280x800 Raspberry Pi 液晶モニターDIY HDMIディスプレイスクリーン マイクロUSB 5V/2A入力電源 PMMAハウジング+スタンド付き


インストールの前にubuntu の解像度設定を行います。
SDカードにUbuntu Serverのイメージを焼き付けた後に、エクスプローラーなどでドライブを確認すると、 USBドライブとsystem-bootドライブといった2つのドライブが追加されていることがわかります。
system-boot ドライブを開いて、config.txt に下記を追記します。

[all]
#hdmi_drive=2
framebuffer_width=1280
framebuffer_height=800
hdmi_group=2
hdmi_mode=28
hdmi_cvt=1280 800 60 5 0 0 0

[解説]
framebuffer_width フレームバッファの横幅
framebuffer_height フレームバッファの高さ
hdmi_group 1=CEA、2=DMT
hdmi_mode HDMIの動作モード(1~86は予約済み)
hdmi_cvt
 width 横幅
 height 高さ
 framerate フレームレート
 aspect アスペクト比(1=4:3、2=14:9、3=16:9、4=5:4、5=16:10、6=15:9)
 margins 0=マージン無効、1=マージン有効
 interlace 0=プログレッシブ、1=インタレース
 rb 0=通常、1=ブランク削除

※ubuntu をインストール後に設定変更を行う場合は、
$ sudo vi /boot/firmware/config.txt になります。

●Ubuntu Server のインストール

写真左下がRaspberry Pi 3 model Bです。 WEBサーバは高負荷な演算処理を行っているわけではなく、外部からのWEBアクセス頻度が負荷の最大の要因となります。 うぷ主のWEBサーバやルーターなどは無停電電源からの供給を受けています。 うぷ主サイトは知名度が高いわけではなく、再起動させずに安定的に動かすことを重視しているため、 消費電力の少ないRaspberry Pi 3を使用しています。

BUFFALO WLI-UTX-AG300/C
Raspberry Piの上に移っているのは、無線LAN子機です。 うぷ主のWEBサーバを含む周辺機器は仕事部屋とは別の場所に設置しています。 そのため、新規サーバの設定時などはサーバを手元に置くほうが便利です。 この無線LAN子機は、開発環境に有線LAN接続環境を提供します。

その右はUS配列の有線キーボードです。初期設定時に文字化けを気にする必要がないので1つ持っていると便利です。
そしてその上がHDMI接続のモニターです。
それでは、Raspberry Pi にSDカードを挿して起動します。

●アカウント設定
まずは初期パスワードでログインします。
ubuntu login: ubuntu
password:ubuntu
(current) UNIX password:ubuntu

パスワード変更を求められますので、ubuntu のパスワードを変更します。
Enter new UNIX password:********
Retype new UNIX password:********

●ネットワーク設定
まずは、ethernetのMAC Address を確認しておきます。

$ ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.9/24 metric 100 brd 192.168.11.255 scope global dynamic eth0
       valid_lft 172600sec preferred_lft 172600sec
    inet6 xxxx:xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86379sec preferred_lft 14379sec
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0:  mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
うぷ主の取得している固定IPアドレスはIPv4なので上記の太赤時に記載されているMACアドレスを設定に用います。
下記はWEBサーバーのLAN内のローカルIPアドレスを192.168.11.21、ブロードバンドルーターを192.168.11.1として場合の設定例です。
$ sudo vi /etc/netplan/50-cloud-init.yaml
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: no
            dhcp6: no
            match:
                macaddress: xx:xx:xx:xx:xx:xx
            set-name: eth0
            addresses: [192.168.11.21/24]
            gateway4: 192.168.11.1
            nameservers:
                    addresses: [192.168.11.21,192.168.11.1]
            optional: true
Ubuntu1 Desktopでは renderer にNetwork-Managerを使用し、UbuntuServerやRaspberryPi 3用のUbuntu22.04(UbuntuCore)では netplan で設定します。デフォルト値を変更したい場合は、renderer を明記します。
ローカルネットワーク側にラズパイを配置して、ポートマッピング機能により、グローバルIPアドレスへのリクエストをローカルIPアドレスに振り分けているので、この記載にグローバルIPアドレスは現れません。
ラズパイをDNSサーバとして使用しないのであれば、nameservers: の 192.168.11.21 は必要ありません。
optionalは、networkdのみがサポートしています。通常networkdはシステム起動時、デバイスが正しく起動し、設定されるまで一定時間待機します。しかしこのoptinalキーをtrueに設定したデバイスは、起動時にnetworkdが待たずにすぐに起動することができるようになります。
yamlファイルは、TABでなくSPACE(基本は空白2文字)でインデントする必要があります。


設定の反映
$ sudo netplan apply

ipアドレスの確認
$ ip a (あるいは $ ifconfig )
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.21/24 brd 192.168.11.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 xxxx:xxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86386sec preferred_lft 14386sec
    inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
       valid_lft forever preferred_lft forever
3: wlan0:  mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
eth0 が有線LAN接続です。BROADCASTの部分がUPになっていないときは、ネットワークを起動してください。
$ ip link set eth0 up )

●IPv6の無効化

IPv6は使用しないので、無効化します。
$ cat <<'EOF' | sudo tee -a /etc/sysctl.d/70-disable-ipv6.conf
> net.ipv6.conf.all.disable_ipv6 = 1
> net.ipv6.conf.default.disable_ipv6 = 1
> EOF

設定を反映します
$ sudo sysctl --system

$ ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.21/24 brd 192.168.11.255 scope global eth0
       valid_lft forever preferred_lft forever
3: wlan0:  mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
これだけでは再起動した際に反映されないことがあるので、起動後にsysctl設定を再適用するスタートアップスクリプトを作成します。

$ cat <<'EOF' | sudo tee -a /etc/rc.local
> #!/bin/bash
> # /etc/rc.local

> # Load kernel variables from /etc/sysctl.d
> /etc/init.d/procps restart

> exit 0
> EOF

実行権限を付与します

$ sudo chmod 755 /etc/rc.local

これで再起動して、IPv6アドレスがなければ大丈夫です。

●ネットワーク接続確認 ping

$ ping youtube.com

●Ubuntuバージョンの確認
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

●SSH接続設定

パッケージの有無を確認します。
$ dpkg --get-selections | grep openssh
openssh-client          install
openssh-server          install
openssh-sftp-server     install
利用できるパッケージのバージョンの確認します。

$ apt-cache show openssh-server | more
Package: openssh-server
Architecture: arm64
Version: 1:8.9p1-3ubuntu0.1

ubuntu 22.04 では標準でSSHをサポートしているので、特別な設定はありません。

ラズパイをシャットダウンします。
$ sudo shutdown now

これでラズパイで直接行う設定は終了です。 キーボード、HDMIケーブルを外します。
次回は ubuntu server の詳細設定を行います。

●その他

dpkg-reconfigureコマンドをサポートしているパッケージを調べる
$ ls /var/lib/dpkg/info/*.config
/var/lib/dpkg/info/adduser.config
/var/lib/dpkg/info/apparmor.config
/var/lib/dpkg/info/byobu.config
/var/lib/dpkg/info/ca-certificates.config
/var/lib/dpkg/info/cloud-init.config
/var/lib/dpkg/info/console-setup.config
/var/lib/dpkg/info/dash.config
/var/lib/dpkg/info/debconf.config
/var/lib/dpkg/info/flash-kernel.config
/var/lib/dpkg/info/iproute2.config
/var/lib/dpkg/info/keyboard-configuration.config
/var/lib/dpkg/info/landscape-common.config
/var/lib/dpkg/info/locales.config
/var/lib/dpkg/info/man-db.config
/var/lib/dpkg/info/mdadm.config
/var/lib/dpkg/info/openssh-server.config
/var/lib/dpkg/info/tzdata.config
/var/lib/dpkg/info/ubuntu-advantage-tools.config
/var/lib/dpkg/info/ufw.config
/var/lib/dpkg/info/unattended-upgrades.config

dpkg-reconfigure で下記のエラーが発生した場合
dpkg: エラー: dpkg frontend が別のプロセスによってロックされています
$ sudo rm /var/lib/dpkg/lock
$ sudo dpkg --configure -a

インターフェイス名を調べる
$ ls /sys/class/net
eth0 lo wlan0

■参考文献
超簡単まとめ!Ubuntu22.04 LTSの主な変更点 | ポートウェルジャパン株式会社 | 産業用PC, IoT, エッジコンピューティング端末メーカー
Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピュータ。イギリスのラズベリーパイ財団によって開発されている。
2025.06.09 前準備
2025.06.10 第1回 Ubuntu Server インストール
2025.06.11 第2回 Ubuntu Server 詳細設定
2025.06.12 第3回 Apache WEBサーバ設定
2025.06.13 第4回 PHP 設定
2025.06.14 第5回 MySQL 設定
2025.06.15 第6回 DNS (bind) 設定
2025.06.16 第7回 メールサーバ(Postfix)設定・前編
2025.06.17 第8回 メールサーバ(Postfix)設定・後編
2025.06.18 第9回 ファイアウォール(iptables) 設定
2025.06.19 第10回 crontab 設定
2025.06.20 第11回 運用
2025.06.21 第12回 保守
2025.06.22 第13回 Windows開発環境
2025.07.08 第14回 障害対応 SSD故障

たいていのことは100日あれば、うまくいく。長田英知著
「時間がなくて、なかなか自分のやりたいことができない」 「一念発起して何かを始めても、いつも三日坊主で終わってしまう」 「色んなことを先延ばしにしたまま、時間だけが過ぎていく」 そこで本書では、そんな著者が独自に開発した、 まったく新しい目標達成メソッド「100日デザイン」について、 その知識と技術を、余すところなくご紹介します。

まんがで納得ナポレオン・ヒル 思考は現実化する
OLとして雑務をこなす日々に飽き足らず、科学者だった父が残した薬品を商品化すべく、起業を決意した内山麻由(27)。彼女はセミナーで知り合った謎の女性からサポートを得ながら、彼女と二人三脚でナポレオン・ヒルの成功哲学を実践し、さまざまな問題を乗り越えていく。 ヒル博士の<ゴールデンルール>に従い、仕事に、恋に全力疾走する彼女の、成功への物語。

今日は人生最悪で最高の日 1秒で世界を変えるたったひとつの方法 ひすいこたろう著
偉人の伝記を読むと、最悪な日は、不幸な日ではなく、新しい自分が始まる日であることがわかります。最悪な出来事は、自分の人生が、想像を超えて面白くなる兆しなのです。偉人伝を読むことで、このときの不幸があったおかげで、未来にこういう幸せがくるのかと、人生を俯瞰する視線が立ち上がるのです。

ご飯は私を裏切らない heisoku著
辛い現実から目を背けて食べるご飯は、いつも美味しく幸せを届けてくれる。 29歳、中卒、恋人いない歴イコール年齢。バイト以外の職歴もなく、短期バイトを転々とする日々。ぐるぐると思索に耽るけど、ご飯を食べると幸せになれる。奇才の新鋭・heisokuが贈るリアル労働グルメ物語!

【最新版Gemini 3に対応!】できるGemini (できるシリーズ)
Geminiを「最強の知的生産パートナー」として使いこなすための、実践的なノウハウを凝縮した一冊です。 基本的な操作方法から、具体的なビジネスシーンでの活用、日々の業務を自動化するGoogle Workspaceとの連携、さらには自分だけのオリジナルAIを作成する方法まで余すところなく解説します。

Rustプログラミング完全ガイド 他言語との比較で違いが分かる!
Rustの各手法や考え方を幅広く解説! 500以上のサンプルを掲載。実行結果も確認。 全24章の包括的なチュートリアル。

ポチらせる文章術
販売サイト・ネット広告・メルマガ・ブログ・ホームページ・SNS… 全WEB媒体で効果バツグン! カリスマコピーライターが教える「見てもらう」「買ってもらう」「共感してもらう」すべてに効くネット文章術

小型で便利な Type-C アダプター USB C オス - USB3.1 オスアダプター
Type-C端子のマイコンボードをこのアダプタを介して直接Raspberry Piに挿すことができます。ケーブルなしで便利なツールです。

Divoom Ditoo Pro ワイヤレススピーカー
15W高音質重低音/青軸キーボード/Bluetooth5.3/ピクセルアート 専用アプリ/USB接続/microSDカード

電源供給USBケーブル スリム 【5本セット】
USB電源ケーブル 5V DC電源供給ケーブル スリム 【5本セット】 電源供給 バッテリー 修理 自作 DIY 電子工作 (100cm)

Copyright © 2011-2027 Sarako Tsukiyono All rights reserved®.