RedHat Enterprise Linux 5 or CentOS 5 sqlite extension install
Super User - root
shell> mkdir temp
shell> cd temp
shell> wget http://pecl.php.net/get/SQLite-1.0.3.tgz
shell> tar zxvf SQLite-1.0.3.tgz
shell> cd SQLite-1.0.3
sqlite.c patch
--- sqlite.c.orig 2004-07-18 19:23:18.000000000 +0900
+++ sqlite.c 2009-04-08 01:39:40.000000000 +0900
@@ -53,7 +53,9 @@
extern int sqlite_encode_binary(const unsigned char *in, int n, unsigned char *out);
extern int sqlite_decode_binary(const unsigned char *in, unsigned char *out);
+/*
static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
+*/
static int le_sqlite_db, le_sqlite_result, le_sqlite_pdb;
@@ -122,8 +124,8 @@
enum { PHPSQLITE_ASSOC = 1, PHPSQLITE_NUM = 2, PHPSQLITE_BOTH = PHPSQLITE_ASSOC|PHPSQLITE_NUM };
function_entry sqlite_functions[] = {
- PHP_FE(sqlite_open, arg3_force_ref)
- PHP_FE(sqlite_popen, arg3_force_ref)
+ PHP_FE(sqlite_open, third_arg_force_ref)
+ PHP_FE(sqlite_popen, third_arg_force_ref)
PHP_FE(sqlite_close, NULL)
PHP_FE(sqlite_query, NULL)
PHP_FE(sqlite_exec, NULL)
shell> phpize
shell> ./configure
shell> make && make install
shell> ls -l /usr/lib/php/modules/sqlite.so
-rwxr-xr-x 1 root root 871225 Apr 7 18:07 /usr/lib/php/modules/sqlite.so
shell> cd /etc/php.d
shell> vi sqlite.ini
; Enable sqlite extension module
extension=sqlite.so
:wq
Web Server Restart
phpinfo.php
<?php
phpinfo();
?>
sqlite
SQLite support enabled
PECL Module version 1.0.3 $Id: sqlite.c,v 1.62.2.25 2004/07/10 12:25:33 wez Exp $
SQLite Library 2.8.14
SQLite Encoding iso8859
Directive Local Value Master Value
sqlite.assoc_case 0 0
インストール手順
PHP 5 以降、この拡張モジュールはデフォルトで有効となりました。 無効にしない限り、そのままで使用可能です。
PECL 版の拡張モジュールは使ってはいけません。 これは保守されていないからです。 たとえ共有モジュールとしてコンパイルされていたとしても、 PHP のソースに付属する SQLite 拡張モジュールを使いましょう。 ソースは php-src-dir/ext/sqlite にあり、phpize 方式でビルドすることができます。
Windows ユーザがこれらの関数を使用するには、php_sqlite.dll を php.ini で有効にしなければなりません。 この PECL 拡張モジュールの DLL は、現在存在しません。 Windows でのビルド も参照ください
Windows 版では PDO も有効にする必要があります。PHP 5.1.0 以降、 PDO に依存するようになったからです。つまり、最終的に php.ini ファイルはこのようになります。
extension=php_pdo.dll extension=php_sqlite.dll
Linux あるいは Unix オペレーティングシステムでは、 もし PDO を共有モジュールとしてビルドしたのなら SQLite も共有モジュールとしてビルドする必要があります。 そのためには、設定オプション --with-sqlite=shared を指定します。
Windows 版の PHP 5.0.x ではこの拡張モジュールがデフォルトで有効となっており、 DLL ファイルは不要です。
SQLite 3 は、PDO SQLite でサポートされます。
注意: 権限を持たないアカウントに対する Windows 版のインストール
Windows オペレーティングシステムでは、権限のないアカウントは デフォルトで設定される TMP 環境変数を利用できません。 これにより SQLite は Windows ディレクトリにテンポラリファイルを作成しますが、 望まれるものではありません。 そのため Web サーバもしくは Web サーバが動作しているユーザーアカウントに対して TMP 環境変数を設定すべきです。 もし、Apache を使用しているなら、httpd.conf ファイル内で SetEnv ディレクティブを使用することで実現可能です。 例えば、次のような感じです。SetEnv TMP c:/tempもしサーバレベルでこの設定を行うことができないのであれば、 スクリプト内で設定することができます。
putenv('TMP=C:/temp');この設定は Web サーバがファイルを生成した後で書き込んだり削除したりする 権限を持たせるディレクトリを指定する必要があります。 そうでない場合、次のようなエラーメッセージを受け取るでしょう。 malformed database schema - unable to open a temporary database file for storing temporary tables
インストール手順
08-Apr-2009 01:55
