ひな[116日目]

2012年02月17日

鍵山雛

鍵山雛

■くるくるー
 今週はイラスト更新以外特に何もしてないねぇ。
 
■WordPress+sqliteの続き
 WordPress3が失敗するのは一番最初にテーブル作成に失敗するせいだが、2で作成してからあとで3にバージョンアップすればいいのでは?
 と思って試してみたら…。劇重。動かないことはないが、とにかく重い。つか動いたり動かなかったり。
いや、これは動かないと思った方がいいね。ということでやっぱり3はダメ、ということで。
 
■今日のon定点観測
 23時50分現在、残り24個。お、一気に減ったねぇ。

WordPress+sqlite

■sqliteを使いたい
 ということで標準のデータベースがMySQLのWordPressにsqliteを実装してみました。探してみるといろんなサイトがありますね。
 
必要なもの
WordPress2.9.2
PDO for WordPress
この2つ。

作業は3つ。
1.まず両方解凍してPDO for WordPressにある
pdoフォルダ、db.php、readme.txt(どっちでもいい)のフォルダとファイルををwp-content直下に入れる。
 
2.wp-contentフォルダにdatabaseフォルダを作成。パーミッションを707(777)にしておく。

folder

folder


3.wp-config-sample.phpをコピペしてwp-config.phpを作成。そこの
 
/** データベースの照合順序 (ほとんどの場合変更する必要はありません。) */
define(‘DB_COLLATE’, ”);
 
の箇所の次の行に
define(‘DB_TYPE’, ‘sqlite’);//mysql or sqlite
を追加。せっかくなので認証用ユニークキーを変更しておきましょう。
modify

modify


以上。簡単でした。
これ、WordPress3が出てるのになぜ旧バージョンの2を使っているかというと、3で試したらデータベースにテーブルが作成できずにエラーが出たから。3になって構成が変わったんでしょうねぇ。2で動くのでとりあえず終了ということで。
 
sqliteの編集ツールはやっぱりtksqlite。WordPressのデータベースを直接いじることはほとんどないけどね。

CakePHP+SQLite3

2011年07月17日

■SQLite3
 現バージョン(1.3.10)のCakePHPではSQLite3に対応してないみたいですねぇ。SQLite2で作成したデータベースは認識するけど、3は認識しない。次期バージョンの2.0(現状はアルファ版)では対応してる感じだけど。
 
 できれば新しいほうの3を使いたい!
てなワケで使えるようにしましょう!やり方はいたって簡単。
まずは以下からCakePHP Datasourcesをダウンロード。現在のバージョンは0.2。
github:https://github.com/cakephp/datasources
 
解凍してmodels/datasources/以下のファイルをapp/models/datasourcesにコピー。
最後にdatabase.phpでデータベースの設定を
‘driver’=>’sqlite3′
としてやれば、SQLite3を使い倒すことができます!幸せ!
 
 これでデータベースに書き込みが出来ない場合は、データベースのパーミッションが書込み禁止になっている可能性アリ。606になっているか確認!自分が読み込めるのに挿入や更新できねーなぁ、と思っていたらコレでした(汗

Cakephp+SQLite

2011年07月14日

■半日がかり
 かーかーりましたねェー、SQLite。動かすまでに一苦労。
MySQLと違って、データベースのサーバを用意する必要が無くデータベースを格納するファイル1つだけ。サーバの引越しとかでも設定いらずですぐ動いてくれる軽快さ。
AndroidにもSQLiteが入ってるそう。
 
 ということでちょっと使ってみようと思ったワケです。が。簡単なDB作ってCakePHPで試しに入れてみたが、これがさっぱり認識してくれない。

データベースエラー

データベースエラー


 
いくらごにょごにょイジってもなんともならんから、sqlite_open(‘test.db’)とだけ打ち込んだファイルを作って開いてみると反応なし。エラーログを見ると
 
[Thu Jul 14 14:14:39 2011] [error] [client XXX.XXX.XXX.XXX] PHP Fatal error: Call to undefined function sqlite_open() in /var/www/test.php on line 3
 
sqlite_open関数が未定義になってやんの。
つまりこれ、サーバにSQLiteが入ってないということ?
phpinfo

phpinfo


 
 Fedora13では、パッケージでphpをインストールするとsqliteはwitohout、入ってないの。
自前で入れろってことですか。ですね。
 
1.以下からサーバに入ってるバージョンのPHPをダウンロード。
php本家:http://www.php.net/downloads.php
 
2.サーバに放り込んで解凍して、/ext/sqlite のディレクトリに入る。
tar zxvf php-5.3.6.tar.gz
cd php-5.3.6/ext/sqlite
 
3.なんかごちゃごちゃする。何しているか実のところよく分かっていない。
phpize
./configure
make
make install
この4工程を入力すればインストール完了。

/extに入ってるPHPの拡張モジュールは、とりあえず馬鹿の一つ覚えのようにこの4つのコマンドを打ち込めばインストールできる、みたい。
 
4./etc/php.dフォルダにsqlite.iniファイルを新規作成してextension=sqlite.soを記述。
 
5.最後にapache再起動。
/etc/rc.d/init.d/httpd restart
 

データベースOK

データベースOK

SQLite確認

SQLite確認


めでたく入りましたぁ!
 
 この方法の欠点は、PHPのバージョンが上がってしまうと、その都度同じ作業をしないといけなくなるらしい。
5.3.6よりバージョンがあがったら、また検証してみましょう。
 
今回、こちらのサイトを参考にさせていただきました。
肉とご飯と甘いもの:http://d.hatena.ne.jp/sotarok/20080607/php_5_with_sqlite