ホーム » WordPress » 既存WordPressサイトとphpMyAdminの開発環境をローカルに作る方法

既存WordPressサイトとphpMyAdminの開発環境をローカルに作る方法

2025/11/05 | WEB, WordPress

ITサポート・
WEBサイト制作は
お任せください

  • パソコンの動作が遅い
  • IT・DXツールを導入したい
  • WEBサイトを作りたい
  • WEBサイトの表示がおかしくなった

Dockerを使って、既存のWordPressサイトとデータベース管理ツールであるphpMyAdminを組み合わせた開発環境を構築する手順をご紹介します。

新規WordPressサイトの場合

新規WordPressサイトで同様の開発環境をローカルに作る方法もこちらの記事でご紹介しています。ぜひご覧ください。

作業ディレクトリの構成

% tree
.
├── compose.yaml
├── database
├── mysql
│   └── init
├── web
│   └── Dockerfile
└── wordpress

それぞれ次のような役割を持ちます。

compose.yaml
WordPress、MySQL、phpMyAdminなどのサービスに関する設定情報をまとめて記述します。

databaseディレクトリ
コンテナ内の所定の場所と紐づけて、データをローカルに保存するために利用します。

wordpressディレクトリ
コンテナ内の所定の場所と紐づけて、データをローカルに保存するために利用します。

mysql/initディレクトリ
既存WordPressサイトのデータベースファイルを保存してコンテナを起動する際に読み込みます。

webディレクトリ
Dockerfileを保存します。

Dockerfile
WEBサーバーの設定に関する情報を記載します。

wordpressディレクトリ
既存WordPressサイトを構成するファイルを保存します。

Dockerを設定する

作業ディレクトリを作成したらDockerの設定を定義します。

compose.yamlの内容

compose.yamlの内容をご紹介します。

全体像

services:

  web:
    build: ./web/
    ports:
      - "8080:80"
    volumes:
      - ./wordpress:/var/www/html

  db:
    image: mysql:x.x.xx
    environment:
      MYSQL_DATABASE: dev_db
      MYSQL_USER: dev_user
      MYSQL_PASSWORD: dev_pass
      MYSQL_ROOT_PASSWORD: dev_root_pass
    volumes:
      - ./mysql/init:/docker-entrypoint-initdb.d
      - ./database:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin
    ports:
      - 8083:80
    environment:
      - PMA_ARBITRARY=1

各コードの詳細

WEBサーバーのサービスを定義します。

services:

  web:
    build: ./web/
    ports:
      - "8080:80"
    volumes:
      - ./wordpress:/var/www/html

・・・(省略)・・・

build
./web/ディレクトリに保存しているDockerfileを読込み、コンテナを作成します。

ports
ローカルのポート8080とコンテナのポート80を紐づけています。
これにより、http://localhost:8080/のURLでWordPressサイトにアクセスできるようになります。

volumes
ローカルの./wordpress/ディレクトリとコンテナの/var/www/htmlディレクトリを紐づけしています。
ローカルのテーマやファイルを編集した際にリアルタイムでコンテナへも反映されます。

MySQLのサービスを定義します。

services:

・・・(省略)・・・

  db:
    image: mysql:x.x.xx
    environment:
      MYSQL_DATABASE: dev_db
      MYSQL_USER: dev_user
      MYSQL_PASSWORD: dev_pass
      MYSQL_ROOT_PASSWORD: dev_root_pass
    volumes:
      - ./mysql/init:/docker-entrypoint-initdb.d
      - ./database:/var/lib/mysql

・・・(省略)・・・

image
本番環境に合わせたバージョンのMySQLのDockerイメージを指定しています。

environment
データベース名、ユーザー名、パスワードを設定しています。
この情報をもとにデータベースが作成されます。

volumes
コンテナの起動時に、ローカルの./mysql/initディレクトリにある既存WordPressサイトのデータベースをコンテナと紐づけます。
これにより、既存のデータベースをコンテナへインポートできます。

