DockerでつくるWordPress構築(ローカル環境)

以前にもローカルサーバーで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の構築は終わりです。