WordPressをSQLiteで動作させる方法(pdo-for-wordpress,xrea)

  • 投稿 : 2011-06-16
  • 更新 : 2015-01-12
追記:2015/01/12
Wordpress4とかの場合なら、当記事の方法で無くて、SQLite Integrationというプラグインを使う方がよいと思います。
参考:WordPressをSQLiteで使う方法 【SQLite Integration、動作したプラグイン情報】

追記:2012/01/26
wordpress-2.9.2-jaとpdo-for-wordpress(2.7.0)で構築後、WP3.3.1やWP3.4やWP3.5にアップグレードすることは可能です。
WP3.3.1以降の場合は、新規投稿も編集もできます。
WordPress3.5をSQLiteで使う 【pdo-for-wordpress】

試した組み合わせ

xreaの無料サーバーで構築しました。
・wordpress-2.9.1-jaとpdo-for-wordpress(2.7.0)の組み合わせ
・wordpress-2.9.2-jaとpdo-for-wordpress(2.7.0)の組み合わせ
--- OK
・wordpress-3.1.3-jaとpdo-for-wordpress(2.7.0)の組み合わせ
・wordpress-3.0.6-jaとpdo-for-wordpress(2.7.0)の組み合わせ
・wordpress-3.0.5-jaとpdo-for-wordpress(2.7.0)の組み合わせ
--- 表示はOK、新規投稿・編集でエラーになる

インストール方法

pdo-for-wordpressに付属しているreadme.txtを参考にしてください。

1.pdo-for-wordpressの「pdo」と「db.php」をwordpresswp-content以下にコピー
2.wp-config-sample.phpをwp-config.phpに名前変更(通常のWPのインストール)
3.wp-config.phpにdefine('DB_TYPE','sqlite');を追加
/** データベースの照合順序 (ほとんどの場合変更する必要はありません。) */
define('DB_COLLATE', '');
/** データベースのタイプ */
define('DB_TYPE','sqlite');
4.wp-content/databaseフォルダ作成
5.wp-content/database/debug.txt ファイル作成
6.xreaの場合、wp-config.phpと同じフォルダーの.htaccessに以下を追加
AddHandler application/x-httpd-phpcgi .php
7.http://xxxxx/wp-admin/install.php を指定してインストール開始

※取り消し線を引いた作業(4,5)は必要なし

xrea特有の話

safe modeで動作してるので何もしないとWarning: set_time_limit() というエラーがでて動作しません。上記の6をすることによりcgiモードで動作することで回避します。

500のエラーがでて原因がわからない場合は、.htaccessに以下を追加するとわかりやすくなります。
AddHandler application/x-httpd-phpcgi-debug .php
または、wp-content/database/debug.txtの中身を見ると参考になるエラーが書かれてる場合もあります。

set_time_limitをコメントアウトして、セーフモードで動作させても違うところがまたエラーなるのでこの路線は無理そう

PDOEngine.phpの中でset_time_limit(30);で30秒が設定されてるがこれだとタイムアウトになる場合があるので必要ならもっと秒数を大きくする。

error while loading shared libraries: libpq.so.5みたいなエラーが出る場合は、そのサーバーでのインストールをあきらめて、違うサーバーで試したほうがよいです。s361では頑張っても動きません(私も試したがダメでした)。
XREA または CORESERVER の PHP の CGIモードのデバッグ方法 : zontheworld
[統一スレッド] s361サーバー障害連絡・メンテナンス情報 - Page 2 - XREA&CORE; SUPPORT BOARD

WordPress3.1に・・・

最初、WP3.1でのインストールに挑戦してみたのですがうまくいきませんでした。WP2.9は上記のようにうまくいき、記事の投稿も問題ありませんでした。ここでWP3.1.3にアップグレードするとすんなりできるのですが、表示はできても投稿ができなくなりました。

ネットでは、WP3.0あたりでの成功事例はありますのでこの辺りまではバージョンアップは可能だと思います。またWp3.0で初めからインストールも可能だと思われます。何度も挫折したので、対応しているWP2.9あたりでとりあえずインストールしました。

補足

PDOEngine.phpの中の以下の記述で実行時間のタイムアウトが30秒に設定されています。
set_time_limit(30);

もう少しタイムアウト値を上げないと以下のようなエラーが出ることがあります。
Fatal error: Maximum execution time of 30 seconds exceeded in
30から適当な値に書き換えてください。私は面倒なので120(2分)に設定しています。

スポンサーリンク