2026年9月18日
2026年9月18日
WordPressのSQLiteドライバーで軽量なローカル開発環境を作る方法
MySQL や Docker を用意しなくても、SQLite を使えば PHP だけで WordPress のローカル開発環境を立ち上げられます。データベースは1つのファイルなので、環境の作成・複製・破棄が速く、プラグインやテーマの動作確認に向いています。この記事では、公式の「SQLite Database Integration」プラグインを使った構築手順、WordPress Playground を使う方法、使ううえでの制限と注意点を説明します。
SQLite で動く仕組み
WordPress コアは公式には MySQL と MariaDB を対象にしています。SQLite で動かすときに使うのが、WordPress のパフォーマンスチームが開発している「SQLite Database Integration」プラグインです。このプラグインは wp-content/db.php というドロップインを置き、WordPress のデータベース処理を差し替えます。WordPress が発行する MySQL 向けの SQL を、プラグインのドライバーが SQLite で実行できる形に変換して処理します。
ブラウザ上で WordPress を動かす WordPress Playground も、この仕組みで SQLite を使っています。プラグインは将来のコア統合も視野に入れた機能プラグインという位置づけで、ドライバーは改良が続いています。2025年以降は MySQL の構文を解析して変換する新しいドライバーへの移行が進められており、プラグインのバージョンによって既定の動作や切り替え方が異なります(2026年10月現在)。導入するときはプラグインページの説明と変更履歴を確認してください。
向いている用途と向いていない用途を整理すると次のとおりです。
- 向いている:テーマやプラグインの開発・表示確認、ブロックの試作、検証用の使い捨て環境、ノート PC での軽い作業
- 向いていない:本番運用、MySQL 固有の機能(全文検索インデックスなど)に依存するプラグインの検証、同時書き込みの多い負荷試験
方法1:WordPress Playground CLI を使う
最も手軽なのは、Node.js が入った PC で WordPress Playground の CLI を使う方法です。SQLite の設定はあらかじめ組み込まれているので、データベースについて何も設定せずに起動できます。
# 一時的な WordPress を起動(表示された URL をブラウザで開く)
npx @wp-playground/cli@latest server
# 開発中のプラグインのフォルダをマウントして起動する例
npx @wp-playground/cli@latest server \
--mount=./my-plugin:/wordpress/wp-content/plugins/my-plugin
オプション名や既定の動作は版によって変わることがあるため、--help で手元の版の説明を確認してください。以前使われていた wp-now は Playground CLI への移行が案内されています。手軽な反面、データが既定では一時的な扱いになるなど、通常のサーバー環境とは振る舞いが異なる点があります。ふだんのファイル構成のまま長く使う環境がほしい場合は、次の方法2が向いています。
方法2:PHP と SQLite Database Integration で構築する
必要なもの
PHP に SQLite 用の拡張(PDO SQLite)が入っていることが条件です。まず確認します。
php -v
php -m | grep -i sqlite
pdo_sqlite が表示されれば準備はできています。表示されない場合は、OS のパッケージ(Ubuntu なら php8.3-sqlite3 のような名前)を入れるか、Windows なら php.ini で該当の extension 行を有効にします。PHP のバージョンは、WordPress とプラグインの要件を満たすものを使ってください。WP-CLI があると以降の作業が楽になります。
手順
- WordPress 本体を作業用フォルダに展開します
mkdir wp-sqlite && cd wp-sqlite
wp core download --locale=ja
- SQLite Database Integration を
wp-content/plugins/sqlite-database-integrationに置きます。WordPress.org のプラグインページから ZIP をダウンロードして展開します。WordPress がまだインストールされていない段階なので、wp plugin installではなく手作業で置く必要があります
- ドロップインを配置します。プラグインのフォルダにある
db.copyをwp-content/db.phpとしてコピーします。ファイル内にはプラグインの場所を示すプレースホルダが含まれているため、プラグインの README に書かれた手順に従って、実際のパスに合わせて置き換えてください。既存の WordPress で管理画面からプラグインを有効化した場合は、この配置をプラグインが行います
wp-config-sample.phpをコピーしてwp-config.phpを作ります。DB_NAME などの MySQL 用の値は使われませんが、ファイル自体は必要です。認証用キーとソルトは公式の生成サービスなどで作った値に置き換えます。データベースファイルの場所を変えたい場合は、プラグインが参照する定数で指定できます(指定するフォルダは先に作成し、PHP から書き込めるようにしておきます)
// wp-config.php の例:DB ファイルを公開フォルダの外に置く
define( 'DB_DIR', dirname( __DIR__ ) . '/wp-sqlite-data/' );
define( 'DB_FILE', 'wordpress.sqlite' );
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
- 開発用サーバーを起動してインストールします
# 自分の PC からだけアクセスできるよう 127.0.0.1 で待ち受ける
wp server --host=127.0.0.1 --port=8080
ブラウザで http://127.0.0.1:8080/ を開くと、データベース接続の画面を飛ばしてサイト名や管理者の入力画面が表示されます。ここで入力すればインストールは完了です。定数で場所を変えていなければ、データベースは wp-content/database/.ht.sqlite に作られます。
wp server は PHP の組み込みサーバーを WordPress 向けのルーター付きで起動するコマンドで、パーマリンクもそのまま動きます。開発用の仕組みなので、外部に公開する用途には使いません。
使うときの注意点
データベースファイルを公開しない
データベースのファイル名が .ht で始まるのは、Apache の一般的な設定で .ht から始まるファイルへのアクセスが拒否されることを利用しているためです。Nginx や PHP の組み込みサーバーにはこの保護がなく、URL を知っていればファイルを取得できてしまいます。開発環境でも 127.0.0.1 で待ち受けること、可能なら上の例のように DB_DIR で公開フォルダの外に置くことをおすすめします。Nginx で動かす場合は .ht で始まるファイルを拒否する location を追加します。
プラグインの互換性
ドライバーは WordPress コアが使う SQL を中心に対応していますが、プラグインが独自に書いた MySQL 固有の SQL(特殊な関数、全文検索、ストアドプロシージャなど)は変換できないことがあります。エラーが出たら wp-content/debug.log を確認し、どのクエリで失敗しているかを見ます。SQLite で動かないからといってプラグイン側の不具合とは限らないので、最終的な動作確認は本番と同じ MySQL・MariaDB の環境で行ってください。
WP-CLI の db コマンド
wp plugin や wp post など PHP で完結するコマンドは通常どおり使えますが、wp db export や wp db query は MySQL のクライアントを呼び出す仕組みのため、そのままでは SQLite に使えません。中身を確認したいときは sqlite3 コマンドを使います。
sqlite3 wp-content/database/.ht.sqlite ".tables"
# 開発中のバックアップ(使用中でも整合性を保ってコピーできる)
sqlite3 wp-content/database/.ht.sqlite ".backup 'backup-$(date +%Y%m%d).sqlite'"
ファイルをそのままコピーしても複製できますが、書き込み中だと中途半端な状態を写す可能性があるため、サーバーを止めてからコピーするか .backup を使います。
既存サイトのデータは自動では移らない
MySQL で動いているサイトにプラグインを入れて SQLite に切り替えても、MySQL の中身が自動で移るわけではなく、空のデータベースから始まります。本番に近いデータで試したい場合は、本番側の「ツール」→「エクスポート」で書き出した WXR ファイルを、ローカル側で WordPress Importer を使って読み込み、wp-content/uploads を別途コピーする方法が扱いやすいでしょう。会員情報などの個人データを含むサイトでは、ローカルに持ち出す範囲を最小限にし、使い終わったら削除してください。
まとめ
- SQLite Database Integration は
wp-content/db.phpのドロップインで WordPress を SQLite で動かす公式の機能プラグイン - 最も手軽なのは WordPress Playground CLI、ふだんのファイル構成で使うなら PHP の PDO SQLite と
wp serverで構築する - DB ファイルは Apache 以外では保護されないため、127.0.0.1 で待ち受け、可能なら公開フォルダの外に置く
- MySQL 固有の SQL を使うプラグインは動かないことがあり、最終確認は本番と同じ DB で行う
- ドライバーは改良が続いているので、導入時にプラグインの説明と変更履歴を確認する