XServerのSQLiteを操作
[Home]

 SQLiteを操作

 最初に

SQLite は何かと言えば、言わずと知れた 無料のデータベースです。 ここでは XServer に SQLite で作成したデータベースを操作する方法を記載します。
XServer画像
SQLite は、単一構成のデータベースですから、通常はローカルで作成したデータベースをレンタルサーバーにアップロードするだけで済みます。 操作もサーバー内に PHP を使ってプログラムを作成すれば、容易にデータベースにアクセスして、必要な処理を行う事ができます。 それだけ、SQLite は操作が簡単で、しかも高速に動作するデータベースです。

ここでは、サーバー上にあるデータベースに外部からアクセスして、データベースの内容をちょっと変更したい場合などに必要なソフトをインストールしてみます。
SQLiteManager と言う、SQLite版の phpMyAdmin のようなツールになります。
ひょっとしたら、何かの役に立つ場合があるかも知れません。


(XServer の社内案内に掲載されていた画像を一部加工して作成)



 SQLiteManager のインストール

SQLiteManager のダウンロード先は http://sourceforge.net/projects/sqlitemanager になります。
最新の更新が2013年4月23日ですから、更新は止まっていると考えて良さそうです。
じゃぁ、それ程に完成度が高いソフトなのかと言うと、そうでもなくて、色々と手を入れる必要があります。
サーバーにアップロードする前に、変更しなければならない点を以下に記載します。

(1)エンコーディング設定
エンコーディング設定はデフォルトで euc-jp になっておりますので、これを現在主流の UTF-8 に変更します。
XServer でも PHP の基本設定は UTF-8 を使用しておりますので、変更しないと文字化けを起こす事になります。
下記ファイルの 10,11行目を修正します。
SQLiteManager/lang/japanese.inc.php

変更前)
line:10 $charset = 'euc-jp';
line:11 $langSuffix = 'ja-euc';

変更後)
line:10 $charset = 'utf-8';
line:11 $langSuffix = 'ja-utf-8';

この時、ファイル自体のエンコーディングもいっしょに変更しないと、文字化けします。

(2)SQLiteManager/include/sqlite.class.php

変更前)
line:55 function getDbVersion($fullPath){

変更後)
line:55 static function getDbVersion($fullPath){

この段階で、サーバーに適当なフォルダを作成してアップロードします。
アップロードは全てのファイルをアップロードしても、問題はないようです。

上記の変更を行えば、以下のような画面が出ると思います。 sqlite1画像

右側にある「Language」で日本語に切り替えます。背景の色も「Theme」で変える事ができます。
sqlite2画像
この後に操作方法を記載したいのですが、まだ使った事がありませんので、(取り敢えず)ここまでとします。


 セキュリティ対策

SQLite にはパスワードによる認証と言う概念がありません。 パスワード認証を行っている人も居るようですから、隠し機能としてはあるのかも知れませんが、存在しないと考えるべきでしょう。 そこで必要になるのは、外部からデータベースを見えなくする必要があります。 つまり、WEB から見える範囲にデータベースを置いてはいけません。

XServer の場合は、public_html/ 上は(基本的に)全て WEB からアクセスが出来ますので、SQLite で作成したデータベースはそのフォルダ上には置かないで、同列にファルダを作成して置くか、あるいは1階層上にフォルダを作成してそこに置くべきです。 試してみたら、どちらでもフォルダを作成して動作する事を確認できました。
これなら、個人情報でもセキュリティは守られそうな気がします。

次に、 SQLiteManager にもパスワードによるアクセスを規制する機能がありません。
これも多くサイトで、SQLiteManager のインストールフォルダには Basic 認証を行うか、アクセス制限を行う必要があると指摘しております。
どちらもやって見ましたが、 Basic 認証はちょっと大袈裟に感じましたので、私はアクセス制限を行っております。

XServer は 、.htaccess を自由に作成できますので、アクセス制限は容易です。例えば以下のような .htaccess ファイルを作成します。

<Files "*.php">
   order deny,allow
   deny from all
   allow from 210.168.89.44
</Files>

allow from 210.168.89.44 の部分を自宅のIPアドレスにすれば、php の拡張子のファイルには自分の家以外の人はアクセス禁止の表示が出てアクセス不能になります。
具体的には以下の表示になります。

cgi3画像
これでは、いかにもこのページに何か隠されていると感じられて、しつこく解析する人が居るかも知れないと不安を感じるなら、このフォルダに default_page.html を作成してください。 XServer では、 default_page.html が表示の最終順位になっておりますので、このフォルダをアクセスされた時はアクセス禁止の表示ではなく、default_page.html の内容が表示されます。

アクセス制限の記載方法については All About の記事を参考にさせていただきました。
そこでは、Basic 認証についても詳しく解説されておりますので、(私のような詳しくない方は)一読されてはいかがでしょうか。
サンプルのデータベースだからと、セキュリティ対策を行なわないと、自分が借りている領域を全て埋め尽くされてしまうような、恐ろしい事態になり兼ねません。
もし、そんな事になれば、(WEB管理について無知な人間として)レンタルサーバー会社から追放されるでしょう。

[Home]