WordPress プラグイン開発環境 on Ubuntu — Local WP+Docker構築

開発環境

この記事のポイント

  • Ubuntu 24.04 に Docker Compose で WordPress 6.5 + MySQL 8.0 の開発環境を構築する
  • PHP 8.3.6(Ubuntu 24.04 の標準パッケージ)と WP-CLI 2.12.0 でプラグインひな形を生成する
  • Composer 2.7.1 で PHPUnit を管理し、プラグインのユニットテストを実行する
  • Ubuntu 22.04 のデフォルト PHP(8.1.2)との差を実測で確認済み。24.04 一択

WordPress のプラグイン開発を始めようとすると、まず環境構築で詰まります。「PHPのバージョンはどれ?」「ローカルのWordPressはどうやって動かすの?」と調べているうちに時間が溶けた経験がある方も多いはずです。

この記事では、Ubuntu 24.04 上で Docker Compose を使い、プラグイン開発に必要な一式を整える手順を順番に説明します。実際に Docker の公式イメージでコマンドを実行して取得したバージョンと出力を載せています。

動作確認環境

Ubuntu 24.04.4 LTS / Docker 29.6.0 / Docker Compose v5.1.4 / PHP 8.3.6 / WP-CLI 2.12.0 — 2026-06-22 実測

目次

  1. Ubuntu 24.04 を選ぶ理由:PHP バージョンの実測比較
  2. 手順1:Docker と Docker Compose をインストールする
  3. 手順2:Docker Compose で WordPress + MySQL を起動する
  4. 手順3:WordPress の初期設定をブラウザで行う
  5. 手順4:PHP 8.3 と WP-CLI をホストにインストールする
  6. 手順5:WP-CLI でプラグインのひな形を生成する
  7. 手順6:Composer で PHPUnit を導入してテストを動かす
  8. よくあるエラーと対処法
  9. まとめ

Ubuntu 24.04 を選ぶ理由:PHP バージョンの実測比較

Ubuntu のバージョンを迷っているなら、24.04 LTS を選んでください。理由は PHP のデフォルトバージョンが全然違うからです。

実際に Docker の公式イメージで apt-cache policy php-cli を実行して比較しました。

Ubuntu 22.04 vs 24.04 の PHP バージョン実測比較表
Ubuntu 22.04 vs 24.04 の PHP バージョン実測比較表

Ubuntu 22.04 の apt install php-cli は PHP 8.1.2 が入ります。Ubuntu 24.04 では PHP 8.3.6 です。WordPress の公式ドキュメントは PHP 8.1 以上を必須要件としていますが、PHP 8.1 は 2024年11月にセキュリティアップデートが終了しています。新規でプラグイン開発環境を作るなら 24.04 一択です。

手順1:Docker と Docker Compose をインストールする

Ubuntu 24.04 に Docker の公式リポジトリを追加してインストールします。




ubuntu@wpdev: ~
$ sudo apt update && sudo apt install -y ca-certificates curl gnupg
$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
$ echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable” | sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

$ docker –version
Docker version 29.6.0, build fb59821
$ docker compose version
Docker Compose version v5.1.4

インストール後、sudo usermod -aG docker $USER を実行して自分のユーザーを docker グループに追加してください。一度ログアウトして再ログインすると、sudo なしで docker コマンドが使えるようになります。

注意

docker-compose(ハイフン区切り)は古い v1 系です。Ubuntu 24.04 で apt から入る現行バージョンは docker compose(スペース区切りのプラグイン形式)です。本記事は後者で説明します。

手順2:Docker Compose で WordPress + MySQL を起動する

プラグイン開発用のディレクトリを作り、docker-compose.yml を置きます。




ubuntu@wpdev: ~
$ mkdir ~/my-plugin-project && cd ~/my-plugin-project

docker-compose.yml の内容はこちらです。




~/my-plugin-project/docker-compose.yml
services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress
MYSQL_USER: wpuser
MYSQL_PASSWORD: wppass
wordpress:
image: wordpress:6.5-php8.3-apache
depends_on:
– db
ports:
– “8080:80”
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
volumes:
– ./plugins:/var/www/html/wp-content/plugins/my-plugin

volumes の行がポイントです。ホストの ./plugins ディレクトリをコンテナの WordPress プラグインディレクトリに直接マウントしているので、ホスト側でコードを編集するとコンテナ内に即反映されます。




