近い将来、サーバーを引っ越す可能性があるので、WordPressをSQLiteで構築してみました。
2.9.2までのWordPressと、PDO (SQLite) For WordPressの組み合わせでインストールする際の記事は、ググると結構見つかるのですが、PDO (SQLite) For WordPressの更新が止まっているせいか、WordPressが3.0以降の場合のものは少ないようでしたので、以下でまとめてみます。
ただ、WordPressはSQLiteを正式サポートしているわけではないこと、PDO (SQLite) For WordPressのトランザクション処理がシンプルすぎる(ブラウザ2つ使ったりして同じユーザーで同時にダッシュボードにログインしたりすると、データベースに半永久的にロックが掛かって、再インストールの憂き目にあいます)こと、など、SQLiteを使用するデメリットも充分理解の上、使ってみてください。
- WordPress 3.1.2を、http://ja.wordpress.org/releases/#olderよりダウンロード→解凍します。なぜ3.1.2かというと、要求されるPHPのバージョンが4.3以上である、最も若いWordPressのバージョンだからです。これはもしかしたら私の環境のせいかもしれませんが、実は当初最新の3.3.1(PHP 5.2.4以上が要件)で組もうとして、みごと弾かれました。
- PDO (SQLite) For WordPress 2.7.0を、http://wordpress.org/extend/plugins/pdo-for-wordpress/よりダウンロード→解凍。
- ここからしばらくは、PDO (SQLite) For WordPressのreadme通りです。まず、PDO (SQLite) For WordPressの解凍したフォルダ「pdo-for-wordpress」内にある「pdo」フォルダと、「db.php」ファイルを、WordPressの解凍したフォルダ「wordpress」内、「wp-content」の中にぶち込みます。
- 「wordpresswp-config-sample.php」を、その場に(同一フォルダ内に)コピーし、「wp-config.php」とリネームします。
- この「wp-config.php」を、エディタ(http://wpdocs.sourceforge.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#Text_editorにあるように、BOMなしのUTF-8で保存できるヤツ。なので、Windows付属のメモ帳などは不可)で開き、39行目
define('DB_COLLATE', '');
の下に、
define('DB_TYPE', 'sqlite');
と、一行挿入します。
- 50~57行目、
define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here');
とあるのを、https://api.wordpress.org/secret-key/1.1/salt/にアクセスして出てきたコードに置き換えます。認証用ユニークキーの設定というヤツですな。
- PDO (SQLite) For WordPressのreadmeにあるのはここまでですが、ここからいくつか追加でモディファイします。BOMなしのUTF-8で保存、を忘れずに。まず、「wordpresswp-contentdb.php」115行目、
$files = array ( ABSPATH.'/wp-admin/includes/upgrade.php',
を、
$files = array ( ABSPATH.'wp-admin/includes/upgrade.php',
に、116行目、
ABSPATH.'/wp-admin/includes/schema.php');
を
ABSPATH.'wp-admin/includes/schema.php');
に変更し、セーブします。
- 「wordpresswp-contentpdodb.php」(上の「wordpresswp-contentdb.php」とディレクトリが違います)117行目、
return addslashes($string);
を、
//return addslashes($string);
とコメントアウトし、直下に、
return parent::escape($string);
の一行を追加、セーブします。(http://memo-log.9999ch.com/2010/01/30/243参照)
- 「wordpresswp-contentpdowp_install.php」54行目、
$message = __('<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you.');
を、
$message = __('<strong><em>Note that password:</em><em style="margin: 0 1em; font-size: 2em; font-style: normal">' . $random_password . '</em></strong> carefully! It is a <em>random</em> password that was generated just for you.');
に置き換え、セーブします。(http://wordpress.org/support/topic/plugin-pdo-sqlite-for-wordpress-does-not-give-the-password-on-install-in-301参照)
- 「wordpresswp-content」内に、「database」という名のフォルダを作ります。
- うー、やっと下準備終了。「wordpress」フォルダを、丸ごとサーバーにアップします。FTPなんかだと割りと時間かかるでしょうから、ここらで一息。
- アップロードが済んだら、今度は、アップしたファイル・フォルダのパーミッションを設定します。まずフォルダから。「wordpress」そのものと、10.で作ったのをアップしたヤツ、すなわち「wordpress/wp-content/database」のパーミッションを、777にします。
- 次はファイルです。「wordpress/wp-admin/includes」フォルダ内にある、「schema.php」と「upgrade.php」の2つのパーミッションを、666にします。
- さて、いよいよWordPressのインストール。ブラウザで、「wordpress/wp-admin/install.php」にアクセスし、通常にインストールを行います。1ページ目で必要事項を入力して、2ページ目に飛んで、そのずーっと下に、ユーザー名とパスワードがありますが、パスワードは1ページ目で設定したものとは違うかと思います。てか、1ページ目で設定したものは無効のようです。ログイン後に設定しなおすと良いでしょう。てなわけで、3ページ目でログイン画面なので、そこでもって、2ページ目のパスワードを使用してください。
- ログインしようとして、「Fatal error: Maximum execution time of 5 seconds exceeded」とか何とか言われて弾かれるかもしれません(この通りじゃなくとも、何かしらタイムアウトした旨の反応があると思います)。その時は、ブラウザでページをリロードしてみてください。これで目出度くWordPressのダッシュボードを拝めるはずです。
- ダッシュボード上部の、「WordPress 3.3.1 が利用可能です !」(バージョンは一例です)の次、「更新してください」をクリック、次ページの該当するバージョンの「自動で更新」をクリックします。
- 更新されてゆく様子をしばらく眺めていると、またまた「Fatal error: Maximum execution time of 5 seconds exceeded」とか怒られるでしょうから、その隙に、更新作業でパーミッションが元に戻ってしまったらしい13.)のファイル、「wordpress/wp-admin/includes」の「schema.php」と「upgrade.php」に、再び悪魔の刻印を押します。つまり、パーミッションを666にします。
- 画面左上の、「ダッシュボード」とあるところをクリックすると、ちゃんと目的のバージョンになってるはずです。
- 最後に、「wordpress」フォルダのパーミッションを755に戻しておきます。用が済んだらフタを閉める、というワケでして。
以上、19項目もありますが、ご勘弁ください。実際のところ、私の環境が原因のものもあると思いますが、お役に立てれば幸いです。
Pingback: WordPressをSQLiteで構築 : ちゅどん道中記