PHP(5.4.0以降)+SQLite IntegrationでローカルにWordPressを構築する

PHPのビルトインウェブサーバーとSQLiteでWordPressを動かせないかな? と思って調べてみたところ、「SQLite Integration」というプラグインを使えばできることが分かりました。

PHP(5.4.0以降)でビルトインウェブサーバーを使う - Sprint Life

実行環境

  • Windows 7 Professional 64bit
  • PHP 5.5.10(ビルトインウェブサーバーを使用するため5.4.0以降)
  • WordPress 3.8.1 日本語版

手順

  1. WordPress本体をダウンロード
  2. プラグイン「SQLite Integration」をダウンロード
  3. インストール前の準備
  4. WordPressのインストール

PHP本体のインストールとPATHの設定については省略しています。

WordPress本体をダウンロード

実行環境のところにも書きましたが、今回ダウンロードしたのは日本語版の3.8.1です。

WordPress › 日本語

プラグイン「SQLite Integration」をダウンロード

「SQLite Integration」はWordPressのDBとしてSQLiteを使うためのプラグインです。 通常のプラグインとは異なり、WordPressのインストール時にも使用する必要があります。

WordPress › SQLite Integration « WordPress Plugins

プラグインの詳細については以下のページを参照してください。

SQLite Integration(ja) | ユニマージュ

インストール前の準備

php.iniの編集

PHPでSQLiteを扱えるようにするため、php.iniの以下の行を変更します。

変更前: ;extension=php_pdo_sqlite.dll
変更後: extension=php_pdo_sqlite.dll

PHP本体をCドライブ以外にインストールしている場合は、 extension_dirを変更します。正しく設定できていないと、 PHPやサーバーの起動時に「指定されたモジュールが見つかりません」 というエラーが出るはずです。

変更前: 
; On windows:
; extension_dir = "ext"

変更後:
; On windows:
 extension_dir = T:\php\ext

T:\php\のところはPHPをインストールしたフォルダのパスに置き換えてください。

WordPress本体とプラグインのファイルを展開

WordPress本体とプラグインを、サーバーのドキュメントルートにするフォルダにファイルを展開します。 サーバーを起動したフォルダがドキュメントルートになるので、展開先は任意の場所でかまいません。

  • ダウンロードしたWordPress本体およびプラグインのファイルを展開する
  • 展開してできたプラグインのフォルダをwordpress\wp-content\pluginsに置く
  • プラグインのフォルダ内にあるdb.phpをwordpress\wp-contentにコピー

wp-config.phpの編集

wordpress\wp-config-sample.phpのファイル名をwp-config.phpに変更します。

リンク先にあるオンラインジェネレータで表示された内容をコピーして、 wp-config.php内にある以下の認証用のユニークキーを上書きします。

wp-config.php の編集 - WordPress Codex 日本語版

上書きする箇所

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');

ローカルでしか使わないのでテーブルの接頭辞は変更しなくても問題ありませんが、 ここではwp_local_としました。

$table_prefix  = 'wp_local_';

データベースのファイルは、wordpress\wp-content\database.ht.sqliteが作成されます。 プラグインのオプションでMySQLとSQLiteを切り替えて使用したり、データベースのファイルを 保存するフォルダやファイル名を変更できますが、今回は設定していません。

ここまでできればインストールが可能です。

WordPressのインストール

PHPのビルトインウェブサーバーを起動して、http://localhost:8000/wordpress/wp-admin/install.phpにアクセスします。

php -S localhost:8000

サイトのタイトル、ユーザー名、パスワード、メールアドレスを入力します。 「検索エンジンのインデックスを許可する」はチェックを外してください。

「WordPressをインストール」のボタンをクリックします。

インストールが完了しました。

サーバーがApacheではないため警告メッセージとかぶってますが、左下にある「ログイン」ボタンをクリックします。 もしボタンをクリックしても反応がなければ、ウインドウのサイズを変更してボタンが見えるようにするか、 Tabキーを押してボタンにフォーカスを当ててEnterキーを。

インストール時に作成したユーザーでログインします。

問題がなければ管理画面が開けるはずです。

テスト投稿も完了。とりあえずこれでWordPressが使えるようになりました。

注意点としては以下の通りです。

  • ビルトインウェブサーバーは一般に公開するための機能ではないので、ローカルでの利用にとどめてください。
  • .htaccessなどApache特有の機能は使えません。パーマリンクの投稿名が日本語だとページが見つからなくなります。
  • SQL Integrationの利用により正常に動作しないプラグインがあるので、互換性や回避策はユニマージュさんのページを参照してください。

WordPressが公式にSQLiteをサポートしない現状では、SQLite Integrationへの依存度が高くなりますが、 ローカルにWordPressを構築する選択肢の一つとしていかがでしょうか。