工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド

Raspberry Pi を自宅/オフィス/クラウドのWebサーバ(LAMP/LEMPスタック)として運用する手順を、最新OS (Raspberry Pi OS Bookworm / Bullseye) 対応で解説します。Zero W から Pi 4/5 まで全モデル対応。セキュリティ・パフォーマンス・運用自動化のベストプラクティスも併記。

前提条件

ステップ 1:ターミナルアクセス

Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
デスクトップ環境でのターミナル起動 (Ctrl+Alt+T)
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
PuTTY等によるSSHリモート接続

ステップ 2:パッケージ更新

sudo apt update && sudo apt full-upgrade -y
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
パッケージリスト更新・全アップグレード

最新セキュリティパッチ・カーネル・ファームウェア適用。再起動推奨:sudo reboot

ステップ 3:Webサーバ (Apache) インストール

sudo apt install apache2 -y
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
Apache2 インストール完了

動作確認

ブラウザで https:/// アクセス → "Apache2 Debian Default Page" 表示で成功。

ステップ 4:PHP インストール (動的コンテンツ用)

sudo apt install php libapache2-mod-php -y
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
PHP + Apacheモジュール インストール

PHP動作テスト

echo "" | sudo tee /var/www/html/info.php

ブラウザで https:///info.php → PHP情報表示確認後、必ず削除 (sudo rm /var/www/html/info.php)。

ステップ 5:データベース (MariaDB/MySQL) インストール

sudo apt install mariadb-server -y
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
MariaDB サーバインストール (MySQL互換)
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
セキュリティ設定ウィザード

mysql_secure_installation 対話例


Enter current password for root (enter for none): [Enter]
Switch to unix_socket authentication? [Y/n] Y
Change the root password? [Y/n] Y
New password: [強力パスワード入力]
Re-enter new password: [再入力]
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database? [Y/n] Y
Reload privilege tables? [Y/n] Y

ステップ 6:Apache 再起動・設定反映

sudo systemctl restart apache2
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
Apache2 再起動で全設定反映

ステップ 7:Webサーバ動作テスト

Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
Apache デフォルトページ表示確認

https:/// でアクセス。デフォルトページ表示なら成功。

コンテンツ配置・権限設定


# ドキュメントルート所有者を pi ユーザーに変更 (SFTP/直接編集用)
sudo chown -R pi:www-data /var/www/html
sudo chmod -R 775 /var/www/html
# 新規ファイルもグループ書き込み可に
sudo find /var/www/html -type d -exec chmod g+s {} \;

ホスト名変更 (複数Pi運用時の識別用)

Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
raspi-config でホスト名変更
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
デスクトップGUI「Raspberry Pi Configuration」でも変更可能
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
新ホスト名入力例: myraspserver
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
再起動で反映

# CLI での変更 (推奨)
sudo raspi-config
# 1 System Options → S4 Hostname → 新ホスト名入力 → OK → Finish → 再起動確認 Yes

# または直接
sudo hostnamectl set-hostname myraspserver
sudo sed -i 's/raspberrypi/myraspserver/g' /etc/hosts
sudo reboot

再起動後、https://myraspserver.local/ (mDNS/Avahi/Bonjour対応環境なら) でアクセス可能。

FTP / SFTP サーバ構築 (リモート開発・デプロイ用)

Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
raspi-config で SSH 有効化 (SFTP前提)
Raspberry Pi で信頼性の高い Web サーバを構築するステップバイステップガイド
FileZilla (Windows/Mac/Linux) で SFTP 接続

SFTP 推奨 (FTP 非推奨: 暗号化なし、認証情報平文)

  1. SSH有効化済みなら SFTP 即利用可能 (ポート22)
  2. クライアント: FileZilla, WinSCP, Cyberduck, VS Code SFTP拡張等
  3. 接続: プロトコル SFTP、ホスト 、ユーザー pi、パスワード/鍵認証
  4. デフォルトで /home/pi にアクセス。Webコンテンツ編集は /var/www/html へ移動

VS Code Remote - SSH で直接編集 (最推奨)

セキュリティ・運用・パフォーマンス強化 (本番運用必須)

1. HTTPS 化 (Let's Encrypt + Certbot)


sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d yourdomain.com -d www.yourdomain.com
# 自動更新: sudo systemctl enable certbot.timer

2. ファイアウォール (ufw)


sudo ufw allow 22/tcp comment 'SSH'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
sudo ufw enable

3. Fail2Ban (ブルートフォース対策)


sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# /etc/fail2ban/jail.local で [sshd] enabled=true 等設定
sudo systemctl enable fail2ban --now

4. PHP/Apache チューニング

5. データベースチューニング

6. バックアップ自動化


# 日次バックアップスクリプト例 (cron 登録)
#!/bin/bash
DATE=$(date +%F)
mysqldump -u root -p'PASSWORD' --all-databases | gzip > /backup/db_$DATE.sql.gz
tar -czf /backup/www_$DATE.tar.gz /var/www/html
# 古いバックアップ削除 (30日以上)
find /backup -name "*.gz" -mtime +30 -delete

7. 監視・ログ

代替スタック: Nginx + PHP-FPM (LEMP) — 高負荷・低メモリ環境向け


sudo apt install nginx php-fpm mariadb-server -y
# nginx 設定: /etc/nginx/sites-available/default で fastcgi_pass unix:/run/php/php8.2-fpm.sock;
sudo systemctl enable nginx php8.2-fpm mariadb --now

Nginx は静的ファイル高速配信・低メモリ・高並列に優位。Pi 4/5 (4GB/8GB) なら Apache も十分実用的。

結論

Raspberry Pi で LAMP/LEMP スタックを構築し、自宅/オフィス/VPN経由でアクセス可能な Web サーバを運用する手順を網羅しました。「動く」から「安心して運用できる」へは、HTTPS化・ファイアウォール・Fail2Ban・バックアップ・監視の 5 点セット実装が鍵です。Zero W なら消費電力数Wで 24/365 運用可能。IoT ゲートウェイ、ホームオートメーション ダッシュボード、個人ブログ、開発用ステージング等、用途は無限大です。

サーバ構築・セキュリティ診断・パフォーマンスチューニングでお困りなら、専門エンジニアがサポートします。お気軽にお問い合わせください。

産業技術

  1. Python、SQLite、LabVIEWによるRaspberry Pi高精度温度プロファイリング
  2. Raspberry PiでTMP006赤外線温度センサーを使う – Pythonライブラリとセットアップガイド
  3. Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
  4. Raspberry Pi 3とPubNubでリモート気象監視
  5. TI SensorTagをNode-RED経由でBlynkと統合 – Raspberry Pi Zero編
  6. Raspberry PiでPIRモーションセンサーとLEDを制御
  7. Raspberry PiでGPIO経由のボタン押下を読み取り - ステップバイステップガイド
  8. Raspberry PiとTwilioで実現するトイレ占有センサー:音声通話とSMSで通知
  9. Raspberry Piダッシュボードで家庭の温度を監視する
  10. LIRCなしでRaspberry PiにIRリモコンを接続 - Python UARTアプローチ
  11. MCP3008 ADCでRaspberry Piにアナログセンサーを読み取る