また、./databaseディレクトリとコンテナの/var/lib/mysqlを紐づけすることで、コンテナを削除してもデータベースのデータがローカルに残ります。

phpMyAdminのサービスを定義します。

services:

  ・・・(省略)・・・

  phpmyadmin:
    image: phpmyadmin
    ports:
      - 8083:80
    environment:
      - PMA_ARBITRARY=1

image
最新バージョンのphpMyAdminのDockerイメージを指定しています。

ports
ローカルのポート8083とコンテナのポート80を紐づけています。
http://localhost:8083/のURLでphpMyAdminにアクセスできるようになります。

environment
コンテナに環境変数を設定しています。
PMA_ARBITRARY=1とすると、phpMyAdminにアクセスしたときに接続先データベースを選択するようになります。

Dockerfileの内容

FROM php:x.x.x-apache
RUN apt-get update && docker-php-ext-install mysqli pdo_mysql
RUN a2enmod rewrite
RUN sed -i -e 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf

FROMでは本番環境に合わせたPHPバージョンでWEBサーバーのイメージを指定しています。
このイメージでコンテナを起動します。

RUN apt-getではデータベースの接続に必要なPHP拡張機能をインストールしています。

RUN a2enmodではmod_rewriteモジュールを有効化して、RUN sedではhtaccessファイルの利用を有効化しています。

既存WordPressサイトを用意する

WordPressとデータベースをダウンロードする

FTPなどで既存のWordPressサイトとデータベースをダウンロードし、それぞれ次の作業ディレクトリに保存します。

./mysql/init
既存のWordPressのデータベースファイルを保存する。

./wordpress
既存のWordPressを保存する。

wp-config.phpを修正する

wp-config.phpのデータベース情報をcompose.yamldbサービスで定義した内容と揃えます。

/** WordPress のためのデータベース名 */
define('DB_NAME', 'dev_db');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'dev_user');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'dev_pass');

/** MySQL のホスト名 */
define('DB_HOST', 'db');

サイトURLをwp-config.phpで設定している場合は、その内容も修正しておきます。

define( 'WP_HOME', 'http://localhost:8080' );
define( 'WP_SITEURL', 'http://localhost:8080' );

環境を立ち上げる

Dockerの設定や既存WordPressサイトの準備ができたら、ターミナルでこれらファイルのあるディレクトリに移動し、次のコマンドを実行します。

docker compose up --build

デバック

http://localhost:8080/のURLにアクセスして既存のWordPressサイトが表示されることを確認し、開発環境用に調整を行います。

URLの置換

データベースに保存されているサイトURLを本番環境のURLから開発環境のURLに置換します。

これをしないと、開発環境(http://localhost:8080/)にアクセスしても本番環境の画像や内部リンクが表示されてしまい、開発環境の意味をなさなくなってしまいます。

パーマリンクの再設定

パーマリンク設定を再保存して、.htaccessの内容をリセットします。下層ページへアクセスできないときは、パーマリンクの再設定をしていないことが多いです。

.htaccess修正

.htaccessに本番環境固有の内容を記載している場合はそれを開発環境向けに修正しておきます。

キャッシュクリア

キャッシュプラグインなどを利用している場合は本番環境の情報でキャッシュされているので、すべて削除しておきます。

動作確認

既存のWordPressサイト(http://localhost:8080/)とphpMyAdmin(http://localhost:8083/)にアクセスできることを確認します。

まとめ

Dockerで既存WordPressサイトとphpMyAdminの開発環境をローカルに作る方法をご紹介しました。

ローカル環境に影響を与えずに開発や検証が行えるDocker環境は、本番環境のデバックやアップデート、修正など行うときのデモ環境として非常に有用です。ぜひご活用ください。

カナメグローバルホールディングスでは、お客様の課題を解決するホームページの制作から、安定した運用のための保守の支援を行っています。

ホームページに関するお悩みがありましたら、お気軽にお問い合わせ窓口よりご相談ください。

ITサポート・WEBサイト制作はお任せください