WordPress3.6をSQLiteで使う 【pdo-for-wordpress,動作したプラグイン】

追記:2014/02/09
WordPressをSQLiteで使う方法 【SQLite Integration、動作したプラグイン情報】
Alien Pastures » New SQLite driver for the blog

SQLite Integrationというプラグインが登場しています。日本人の方が製作されてるようで、かつ今のところメンテナンスをされているので、こっちのほうが良いかも?とは思います。


追記:2014/02/09
WordPress › Support »
PDO plugin: Fixing errors in the sqlite driver

pdo-for-wordpressの修正方法に関しては、この辺りも参考になるかも

Alien Pastures » Blog updated to 3.4, sqlite database fixed
wp_commentmeta というテーブルを上記記事にしたがって作成すると、プラグインの「Akismet」とかも使えるようになるらしい


追記:
・2012/06/15 WordPress3.4でも動作しています。
・2013/01/12 WordPress3.5でも動作しています。
・2013/09/01 WordPress3.6でも動作しています。

この記事では、サーバーは、ロリポップ!を使用しています。

さくらのレンタルサーバ ライトでも、同様の方法で動作するようです

参考記事:
さくらのレンタルサーバ ライトで WordPress 3.5.1 を動かす(SQLite) « のむのむ通信
wordpressをさくらインターネットに導入してみました。 | 日々コツ

動作環境など

・wordpress-3.3.1-jaとpdo-for-wordpress(2.7.0)
・wordpress-3.4.1-jaとpdo-for-wordpress(2.7.0) 追記:2012/07
・wordpress-3.5.1-jaとpdo-for-wordpress(2.7.0) 追記:2013/02/17

の組み合わせで確認しました。

WordPress3.3.1で実用レベルで問題なくSQLiteで動作してます。記事も400件程度インポートしてみましたが問題なさそうです。削除も修正も問題なさそうです。

なにも対策しない場合は、投稿時以下のようなワーニングが出ます。しかしながらちゃんと投稿されているので気にしなければ?問題ないでしょう。
Warning: implode() [function.implode]: Invalid arguments passed in /home/users/xxxxx/wp-includes/taxonomy.php on line 2879

Warning: Cannot modify header information - headers already sent by (output started at /home/users/xxxxx/wp-includes/taxonomy.php:2879) in /home/users/xxxxx/wp-includes/pluggable.php on line 866
エラーが出ない環境もあると思いますが、その場合、投稿ボタンを押すと投稿中というままになるようです。この場合も、ちゃんと投稿されています。

下記の対策を行うと、その問題も解消はされます。


インストールの仕方

WordPress3.3をいきなりインストールすることはできないようです。実際やってみると、「利用できないデータベーステーブルがあります。データベースの復元が必要かもしれません。」というエラーになってここからいろいろやってみてもうまく行きません。

そこで、wordpress-2.9.2-jaとpdo-for-wordpress(2.7.0)をいったんインストールしてここから、3.3.1に自動アップグレードを行うとうまくいきます。

1.wordpress-2.9.2-jaとpdo-for-wordpress(2.7.0)のインストール
WordPressをSQLiteで動作させる方法(pdo-for-wordpress,xrea)」を参考にしてください。

2.wordpress-3.3.1-jaに自動アップグレード
ダッシュボードから以下のようにしてアップグレードすればOKです。

動作したプラグイン

・WPtouch バージョン 1.9.39
・Ktai Style バージョン 2.0.5
・Flickr Manager バージョン 2.3
・WP Lightbox 2 バージョン 2.0
・WP Google Analytics
・Google Analytics Popular Posts バージョン 1.1.8
・Delete-Revision バージョン 1.3.1
・Revision Control バージョン 2.1
・Feed JSON バージョン 1.0.2
・FeedBurner FeedSmith Extend バージョン 1.0.0
・Ultimate Noindex Nofollow Tool バージョン 1.1.2
・brBrbr バージョン 2.0
・PS Disable Auto Formatting バージョン 1.0.8
・SEO Slugs バージョン 1.0
・Google XML Sitemaps バージョン 3.2.6 -ソース修正要
・cbnet Ping Optimizer バージョン 2.3.3 -事前にテーブル作成要
・Disable wptexturize  バージョン 1.0 
・Quick Adsense バージョン 1.9 
・WP-PageNavi バージョン 2.8.2 
・Wp Pagenavi Style バージョン 1.3
・No Self Pings バージョン 0.2
・WP Social Bookmarking Light バージョン 1.7.2
・PS Auto Sitemap バージョン 1.1.6
・WP Widget Cache バージョン 0.25.5
・WP No Category Base - WPML compatible 1.1.0
・WP Super Cache バージョン 1.3.2
・WP PHP widget バージョン 1.0.2
・Quick Cache バージョン 111203

