SQLite Integration 1.5 リリース

English version is available in SQLite Integration 1.5 released

SQLite Integrationを 1.5 をリリースしました。

  1. WordPress3.8 でのインストールと動作テストをしました。
  2. 新しく採用された管理画面に合うようにユーティリティのスタイルシートを変更しました。
  3. SQLite のコンパイルオプションを調べて、LIMIT 句つきの UPDATE や DELETE ができるかどうかをチェックするようにしました。
  4. SQLite と MySQL を切り替えて使えるオプションを追加しました。

前のバージョンでも WordPress3.8 が正常にインストールできることを報告してくれた方もいらっしゃいますが(ありがとうございます)、自分でもチェックしてみました。インストール、アップグレードともに問題がないようです。

ついでに、Subversion リポジトリの 3.9 アルファバージョンもチェックアウトしてみました。どうやら、mysqli や PDO ライブラリの採用はまだないようです。PHP 5.5 でも Notice が出ないように、E_DEPRECATED を抑制して、mysql ライブラリを継続して使っています。次期バージョンでも根本的な変更なしで、SQLite Integration が使える見込みです。

WordPress3.8 では、管理画面が新たなレスポンシブデザインに変更になりました。個別にプラグインとして開発されていた MP6 の成果が取り込まれているのです。モバイルデバイスでこんなところは見ないだろうと思いますが、スタイルシートを変更して、できるだけデザインを合わせました。ユーザのプロファイルページで、8つのカラーテーマが選択できるようになっていますので、選択されたものと同じ色を使うようにしました。あまりやる気がないので、やっつけだというのがバレバレだと思います。 🙂

新たなバージョンでは、SQLite ライブラリが、’ENABLE_UPDATE_DELETE_LIMIT’オプション付きでコンパイルされているかどうかをチェックするようにしました。このオプション付きなら、クエリの書き換えをせずに直接データベースに渡します。プラグインフォーラムを読んでいると、PHP 5.4 や 5.5 に移行した人が増えてきているようなので、SQLite ライブラリも変更になる可能性があり、複数行の values 句や、LIMIT をともなった UPDATE や DELETE 文が使えるようになっているかもしれないからです。もし、そうなら、データベース操作がより安全に、また、より速くなるはずです。

wp-config.php で、MySQL に簡単に切り替える方法はないか、という naillik 氏のコメントで、確かにそういう使い方もあるなぁ、と納得したので、それができるようにしました。新バージョンでは、wp-config.php で次のように定数を定義すれば、SQLite Integration の機能を停止できます。

"true"を"false"にするか、行を削除すると、SQLite に戻ります。最初に切り替えたときには、WordPress のインストーラが走るはずですから、通常どおりインストール作業をしてください。ただし、それぞれでの環境は引き継がれませんので注意してください。また、SQLite 用パッチをあてたプラグインを使っている場合、SQLite Integration が読み込まれていないと動かないものがあります。例によって動作保証はしませんので、好きなようにお使いください。

いくつかのファイルで、WordPress から呼ばれたかどうかをチェックするようにしました。実際には、外部から直接呼ばれても、サイトに害を与える動作はできません。が、サイトへの攻撃をする人たちは、脆弱性ありの(存在しない)プラグインのディレクトリや、脆弱性ありの(存在しない)phpファイルへのアクセスを繰り返します。このサイトも例外ではなくて、ありもしないファイルへの不正な GET や POST アクセスが毎日あります。パスカルの蠅のようにうんざりですが、蠅に蠅取り壺からの出口を示すこと(L. ヴィトゲンシュタイン)くらいのことはしておくことにしました。

Alex Almeda 氏のご協力に感謝します。プラグインに関するヒントを与えられました。

不具合やバグを発見したら、このサイトでコメントしていただいても、サポートフォーラムに投稿していただいてもかまいません。提案や感想も歓迎です。ありがとうございました。

Leave a Reply