WordPressでSQLiteのプラグインを
『PDO (SQLite) For WordPress』から、『SQLite Integration』に、乗り換えて数年。
確実に安定しているので、確定情報としてメモしておく。
新規wordpressで設定
※これは『プラグイン設定』で『有効』にしなくても、WordPressに設置するだけで有効になる。
- 『SQLite Integration』の最新版をDL・解凍。
- 解凍した『sqlite-integration』中から『db.php』だけを『wp-content』以下に、
残りは『sqlite-integration』ディレクトリごと『wp-content/plugins』以下に、
配置する - 『wp-config-sample.php』を基に『wp-config.php』作成し、DB設定の下に追加
define('USE_MYSQL', false); // 『mysql』は使わない宣言 define('DB_TYPE', "sqlite"); // ここで『mysql』も指定可能 define('DB_FILE',"【ファイル名.sqlite】");
- フロントページにアクセスすると、あとは通常と同じように設定画面に入力・設定。
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改造版
コメント