SQLiteを使ってWordPressサイトを作る【ロリポップ/エコノミー】

2018-12-13
サーバー

ロリポップのエコノミープランには、WordPressを稼働させるためのデータベースがありません。WordPressを使ってWebサイトやブログを立ち上げたいならライトプラン以上が必要です。

ただ、データベースの代わりになるものを用意すれば、WordPressを動かすことはできます。それが「SQLite」です。ただ、SQLiteを使ってWordpressを運営するのは専門知識がいるため、初心者には難しいです。

WordPressが推奨しているデータベースは「MySQL」。「SQLite」は推奨されていない上、情報がとにかく少ないというデメリットも。

しかも後々別のサーバーに移行することになった日には、簡単移行サービスやプラグインも使えないので、詳しくないとかなり苦労します。そんなことに労力を使うなら、いっそライトプランに移行するか、別のサーバーで始めた方が絶対におすすめですが、SQLiteを使ってWordPressサイトを立ち上げたいならこちらで紹介する方法でどうぞ。

※今は「ConoHaWing」というレンタルサーバーを使っています。

ConoHa Wing(コノハウィング)はWordPressのサーバーにおすすめ【自動バックアップ&高速&簡単移行】 – freespace

WebサイトとWordPressブログを、ロリポップからConoHaWing(コ…
officehojo.com

MySQLの代わりにSQLiteでWordPressのデータベースを構築する

WordPressの構築にはデータベース(保管庫のようなシステム)が必須になります。そして、Wordpressが推奨しているデータベースの種類は「MySQL」です。

ところが、ロリポップのエコノミープランにはこの「MySQL」が入っておらず、自分で作るか別のデータベースを用意する必要があります。

そこで私が選んだのは「SQLite」というデータベースを使う方法。冒頭でも言った通り、この方法はデータベースに詳しくない人にはお勧めできません。その理由は、Wordpressを引越しするときに便利なバックアッププラグインが使えないからです。バックアップは手動で取ることはできますが、記事や画像がそのまま移行できるとは限りません。また、非推奨のデータベースでは、アップデートが進んだときの互換性にも不安が残ります。

SQLiteからMySQLへ引越したときの様子はこちらの記事でも書いていますが、相当な労力が必要でした。

データベースをSQLiteからMySQLへ移行 – freespace

ロリポップのプランをエコノミーからライトにグレードアップしたので、データベースを…
officehojo.com

「MySQL」と「SQLite」を比較してみた

以下、参考サイトから引用させていただきます。

MySQL」について

現在、世界中で最もよく利用されているオープンソースのデータベースのひとつです。高速で使いやすいことが特徴です。

  • MySQLは非商用利用なら無償で入手して使える。
  • 商用利用の場合、ライセンスの購入が必要(デュアルライセンス)
  • マルチユーザ対応であるため、複数の人が同時に利用するWebアプリケーションのようなシステムに使うデータベースとして適している。
  • レンタルサーバーのデータベースとして使われていることが多く、数千万から数億件のレコードを取り扱っている事例も存在する
  • YahooやGoogleなどのサイトでも使用されている
  • シンプルで速く、PHPなどとの相性が良い分、弱点としてやや機能的な面で不十分さがあるとの指摘も
  • 文字列の連結に+演算子や||演算子を使うことができない。文字列の連結にはCONCAT()を使う
  • FULL JOIN句を利用できない
  • UNION以外の集合演算(EXCEPT, INTERSECT)に対応していない
  • 結果表が凸凹になるような集計関数の利用は許される。不足する列は自動的に補われるが、その際の値は不定。
  • 副問い合わせではLIMIT句を利用できない。
  • DDLやDCLが実行されると、バックグラウンドでコミットが行われるため、ロールバックでキャンセルできない
  • LOCK TABLE文の代わりにLOCK TABLES文を使う
  • テーブル定義時にAUTO_INCREMENT指定を列に加える事で連番を振ることができる

SQLiteについて

SQLiteはアプリケーションの一部に組み込まれて動作するタイプのオープンソースのRDBMS。大規模利用には向かず、多くのDBMSがサポートする機能や関数のうちから、SQLiteがサポートしていないものある。一方で、その手軽さと高速な動作から中小規模の開発で活用されている。とのこと。

  • 著作権を放棄しパブリックドメインに帰属
  • サーバではなくライブラリ
  • データ型を指定する必要がない
  • 列を定義する際、データ型を特に指定しなくても良い
  • 集計関数を用いた検索の結果が凸凹になっても良い
  • ALL演算子やANY演算子が使用できない
  • RIGHT JOIN句とFULL JOIN句が利用できない
  • DDL文はトランザクション処理の一部として管理されるため、コミット前であればロールバックによりキャンセルできる
  • 分離レベルの指定にSET TRANSACTION ISOLATOIN LEVELを使えず、4つの基本的な分離レベルも使えない。
  • ロックのコントロールは、BEGIN文の後ろにDEFERRED, IMEDEATE, EXCLUSIVEと指定することで行う
  • TRUNCATE TABLE文はサポートされない
  • ユーザーやアクセス権限の概念がなく、GRANT文やREVOKE文も使用できない

結論:データベースはSQLiteでも問題はない

小規模サイトに限り、SQLiteを使っても問題ないことがわかりましたが、Wordpressのバックアップや引越しなどのプラグインは非対応の場合が多いので、不安な方はやめておきましょう。(サポートもないし)

SQLiteを使ったWordPressの導入方法

様々なサイトを参考にし、以下の方法でこのブログを設置しました。(現在はロリポップライトプランに変更し、MySQLへの引越しが完了しています)

WordPressをダウンロード

wordpress.orgからWordPressをダウンロードする。(wordpress.comと間違えないように注意)

WordPressフォルダ内のデータを変更

「wordpress」>「wp-config-sample.php」の名前にある“sample”を取り、「wp-config.php」に変更。「wp-config.php」をテキストエディタで開く。

開いたらコード内にある「認証用ユニークキー」部分(define~で始まる8行のコード)を探す。ここに認証用ユニークキーをコピペで貼り付け上書き保存する。認証用ユニークキーは、WordPressサイトにある「秘密鍵サービス」から取得できる(丸ごとコピー)。

SQLite Integrationをダウンロードする

SQLite Integrationをダウンロード。これがMySQLの代わりになります。

SQLite IntegrationをWorPress内に入れる

「wordpress」>「wp-content」>「plugins」フォルダの中に「sqlite-integration」フォルダをそのまま入れます。さらに「sqlite-integration」フォルダの中にある「db.php」ファイルを「wp-content」フォルダの中へ移動。

サーバーにアップ

出来上がった「wordpress」フォルダをサーバーにアップする。(FTPサーバー内の任意の場所へ。フォルダ名はリネームしてもOK)

WordPressをSQLiteで動かす場合の注意点

今のところWordPressは「MySQL」データベースを推奨しており、「SQLite」は不具合が起こった場合の対処法があまり載っていません。また、WordPressのテーマによっては正常に機能しない場合もあります。

プラグインによる自動バックアップも取れないので、こまめに手動でバックアップを取っておく必要があり、規模が大きくなればなるほど管理が面倒になってくるのはデメリット。

SQLiteからMySQLへ移行した今、便利さと安定感で比較すると断然「MySQL」の方がいいです。MySQLは重いと噂されていますが、AMPを使ってモバイル速度を上げれば特に気になることもありません。

AMPについてはこちらで解説↓

WordpressにAMPを導入した結果(AMPプラグイン設定とエラー対処について) – freespace

Google Adsensによる「AMP収益最適化のためのオンライン放送」を受講…
officehojo.com

訪問数が徐々に増え、月に10万PVを超えるようになればサーバーのグレードアップも検討した方が良さそうです。転送量で考えると、1日6万PVまでならロリポップのライトプランでもサーバーダウンは起きないようですが、サイトをずっと育てていくなら「エックスサーバー」か「ConoHaWing」がおすすめですね。