以前にもローカルサーバーでWordpressを構築して自己満足blogをやっていたんだけど、何かの拍子に電源が落ちてそのまま放ったらかしにしてたんだけど、作業メモ的な物を残しておきたいと思い、改めて構築することにした。今回は、GoogleのAI ジェミニ先生に質問しながら構築。サーバーの操作は別端末からSSH経由で行っている。
まずは動作環境。
Raspberry Pi 4B 8GB (余っていた物を活用。今高いからLinuxが動く物なら何でもいい。)ストレージ兼起動ディスク:1TB SSD USB接続(これも余り物)OS: Ubuntu server 26.04 LTS(アーキテクチャに注意。今回はarm版)
SSH接続で作業できるようip addressを固定する。
sudo nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
renderer: networkd
ethernets:
ens33: # 1で確認したインターフェース名に変更
dhcp4: no # DHCPを無効化
addresses:
- 192.168.1.100/24 # 設定したい固定IPアドレスとプレフィックス長
routes:
- to: default
via: 192.168.1.1 # デフォルトゲートウェイのIPアドレス
nameservers:
addresses:
- 8.8.8.8 # DNSサーバーのIPアドレス
- 8.8.4.4
sudo netplan try #設定の確認と反映
以降は別端末からSSH接続で操作する。
Dockerをインストールする。
sudo apt update sudo apt install docker.io docker version #確認 Client: Version: 29.7.2 API version: 1.55 Go version: go1.26.6 Git commit: 29.7.2-0ubuntu1 Built: Tue Aug 18 19:18:07 2026 OS/Arch: linux/arm64 Context: default
作業用のディレクトリを作成してそこへ移動し、docker-compose.ymlを作成。
mkdir ~/wordpress-nginx cd ~/wordpress-ngnix nano docker-compose.yml
以下をコピペして保存する。
version: '3.8' #errorになったらコメントアウト services: db: image: mariadb:10.11 container_name: wp_db restart: always environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: wordpress MYSQL_USER: user MYSQL_PASSWORD: password #ここと volumes: - db_data:/var/lib/mysql wordpress: image: wordpress:php8.2-fpm container_name: wp_app restart: always depends_on: - db environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: user WORDPRESS_DB_PASSWORD: password #ここは同じにする WORDPRESS_DB_NAME: wordpress volumes: - wp_data:/var/www/html nginx: image: nginx:alpine container_name: wp_nginx restart: always ports: - "8080:80" volumes: - wp_data:/var/www/html - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - wordpress volumes: db_data: wp_data:
nginx.confを作成。
nano nginx.conf
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
上記をコピペして保存。Dockerを起動するとlocalhost:8080でインストール画面へ行けるようになる。
docker compose up -d
インストールが終わればローカルで動くWordpressの構築は終わりです。