以下動作しなかったプラグイン
・Wordpress Popular Posts
・WP-PostViews
・Broken Link Checker
・Better Delete Revision
・Ridirection
・DB Cache Reloaded Fix
※順次追加

意外と動作するプラグインは多いかもしれない


補足

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

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


不具合の解消方法(対策方法)

・カテゴリーWidgetが「カテゴリーなし」
・投稿で更新を押下するとエラーになる、または応答が戻ってこない

/wp-content/pdo/db.php
// function escape($string) {
//  return addslashes($string);
// }
// 修正 2012/03/28
 function escape($string) {
         return parent::escape($string);
 }
//から始まるものはコメントという意味です。前のコードをコメント化して修正したコードを上記のように追加してください。
/wp-content/pdo/PDOEngine.php
private function prepareQuery(){
        $this->queries[] = "Prepare:t". $this->preparedQuery;
        do {
            $this->statement = $this->pdo->prepare($this->preparedQuery);
            if ($this->statement === false){
                $reasons = $this->pdo->errorinfo();
                $reason = $reasons[1];
//              $this->pdo->exec('vacuum');
            } else {
                $reason = 0;
            }
        } while ($reason == 17);
$this->pdo->exec('vacuum');をコメント化する。
こちらの修正はおすすめしないけど、これで投稿時に更新から応答が戻ってこないのは回避はできる。

プラグイン導入後、管理画面に入れなくなった場合

W3 Total Cache導入で、画面が真っ白か、500 Internal Server Errorになった場合

[WordPress]W3 Total Cache で 500 Internal Server Error - Cherry Pie Weblog

1. .htaccessファイルをもとの状態に戻すか、「W3 Total Cache」が書き換えた部分を削除
2. FTPなどで、wp-content/plugins以下にある「W3 Total Cacheプラグイン」のフォルダを削除

こうすれば、復旧できます。

「該当プラグインをFTPなどを使って削除する」で、たいていは管理画面に入れるようになります。
キャッシュ系のプラグインはそれでは無理なことが多く、上記のような感じで対応すればOKです。

【ブログ内で関連ある記事】

スポンサーリンク

関連記事

no image

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

追記:2012/01/26 wordpress-2.9.2-jaとpdo-for-wordpres

記事を読む

no image

Google XML Sitemapsで「インデックスに登録済み」が0件になる不具合?について

心配している人ヘ インデックスが削除されたわけではない  Googleの検索で、site:blo

記事を読む

no image

WordPressでの画像貼り付けを効率化する方法 【Flickr利用,Lightbox 2】

Flickrと Lightbox 2の組み合わせ・無料で画像を外部における ・Flickr画像のO

記事を読む

no image

AdSense クローラのエラーの対処方法 、記事のプレビュー対応 preview=true 【WordPress】

アドセンスの管理画面に「スコアカード」が表示されるようになり、「クローラ エラー」を指摘された場合の

記事を読む

no image

コロリポプランでWordPressを使う方法 【ロリポップ、月額105円】

コロリポプランロリポップには月額105円で借りられる「コロリポプラン」というのがあるのですが、MYS

記事を読む

3 thoughts on “WordPress3.6をSQLiteで使う 【pdo-for-wordpress,動作したプラグイン】

  1. 喜田真太朗

    こんにちは、初めまして。

    WPの3.5.1で、
    PS Auto Sitemap バージョン 1.1.6
    が正常に動作しなくなったようです。

    一度、ご確認頂けますでしょうか。

    宜しくお願いします。

  2. 管理人

    WP3.5.1 Sqliteで
    PS Auto Sitemap 1.1.6

    で特に問題なく動作してるように私の環境では見えます。

  3. Pingback: Google XML Sitemapsがうまく動かない | web記録