CentOS6.6 環境の PHP 5.3.x に SQlite1.0.3 を入れたいときのメモ

# 経緯
ちょっとしたphpのプログラムを作ることを任されましたｗ。会員管理とかほんとにもうbasic認証ぐらいな感じの簡単なやつを。まあそんだったら php + SQlite 組み入れてと思ってたら本番先はレンタルサーバー…。まあそんな感じで凹んでいましたが、運よく SQLiteが入っているのでラッキーと思っていたら SQlite1.0.3 。
ちょっとーそんな古い環境、、ローカルに環境作れるの？と、また「はまった」のでそのメモ。

ちなみに散々探して（前にメモしていたのを無くした）下記のサイトとおりに行ったらいまくいったのです（笑）。

> [PHP5.3にSQlite1.0.3を入れる](http://www.auraline.co.jp/tlab2/?p=20)

# 手順
php とかも入れますぜｗ

```
# yum install httpd-devel php php-mbstring php-pear php-devel php-pdo wget
# wget http://museum.php.net/php5/php-5.3.4.tar.gz
# tar xvfz php-5.3.4.tar.gz
# cd php-5.3.4/ext/sqlite
# phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
config.m4:50: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2743: PHP_CHECK_PDO_INCLUDES is expanded from...
config.m4:50: the top level
config.m4:50: warning: AC_CACHE_VAL(pdo_inc_path, ...): suspicious cache-id, must contain _cv_ to be cached
../../lib/autoconf/general.m4:1974: AC_CACHE_VAL is expanded from...
../../lib/autoconf/general.m4:1994: AC_CACHE_CHECK is expanded from...
aclocal.m4:2743: PHP_CHECK_PDO_INCLUDES is expanded from...
config.m4:50: the top level
# ./configure
# make clean;make
# make install
# sudo echo 'extension=sqlite.so' > /etc/php.d/sqlite.ini
# sudo echo '<?php phpinfo();' > /var/www/html/phpinfo.php
```

Apache を再起動して、SQLite が実行可能かを確認する。

![sqlite3_php.png](https://qiita-image-store.s3.amazonaws.com/0/44540/390847dc-15d1-0a7a-66a1-aee4088a55f1.png)

よしよし。

> [SQLite 関数　直接操作](http://blue-red.ddo.jp/~ao/wiki/wiki.cgi?page=PHP+%26+SQLite)

さんのサイトの、コードそのままですが（多少変更）。
適当なディレクトリに設置して。実行します。

```php
<?php    
$sqliteerror = null;
 
/* SQLiteハンドルの取得 */
$dbh = sqlite_open('test.db', '0666', $sqliteerror) 
   or die ("file not create.");
 
/* テーブルの作成 */
/* idをプライマリ宣言し自動シーケンス */
$query = <<<QUERY
DROP TABLE account_tbl;
);
QUERY;
$result = sqlite_query($query, $dbh);

$query = <<<QUERY
CREATE TABLE account_tbl (
    id INTEGER,
    number INTEGER,
    name VARCHAR(64) NOT NULL,
    email VARCHAR(128),
    PRIMARY KEY (id)
);
QUERY;
$result = sqlite_query($query, $dbh)
   or die ("table not create.");
 
/* ステートメントの生成 */
$query = "INSERT INTO account_tbl (number,name,email) VALUES ".
                "('30248','takahasi','takahasi@hoge.com') ";
$result = sqlite_query($query, $dbh);
 
$query = "INSERT INTO account_tbl (number,name,email) VALUES ".
                "('45567','ito','ito@hoge.com') ";
$result = sqlite_query($query, $dbh);
 
 
/* データの取得 */
$result = sqlite_query('SELECT * FROM account_tbl', $dbh);
 
$cols = array();
while ($cols = sqlite_fetch_array($result, SQLITE_ASSOC)) { 
    echo "----------------------<br>";
    echo "id    = {$cols['id']}" . "<br>";
    echo "number= {$cols['number']}" . "<br>";
    echo "name  = {$cols['name']}" . "<br>";
    echo "email = {$cols['email']}" . "<br>";
    echo "----------------------<br>";
} 
 
/* ステートメントの開放 */
$result = null;
?>
```

結果として

```
----------------------
id = 1
number= 30248
name = takahasi
email = takahasi@hoge.com
----------------------
----------------------
id = 2
number= 45567
name = ito
email = ito@hoge.com
----------------------
```

と画面に表示されれば、ok