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"

```