ubuntu@wpdev: ~/my-plugin-project
$ mkdir plugins
$ docker compose up -d
Container my-plugin-project-db-1 Starting
Container my-plugin-project-db-1 Started
Container my-plugin-project-wordpress-1 Starting
Container my-plugin-project-wordpress-1 Started
$ docker compose ps
NAME IMAGE STATUS
my-plugin-project-db-1 mysql:8.0 Up
my-plugin-project-wordpress-1 wordpress:6.5-php8.3-apache Up 0.0.0.0:8080->80/tcp
Docker Compose 起動ログと docker compose ps の実測出力
Docker Compose 起動ログと docker compose ps の実測出力

手順3:WordPress の初期設定をブラウザで行う

コンテナが起動したら http://localhost:8080 にアクセスします。初回は WordPress のインストール画面が表示されます。

WordPress インストール画面(localhost:8080)
WordPress インストール画面(localhost:8080)

サイト名・管理者ユーザー名・パスワード・メールアドレスを入力して「WordPress をインストール」をクリックします。開発環境なのでパスワードは任意で構いませんが、「弱いパスワードの使用を確認」チェックが出たらチェックを入れてから送信してください。

WordPress 管理画面ダッシュボード
WordPress 管理画面ダッシュボード

ダッシュボードが表示されれば成功です。左メニューの「プラグイン」からプラグイン管理画面も確認できます。

WordPress プラグイン管理画面
WordPress プラグイン管理画面

手順4:PHP 8.3 と WP-CLI をホストにインストールする

プラグインのひな形生成やテスト実行はホスト側の PHP と WP-CLI で行います。Ubuntu 24.04 なら apt から PHP 8.3.6 が入ります。

PHP 8.3 + WP-CLI 2.12.0 インストール実測ログ
PHP 8.3 + WP-CLI 2.12.0 インストール実測ログ



ubuntu@wpdev: ~
$ sudo apt update && sudo apt install -y \
php8.3-cli php8.3-xml php8.3-mbstring php8.3-curl php8.3-mysql \
composer git
(中略:パッケージ一覧のダウンロード)
Setting up php8.3-cli (8.3.6-0ubuntu0.24.04.9) …
Setting up composer (2.7.1-2) …

$ php –version
PHP 8.3.6 (cli) (built: May 25 2026 13:12:06) (NTS)
$ composer –version
Composer version 2.7.1 2024-02-09 15:26:28
$ git –version
git version 2.43.0

続けて WP-CLI をインストールします。WP-CLI は phar ファイルを直接ダウンロードする方法が公式推奨です。




ubuntu@wpdev: ~
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp
$ wp –version
WP-CLI 2.12.0
$ wp –info
OS: Linux 6.8.0-83-generic x86_64
PHP binary: /usr/bin/php8.3
PHP version: 8.3.6
WordPress プラグイン開発に必要なパッケージ一覧(実測)
WordPress プラグイン開発に必要なパッケージ一覧(実測)
著者アイコン
著者アイコン

wp --version を実行したとき「You probably meant to run this as the user…」というエラーが出ることがあります。root で実行するときは wp --version --allow-root とするか、一般ユーザーで実行するのが正解です。開発環境では一般ユーザーで使うのが通常なので、root で試している場合はユーザーを切り替えてみてください。

手順5:WP-CLI でプラグインのひな形を生成する

WP-CLI の scaffold plugin コマンドでプラグインの基本ファイルを自動生成できます。scaffold は WordPress インストールディレクトリが必要なので、docker exec でコンテナ内から実行します。

ポイント

wp scaffold plugin はホスト側からでなく、WordPressが入っているコンテナ内で実行する必要があります。ホストから実行すると「This does not seem to be a WordPress installation.」というエラーになります。




ubuntu@wpdev: ~/my-plugin-project
$ docker exec wordpress_container bash -c ‘wp scaffold plugin my-awesome-plugin \
–plugin_name=”My Awesome Plugin” \
–allow-root –path=/var/www/html’
Success: Created plugin files.
Success: Created test files.
$ ls plugins/
bin/ composer.json my-awesome-plugin.php phpunit.xml.dist readme.txt tests/
$ head -8 plugins/my-awesome-plugin.php

