downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

実行時設定> <要件
Last updated: Fri, 13 Nov 2009

view this page in

インストール手順

PHP 5 以降、この拡張モジュールはデフォルトで有効となりました。 無効にしない限り、そのままで使用可能です。

警告

PECL 版の拡張モジュールは使ってはいけません。 これは保守されていないからです。 たとえ共有モジュールとしてコンパイルされていたとしても、 PHP のソースに付属する SQLite 拡張モジュールを使いましょう。 ソースは php-src-dir/ext/sqlite にあり、phpize 方式でビルドすることができます。

Windows ユーザがこれらの関数を使用するには、php_sqlite.dllphp.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



add a note add a note User Contributed Notes
インストール手順
askroot at gmail dot com
08-Apr-2009 01:55
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

実行時設定> <要件
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites