byAI Oringinal file has an extention ".md"
# Ubuntu 26.04 LTS (Resolute) LANサーバー構築手順書
本手順書は、**Celeron N5105 / 8GB RAM / 250GB SSD** を搭載した **Ubuntu 26.04 LTS Desktop** サーバーにおいて、指定されたネットワーク環境(IP: `192.168.10.24`)に基づき、WordPress(Docker)、Python/Frisk、Mosquittoを協調動作させるための完全なガイドです。
---
## 🌐 ネットワーク要件とWordPressのポート選定
### 1. ネットワークパラメーター
* **サーバーIPアドレス**: `192.168.10.24` (固定)
* **クライアントPC**: `192.168.10.X` (同一サブネット)
* **デフォルトゲートウェイ**: `192.168.10.1`
* **サブネットマスク**: `255.255.255.0` (`/24`)
### 2. WordPress用ポート番号の選定について
Docker上のWordPressを外部(LAN内PC)に公開するポート番号は **`8080`番** を推奨します。
| ポート候補 | メリット | デメリット / 推奨理由 |
| :--- | :--- | :--- |
| **80番 (標準)** | 他PCから `http://192.168.10.24` だけでアクセスできる。 | Ubuntu Desktop標準のWebサービスや、将来的な別ツールと衝突しやすい。特権ポートのためセキュリティリスクがある。 |
| **8080番 (推奨)** | **開発・コンテナ運用の標準値。システム側と完全に分離でき安全。** | 他PCから `http://192.168.10.24:8080` とポート番号を明示する必要がある。 |
---
## 🛠️ ステップ1: サーバーのIPアドレス固定化 (Netplan)
【手動修正】
注意!重要!
Ubuntu 26.04 Desktopのネットワーク管理は通常 NetworkManager が行います。
が、サーバー用途として将来にGUIを削除するなどの場合、明示的に Netplan で固定します。
この2つを併用してはいけません!
Desktop環境を維持するならこのステップ1は不要です。
【手動修正おわり】
Ubuntu 26.04 Desktopのネットワーク管理は通常 NetworkManager が行いますが、サーバー用途として明示的に Netplan で固定します。
1. 設定ファイルを開きます(ファイル名は環境により異なります)。
```bash
sudo nano /etc/netplan/01-network-manager-all.yaml
```
2. 内容を以下のように書き換えて保存します。
network:
version: 2
renderer: NetworkManager
ethernets:
enp2s0: # ご自身のネットワークインターフェース名に変えてください(ip a コマンドで確認可能)
dhcp4: no
addresses:
- 192.168.10.24/24
routes:
- to: default
via: 192.168.10.1
nameservers:
addresses: [192.168.10.1, 8.8.8.8]
3. 設定を適用します。
```bash
sudo netplan apply
```
---
## 🛠️ ステップ2: Mosquitto (MQTT) のインストールとLAN公開設定
Ubuntu 26.04 のリポジトリからネイティブインストールし、LAN内からの接続を許可します。
1. インストールを実行します。
```bash
sudo apt update
sudo apt install -y mosquitto mosquitto-clients
```
2. LAN内からの匿名接続を許可する設定ファイルを新規作成します。
```bash
sudo nano /etc/mosquitto/conf.d/local.conf
```
3. 以下の内容を記述して保存します。
```ini
# すべてのインターフェース(LAN内)からの接続を1883番ポートで待ち受ける
listener 1883 0.0.0.0
allow_anonymous true
```
4. 再起動して自動起動を有効化します。
```bash
sudo systemctl restart mosquitto
sudo systemctl enable mosquitto
```
---
## 🛠️ ステップ3: Docker環境の最適化とWordPress構築
0-1.Dockerのインストール
0-2.8GBメモリと250GB SSDの寿命・容量を守るため、ログローテーションを設定した上でWordPressを構築します。
1. Dockerのログ容量を制限するため設定ファイルを作成します。
```bash
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
```
2. 以下を記述して保存します(SSDの枯渇を防ぎます)。
```json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
```
3. Dockerサービスを再起動します。
```bash
sudo systemctl restart docker
```
4. 開発用ディレクトリを作成し、移動します。
```bash
mkdir -p ~/wp-server && cd ~/wp-server
```
5. `docker-compose.yml` を作成します。
```bash
nano docker-compose.yml
```
6. 推奨ポート **8080** を適用した以下の内容を記述して保存します。
```yaml
services:
db:
image: mariadb:10.11
container_name: wp_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: wp_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: wp_password
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:latest
container_name: wp_app
restart: always
depends_on:
- db
ports:
- "8080:80" # ホストの8080番をコンテナの80番にマッピング
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: wp_password
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp-content:/var/my-custom-path # 手元でFriskテーマ等のコード編集を容易にするマウント
- wordpress_data:/var/www/html
volumes:
db_data:
wordpress_data:
```
7. コンテナを起動します。
```bash
docker compose up -d
```
⚠️ **重要(初期設定の罠)**:
WordPressのセットアップを行う際は、必ず**クライアントPCのブラウザから `http://192.168.10.24:8080` にアクセスして**開始してください。サーバーのローカル画面(localhost)で初期設定を行うと、URLが localhost としてデータベースに登録され、他PCからアクセスした際にデザインが崩れる原因になります。
---
## 🛠️ ステップ4: Python仮想環境とFriskの導入
Ubuntu 26.04のPEP 668(システム保護)を回避するため、仮想環境を使用します。
1. 必要なシステムパッケージをインストールします。
```bash
sudo apt install -y python3-venv python3-pip
```
2. 開発用ディレクトリを作成し、仮想環境を構築します。
```bash
mkdir -p ~/python-app && cd ~/python-app
python3 -m venv venv
```
3. 仮想環境をアクティベート(有効化)します。
```bash
source venv/bin/activate
```
4. FriskおよびMQTT操作に必要なライブラリをインストールします。
```bash
pip install --upgrade pip
# 用途に応じたFriskパッケージ、およびMQTT送受信用ライブラリを導入
pip install paho-mqtt
```
---
## 🧪 動作確認チェックリスト
1. **WordPress**: クライアントPCのブラウザから `http://192.168.10.24:8080` を開き、インストール画面が出るか確認する。
2. **MQTT (Mosquitto)**: クライアントPCまたはサーバーの別ターミナルから以下を実行し、疎通を確認する。
```bash
# 受信待ち受け
mosquitto_sub -h 192.168.10.24 -t "lan/test"
# 別画面から送信
mosquitto_pub -h 192.168.10.24 -t "lan/test" -m "Network OK"
```