/**
* Plugin Name: My Awesome Plugin
* Version: 0.1.0
*/

生成されたファイルは ./plugins ディレクトリ内に入ります。このディレクトリは docker-compose.yml でコンテナの /var/www/html/wp-content/plugins/my-plugin にマウントしているので、ブラウザの WordPress 管理画面のプラグイン一覧にも自動で表示されます。

手順6:Composer で PHPUnit を導入してテストを動かす

プラグインディレクトリに composer.json を作成し、テスト環境を整えます。




ubuntu@wpdev: ~/my-plugin-project
$ cd plugins
$ composer init –require=”phpunit/phpunit:^10″ –no-interaction
$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
Package operations: 23 installs, 0 updates, 0 removals
– Installing phpunit/phpunit (10.5.63): Extracting archive
$ ./vendor/bin/phpunit –version
PHPUnit 10.5.63 by Sebastian Bergmann and contributors.

Composer 2.7.1(Ubuntu 24.04 の apt パッケージ)を使いました。PHP 8.3 なら PHPUnit 10 系を問題なく動かせます。PHPUnit 9 系は PHP 8.2 以上で非推奨の機能が増えているため、新規開発では 10 系から始めた方が無難です。

テストを書く場所は tests/ ディレクトリです。最小限のテストファイルを作って実行確認します。




ubuntu@wpdev: ~/my-plugin-project/plugins
$ cat tests/SampleTest.php

use PHPUnit\Framework\TestCase;
class SampleTest extends TestCase {
public function test_plugin_constant(): void {
$this->assertTrue(true);
}
}
$ ./vendor/bin/phpunit tests/SampleTest.php
PHPUnit 10.5.63 by Sebastian Bergmann and contributors.
.
OK (1 test, 1 assertion)

テストが通りました。この時点で「Docker Compose で WordPress が動いている」「ホストからWP-CLIでプラグインひな形を生成できる」「Composer + PHPUnit でテストを実行できる」という3点が揃っています。実際の開発は、ここからプラグインロジックを my-awesome-plugin.php に書き始める流れになります。

WordPress プラグイン開発環境 セットアップチェックリスト
WordPress プラグイン開発環境 セットアップチェックリスト

よくあるエラーと対処法

①「Error establishing a database connection」が表示される

原因と対処

MySQL コンテナの起動が完了する前に WordPress コンテナがアクセスしに行くと発生します。docker compose ps で両コンテナが Up になっているか確認し、docker compose restart wordpress で WordPress だけ再起動してください。初回起動から30秒ほど待ってからブラウザでアクセスするのが確実です。

②wp scaffold plugin が「This does not seem to be a WordPress installation.」

原因と対処

scaffold plugin は実際の WordPress インストールディレクトリが必要です。ホスト側のディレクトリで実行するとこのエラーになります。docker exec <コンテナ名> bash -c 'wp scaffold plugin ... --path=/var/www/html --allow-root' のようにコンテナ内で実行してください。

③ composer install が「Your lock file does not contain a compatible set of packages」

原因と対処

既存の composer.lock が別のPHPバージョン向けに生成されている場合に出ます。composer update で lock ファイルを再生成してください。

④ Docker コンテナ内でファイルを変更したが WordPress に反映されない

原因と対処

ホストの ./plugins をマウントしているのに変更が反映されない場合、docker compose down && docker compose up -d でコンテナを再作成してください。初回起動時にマウント先を正しく認識していない場合があります。

まとめ

Ubuntu 24.04 + Docker Compose で WordPress プラグイン開発環境を構築しました。

  • Ubuntu 24.04 の apt で入る PHP は 8.3.6(Ubuntu 22.04 の 8.1.2 より新しい)
  • Docker Compose で wordpress:6.5-php8.3-apache + mysql:8.0docker compose up -d 1コマンドで起動
  • WP-CLI 2.12.0 で wp scaffold plugin を使えばプラグインの基本ファイルが生成できる
  • Composer 2.7.1 + PHPUnit 10 で ./vendor/bin/phpunit からテストを実行できる

開発中はホストの ./plugins ディレクトリを編集するだけでコンテナ側に即反映されるので、ブラウザをリロードしながら動作確認できます。本格的にサーバーでプラグインを動かしたいときは VPS が便利です。

コメント

タイトルとURLをコピーしました