WordPress を動かすには通常、PHP と MySQL が必要になります。 さくらのレンタルサーバーで条件を満たすのはスタンダードプラン(年間5,000円)から。
最も安いライトプラン(年額1,500円)では MySQL が使えないのですが、ネット上の有識者様が MySQL の代わりに SQLite を使用して WordPress を動かすという事をやっていたので当サイトでも実験してみました。
(この作業はさくらインターネットのサポート対象外になりますので自己責任で!)
ここでは 3.5.1 をセットアップする事を目標にします。
■はじめに (さくらインターネットの設定確認)
前提条件として、3.2 系以降は PHP 5.2.4 以上を求められるので 「サーバーコントロールパネル」→「PHPのバージョン選択」でバージョンを確認してください。
当方の環境では 5.2.17 になっていたのでそのままスルー。
■ダウンロード
WordPress 3.5.1 を直接セットアップするとデータベースエラー(修復してくださいとか出るが修復できない)になるので、まずは 2.9.2 をダウンロードします。
WordPress 2.9.2 のダウンロードは WordPress 公式サイト の過去のバージョンから取得します。
一緒に PDO (SQLite) For WordPress(2.7.0) もダウンロードします。
■セットアップ( WordPress 2.9.2)
- ダウンロードした2つのファイルを解凍します。 ( wordpress と pdo-for-wordpress というフォルダが出来ます。)
- pdo-for-wordpress の「pdo」フォルダと「db.php」ファイルを wordpress/wp-content にコピーします。
- wp-config-sample.php をコピーし、wp-config.php とします。( これが設定ファイルになります。 )
- wp-config.php の define(‘DB_COLLATE’, ”); の行の下に define(‘DB_TYPE’,’sqlite’); を追加します。
/** データベースの照合順序 (ほとんどの場合変更する必要はありません。) */ define('DB_COLLATE', ''); /** データベースのタイプ */ define('DB_TYPE','sqlite');
- index.php が動作するように wordpress をセットアップしたフォルダ、または、それより上位のフォルダに .htaccess ファイルを作成します。最も単純なのであれば以下の一行で問題ないはずです。
DirectoryIndex index.html index.php
- 上記のファイルをサーバーにアップロードし、wordpress が入ったフォルダのアクセス権を 707 に設定します。(注意!後で戻します!)
- 以上で準備が完了ですので、ブラウザで http://ドメイン名/フォルダ名/wp-admin/install.php を指定すると「ようこそ画面」になります。
- ブログタイトル名、メールアドレスを入力して「WordPress をインストール」をクリックします。
- なんかいろいろ文字が出てきますが、スクロールしていくと下にユーザー名とパスワードが表示されるのでメモします。
- 「ログイン」ボタンを押したくなりますが、そこは我慢して、サーバー上の wordpress が入ったフォルダのアクセス権を 705 に戻します。
- 「ログイン」ボタンを押下します。ログイン画面が表示されるので、先ほどの画面に表示されていたユーザー名/パスワードを入力します。
- 以上で 2.9.2 のセットアップは完了ですが、プロフィール画面を開いてパスワードを任意のものに変更しておきましょう。
■アップデート ( WordPress 3.5.1 へ )
- ダッシュボードの上部に「WordPress 3.5.1 が利用可能です。」と出ているのでクリックします。
- 「自動アップデートを実行」をクリックします。
- しばらく待つとアップグレードに成功してログイン画面に戻るので、再度ログインすれば作業完了です。
・参考にさせていただいたサイトはこちら
- WordPressをSQLiteで動作させる方法(pdo-for-wordpress,xrea)|某氏の猫空
- WordPress3.5をSQLiteで使う 【pdo-for-wordpress,動作したプラグイン】|某氏の猫空
- WordPressをSQliteで動作させる < < パピコニアンの倉庫 – 整頓中(仮)
■不具合対応
最後に、WordPress + SQLite の環境で、カテゴリーがきちんと表示されていない件について対応を行います。どうやら、SQLite を使用するための PDO プラグインにバグがあるらしい。
wp-content/pdo/db.php ファイルの117行目をコメントアウトして、以下の行を追加します。
//return addslashes($string); return parent::escape($string);
この後、投稿を保存しなおすとカテゴリが正常に表示されるようです。
・参考にさせていただいたサイトはこちら
- WordPress3.5をSQLiteで使う 【pdo-for-wordpress,動作したプラグイン】|某氏の猫空
- WordPress PDO (SQLite) For WordPress でエラー | MEMO-LOG
また、上記サイトで「こちらの修正はおすすめしない」と載っているのだが、これはコメントアウトしておいた方がいいかも。
/wp-content/pdo/PDOEngine.php ファイル内
$this->pdo->exec(‘vacuum’); のコメントアウト
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; }
ここはデータベース関連でエラーが発生されるたびに通るロジックで、エラー時にデータベース最適化を実行するコマンドを投げるのだが、最適化はサーバーに負荷がかかり、タイムアウトの原因にもなるので無効化した。
[…] こちらのサイトを参考にさせていただきました。 さくらのレンタルサーバ ライトで WordPress 3.5.1 を動かす(SQLite) […]
[…] けで使っていた。 (WPのインストール時にお世話になった記事を読み返したら思い出した→http://nomu.skr.jp/2013/02/sakura-wordpress-sqlite/) とりあえず、ちょっと面接終わったら試そうと思う。 […]
[…] ? […]
[…] さくらのレンタルサーバ ライトで WordPress 3.5.1 を動かす(SQLite) […]
いろんなサイトを見ましたがうまくいかず、
こちらの情報でようやく成功しました。
ありがとうございました。
参考になって何よりです。
SQLiteだと正しく動作しないプラグインもあるみたいなので、注意してくださいね。
Comment feed