はじめに
このブログは、自宅の古い小型 PC に AlmaLinux 9 を入れたサーバーで動いています。このページでは、サーバーを作ったときの手順と、その後の運用やトラブル対応の記事をまとめています。
前半の「構築の手順」は、上から順に読むと、同じようなサーバーを一から作れる並びにしています。後半の「運用・トラブル対応」は、困ったときに必要な記事を探せるように、テーマ別に並べています。
第1部 構築の手順
1. 準備:なぜ自宅サーバーか、機材とネットワーク
- 私が「自宅サーバー」に回帰した理由:
古い小型 PC を再利用するメリットと電気代 - サーバーのハードウェア・スペック構成:
富士通 ESPRIMO Q558 で組んだ構成 - サーバーのハードウェア・スペック構成(D7011/G 版):
今の富士通 ESPRIMO D7011/G の構成と使用状況 - 自宅ネットワークの構成:
NURO光(MAP-E)でポート開放せずに公開する - NURO光で自宅サーバーを運用して分かったこと:
ポート開放なしでも WordPress を公開できた理由 - ハブと PC を 2.5GbE にした:
ダウンロードが 910Mbps から 2.1Gbps に。UPS の知らせを切らさない IP の移し方
2. OS のインストールと初期設定
- AlmaLinux 9 インストール:
自宅サーバー用に最小構成で入れる - AlmaLinux 9 のパーティション変更:
インストール時に /home を小さくする - AlmaLinux 9 初期設定:
日本語化、自動アップデート、root 宛てメール
3. 仮想環境(KVM)
- AlmaLinux 9 に KVM をインストールして仮想環境を作る
- KVM のブリッジ接続を nmcli で設定する:
仮想マシンを自宅 LAN の1台として扱う - virt-install でゲスト OS をインストール:
コマンドだけで仮想マシンを作る - 画面のない AlmaLinux 9 に Windows 11 の仮想マシンを作る:
TPM・セキュアブートの設定からリモートデスクトップでつなぐまで
4. セキュリティ
- Tripwire(ファイル改ざん検知システム)
- Tripwire の毎朝のメールを「説明できない変化」だけにした
- rkHunter(rootkit 検出ツール)
- rkhunter のメールが毎朝来ていた(記録が入れたときのままだった)
- Clam AntiVirus(ウイルス対策ソフト)
- Firewalld(ファイアウォール)
5. インターネットへの公開(Cloudflare Tunnel)
6. Web サーバーとアプリ
- Apache 2(Web サーバー)
- Cloudflare Tunnel 経由のアクセスログに読者の IP を記録する:
Apache の mod_remoteip - Web アクセス解析(GoAccess):
Apache のログを HTML レポートにする - MariaDB(データベース)
- phpMyAdmin
- WordPress
- MediaWiki:
/wiki/ に入れて記録用の Wiki にする
7. バックアップ
- WordPress のバックアップ:
データベース・静的 HTML・設定を毎日 NAS に7日分残す
第2部 運用・トラブル対応
Cloudflare
- Cloudflare とは?仕組みと無料プランでできること
- WAF のカスタムルールで自宅サーバーの WordPress を守る
- 広告のクリックの記録に、海外のサーバーからのクリックが混ざっていた:
海外からのアクセスを止めるルールを有効に戻した - AdSense 自動広告のプレビューが 404 になるとき
GoAccess(アクセス解析)
- 前編:HTML レポートの見方:
リクエスト数、訪問者数、時間帯 - 後編:レポートで怪しいアクセスと WordPress の負荷を調べる
- レポートから自分のアクセスや WordPress の内部通信を除く
- レポートに見知らぬ海外の IPv6 アドレスが出たとき
Search Console
確認に使う道具
- curl コマンドの基本と使い方:
GET・POST、ヘッダーの確認、ダウンロード - Postman の使い方の基本:
Windows への入れ方、GET と POST の送り方 - コピペで動かしていたサイトの確認・片付けのコマンドを、意味から理解する
- RLogin で Ctrl+C/Ctrl+V でコピー・貼り付けできるようにする設定:
ほかの Windows のソフトと操作をそろえる
NAS(DS224+)
- Synology の2ベイ NAS で、スマホの写真を自宅に保存する:
DS224+ でできること - DS224+ と DS225+ の違い:
2.5GbE と HDD の対応状況 - DS224+ のメモリを8GB追加して合計10GBにした記録:
公式の対応との違い - USB の HDD ケースを認識しなくなったときの対処:
電源アダプター付きのケースに替えて、Hyper Backup で手動バックアップ - NAS の空きが消えた原因は Synology Drive の古い版だった:
約950GB を「バージョンを定期的に回転」で取り戻す - NAS のパスワードを変えたら、毎日のバックアップが止まりかけた:
rclone の unable to authenticate と入れ直し方 - NAS のスナップショットを入れたら、2つの落とし穴があった:
ごみ箱の 136GB と、毎日の分に付かない変更不可
停電の備え(UPS)
- UPS を入れて、停電のとき NAS・自宅サーバー・メイン PC を止める:
Synology は止まる合図(FSD)を送らなかった - 停電のあと、自動で起きるようにする:
BIOS の電源の設定と、Wake-on-LAN で NAS を起こす
本体の入れ替え(Q558 → D7011/G)
- Q558 の BIOS を Linux から更新できなかった:
予備の SSD に Windows 11 を入れて、Windows Update で更新した - Q558 から D7011 へ、SSD をそのまま差し替えた:
initramfs・BIOS の保存忘れ・古いマイクロコード - SSD を新しい PC に移したら LAN がつながらない:
ブリッジの部下が、前の口の名前と MAC を名指ししていた - SSD を USB の HDD に dd で丸ごと控えた:
控えから起こしたら緊急モード、LVM の「使ってよいディスクの一覧」
このサーバーで Web 開発を学ぶ連載
このサーバーの上で、Web のツールを作りながら開発を学んでいる連載もあります。組み込みエンジニアの Web 開発入門 ― 目次からどうぞ。
HTML や TypeScript など、開発・プログラミングの記事は、開発・プログラミングメモにテーマ別にまとめています。
AlmaLinux のインストールと構築は、約15年お世話になっている「Almalinuxで自宅サーバー構築」を参考にしています。詳しい内容を知りたい方、困ったことを質問したい方は、ぜひそちらのサイトへ。(このページに先にたどり着く方は、ほとんどいないと思いますが、念のため。)
