[wp×SQLite]WordPressでSQLiteを使う[確定版]

WordPressでSQLiteのプラグインを
PDO (SQLite) For WordPress』から、『SQLite Integration』に、乗り換えて数年。
確実に安定しているので、確定情報としてメモしておく。

新規wordpressで設定

※これは『プラグイン設定』で『有効』にしなくても、WordPressに設置するだけで有効になる。

  1. SQLite Integration』の最新版をDL・解凍。
  2. 解凍した『sqlite-integration』中から『db.php』だけを『wp-content』以下に、
    残りは『sqlite-integration』ディレクトリごと『wp-content/plugins』以下に、
    配置する
  3. 『wp-config-sample.php』を基に『wp-config.php』作成し、DB設定の下に追加
    define('USE_MYSQL', false);   // 『mysql』は使わない宣言
    define('DB_TYPE', "sqlite");   // ここで『mysql』も指定可能
    define('DB_FILE',"【ファイル名.sqlite】");
    
  4. フロントページにアクセスすると、あとは通常と同じように設定画面に入力・設定。

DBファイルの保存場所の変更がオススメ

使うだけなら、上記だけで完了。
なのだけど、DBファイルは『/wp-content/database/』に保存される。

個人的にはデータベースファイルが、WEBからアクセス出来る場所にあるというのが気に入らない。
denyな.htaccessが置いてあるけど、使えないサイトならアクセスできちゃう。

なので、場所を『WEBからアクセス出来ない場所』に変更することをオススメする。

方法は『wp-config.php』に下記を追加するだけ。

define('DB_DIR', '【DBファイル保存場所の絶対パス】');

例えば、下記みたいに書けば、逐一直さなくていいので便利かと。

define('DB_DIR', realpath(dirname(__FILE__).'/../database');

問題と解決

自分が引っかかった問題を記載しておく

DB接続に失敗する

新規作成時『ブログのインストールが出来ない』
DB乗換時『管理画面にログインできない』『ブログ内容を更新できない』

Unable to create the required directory! Please check your server settings.

という文字が出る。
これら全て原因は同じである。

  • 『wp-content』ディレクトリ以下に『database』ディレクトリがない
  • 『database』ディレクトリのパーミッションを『0777』にする

上記対応で解決する。
もし解決できなければ知りたいので教えてください!

DB乗換時、改行おかしい

WordPressのエクスポートとインポートを使わずに、DBで丸っとコピーしようとするから起きるエラー。
MySQLとSQLiteの差、改行が『\\n』になっているのを、実改行に変換したSQLに書き直す。
MySQLのdumpで出力したSQL、SQLiteではそのまま使えないのが苦しい…。
それでもコピーをしたくてたまらないのだ…。

『Notice: Undefined property』出る

Notice: Undefined property: stdClass::$compile_option in ~

といったエラーが出るので、その対応。
sqlite-integrationの『Notice: Undefined property』対応

いろいろ改変したので、改変版を公開中

現在も書き換え中なので、こちらを確認いただければ、と。
SQLite Integration改造版

コメント

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