Dockerを使いローカルでWordPress動かす(nginx/PHP/MySQL)
2025/07/18 (金) - 09:00 Server
DockerでLAMPを構築しWordPress 6.8を動かしたときのメモ。あらかじめDockerの環境をインストールしている前提で、環境は以下の通りです。
- nginx 1.29
- PHP 8.3
- MySQL 8.0
ファイル構成は以下の通り作成します。
[作業ディレクトリ]
├── docker-compose.yml
├── app
│ └── WordPressのファイル群
├── nginx
│ └── default.conf
└── php
└── Dockerfile
appディレクトリにはWordPressの第るを用意しておきます。MySQLの基本情報(データベース名、ユーザ名、パスワードなど)やブラウザでアクセスする際のnginxのポート番号を指定します。こちらは今回8080とし、http://localhost:8080でアクセスできるようにします。
Dockerの設定
docker-compose.ymlに以下の通り記述します。
version: '3.8'
services:
# MySQL
mysql:
image: mysql:8.0
container_name: wp_mysql
environment:
MYSQL_ROOT_PASSWORD: root_password #MySQLのrootパスワード
MYSQL_DATABASE: wp_db #MySQLのDBパスワード
MYSQL_USER: wp_user #MySQLのDBユーザ
MYSQL_PASSWORD: wp_password #MySQLのパスワード
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
# PHP(PHP-FPM)
php:
build: ./php
container_name: wp_php
volumes:
- ./app:/var/www/html
expose:
- 9000
restart: unless-stopped
# Nginx
nginx:
image: nginx:latest
container_name: wp_nginx
volumes:
- ./app:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
## ブラウザでアクセスする際のポート番号
ports:
- "8080:80"
depends_on:
- php
restart: unless-stopped
volumes:
db_data:
nginxの設定
nginx/default.confでWebサーバーの設定をします。ディレクトリの設定やphp-fpmとの連携などを行います。
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
# PHPコンテナ(docker-compose.ymlのサービス名)とポートを合わせる
fastcgi_pass php: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 ~ /\. {
deny all;
}
}
PHPの設定
php/Dockerfileに以下を記述します。WordPressの動作に必要なモジュールや実行ユーザ名を設定します。
FROM php:8.3-fpm
# WordPressに必要なPHP拡張モジュール
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libzip-dev \
libonig-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd mysqli pdo_mysql zip mbstring opcache
WORKDIR /var/www/html
USER www-data
Dockerの起動
すべての作業が終わったら、作業ディレクトリに移動しDockerのコンテナを実行します。
$ cd 作業ディレクトリ(置き換えてね)
$ docker-compose up -d
正常に起動したらhttp://localhost:8080にアクセスするとインストールが起動するので、通常通りインストールします。MySQLの設定は冒頭のdocker-compose.ymlの設定を割り当てます。

起動した実行例。
Dockerの停止
Dockerを停止する場合は以下のコマンドを実行します。
$ docker-compose down
おしまい♥
おすすめ記事
- macOSのローカルWebサーバでVirtualHostを増やす&同じネットワーク内の端末化からアクセスする
- AWSのCloudFront入れたらメールフォームが動かなくなったの、なぁぜなぁぜ?
- さくらのレンタルサーバーでgitのリモートリポジトリを作成する
- macOSでローカルWebサーバを立ち上げ、ドキュメントルートを変更する
- さくらのレンタルサーバーのphpMyAdminで巨大なSQLファイルをインポートできない時
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/docker_lamp_wp/trackback/