さくらインターネットライトプランを使い倒す

ある程度、自由にHPを作ろうとするとフリースペースではきつくなってきます。
そこから、自宅サーバーを立てたりする人は珍しく、セキュリティの面でも不安なので、どこかの有料スペースを借りることになります。 でも実際は、「お金がないからなぁ…」となりますね。
で、有名なさくらインターネットでライトプランを借りてみたがいいが、phpとMysqlが使えないorzとなった人は多いのではないでしょうか?
だからと言って、スタンダードプランの5,000円は高いし3GBも使うことないしなぁ…という悲しい感じになります。
ところが、ライトプランでもphpを使用することができます、そしてsqlite2を使って「ほぼphpとMysqlで作るようなサイト」を構築することが可能になります。

実際に動いているもの

上記の設定(さくらインターネットライトプランにphp+sqlite2)で個人的趣味のナインティナインのANNのデータをLIKE検索するものを作ってみました。
こちらを見てみてください。

さくらインターネットのライトプランでphpを使えるようにする。

ググったらすぐ出来てたので、やってみました。
こちらのサイトを参考にすればすぐできます。
しかし、ブラウザ上でターミナルの結果が出てくる所が凄く面白かったわけだが、乗っ取られたりすると怖いので、telnet.cgiをUPする前にhtaccessで縛っておくとよいかも。
尚、ライトプランにphpを入れてPukiwikiを入れた場合、認証が効かないのでhtaccessで設定する。

Mysqlの代わりにsqliteを使う

ここで、気をつけてほしいのは、sqliteのバージョン2を使うことです。
通常phpでsqlite3を使おうとすると、PDOドライバを使うのがセオリーだと思いますがこれはphp.iniで設定する必要があり、phpをcgiとして使う場合面倒です。
また、ある程度のデータであれば、sqlite2でも十分にRDBMSとして実用できます。
因みにphpからの呼び出しは下記のような感じで使うとよいと思います。(Mysqlとほとんど変わりません)

function get_db(){
	$all = Array();
	$db = sqlite_open('hoge.db', 0666, $sqliteerror);//バイナリを指定します
	if (!$db) {
		die('接続失敗です。'.$sqliteerror);
	}else{
		$i   = 0;
		$sql = sqlite_query($db,"SELECT * FROM table");//クエリをかけます
		while ($row = sqlite_fetch_array($sql,SQLITE_ASSOC)){
			$all[$i]['col1']  = htmlspecialchars($row['col1']);
			$all[$i]['col2']  = htmlspecialchars($row['col2']);
			$i++;
		}
		sqlite_close($db);
	}
	var_dump($all);
}