LINUX.ORG.RU

PHP 5.2.6 и SQLite3. Я окончательно запутался.


0

0

Здравствуйте!

Продолжаю мучать Ubuntu 9.04 Server. Нужно мне установить PHP5 с поддержкой SQLite3. Чтобы эта поддержка была и обычная, и через PDO.

Я устанавливаю пакеты:

php5
php5-common
php5-sqlite
libsqlite3-0
sqlite3

При этом в выводе phpinfo(), касаемо sqlite есть такая информация:

additional .ini files parsed
/etc/php5/cgi/conf.d/pdo.ini, 
/etc/php5/cgi/conf.d/pdo_sqlite.ini, 
/etc/php5/cgi/conf.d/sqlite.ini


Секция PDO

PDO support	enabled
PDO drivers 	sqlite, sqlite2


Секция pdo_sqlite

PDO Driver for SQLite 3.x	enabled
PECL Module version 	1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.3 2007/12/31 07:20:10 sebastian Exp $ 
SQLite Library 	3.6.10


Секция SQLite

SQLite support	enabled
PECL Module version 	2.0-dev $Id: sqlite.c,v 1.166.2.13.2.10 2007/12/31 07:20:11 sebastian Exp $ 
SQLite Library 	2.8.17 
SQLite Encoding 	UTF-8

То есть, поддержка SQLite3 через PDO вроде как есть. А вот обычной поддержки почему-то не наблюдаю. При наличии обычной поддержки (по крайней мере в PHP 5.2.1), должна быть видна такая секция:

Секция SQLITE3

SQLite3 support 	enabled 
sqlite3 library version 	3.3.13

А ее нет. И вот понять не могу, что нужно сделать, чтобы «обычная» поддержка SQLite3 появилась? Пакета, который бы назывался по типу «php5-sqlite3» нет.

ЗЫЖ

Библиотеки, которые использует php5, размещаются в каталоге /usr/lib/php5/20060613+lfs. В системе Ubuntu Fiesty (7.04) в этом каталоге есть файл sqlite3.so. Если дать команду поиска пакета по файлу sqlite3.so, в Ubuntu 7.04 я вижу:

# dpkg -S 'sqlite3.so'
...
php5-sqlite3: /usr/lib/php5/20060613+lfs/sqlite3.so



Если же попытаться выяснить, в каком пакете лежит файл sqlite3.so в Ubuntu 9.04 Server, получим

# dpkg -S 'sqlite3.so'
python2.6: /usr/lib/python2.6/lib-dynload/_sqlite3.so
libsqlite3-0: /usr/lib/libsqlite3.so.0
libsqlite3-0: /usr/lib/libsqlite3.so.0.8.6

то есть, PHP-шной библиотеки sqlite3.so в Ubuntu 9.04 Server почему-то нет.

Кстати, попробовал поискать sqlite3.so на http://packages.ubuntu.com/. Выяснилось, что этот файл присутствует только в Ubuntu Hardy (8.04), а в последующих выпусках убунты его просто нет.

Почему так? Что делать? Собирать поддержку SQLite3 руками?


>Почему так? Что делать? Собирать поддержку SQLite3 руками?

Обычно, когда приходит нужда собирать руками, рекомендуется посмотреть в сторону Gentoo. Тут просто:

USE=«sqlite» emerge php

:)

KRoN73 ★★★★★
()

Я даже попробовал дать команду

-----8<-----
# apt-get install php5-sqlite3
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Пакет php5-sqlite3 недоступен, но упомянут в списке зависимостей другого пакета.
Это может означать, что пакет отсутствует, устарел, или доступен из источников, не упомянутых в sources.list
E: Для пакета php5-sqlite3 не найдены кандидаты на установку
-----8<-----

Что значит «Пакет php5-sqlite3 недоступен, но упомянут в списке зависимостей другого пакета.» ? Типа вроде как он должен быть, но почему-то его нигде нет. И где же его искать?

xintrea
() автор топика
Ответ на: комментарий от xintrea

$apt-get install php5-sqlite $/etc/init.d/apache2 reload $php -r «phpinfo();»

----SKIPPED------- SQLite

SQLite support => enabled PECL Module version => 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.12 2008/12/31 11:17:44 sebastian Exp $ SQLite Library => 2.8.17 SQLite Encoding => UTF-8

Directive => Local Value => Master Value sqlite.assoc_case => 0 => 0 ----SKIPPED-------

anonymous
()
Ответ на: комментарий от anonymous

$apt-get install

php5-sqlite

$/etc/init.d/apache2 reload

$php -r «phpinfo();»

----SKIPPED-------

SQLite

SQLite support => enabled PECL Module version => 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.12 2008/12/31 11:17:44 sebastian Exp $ SQLite Library => 2.8.17 SQLite Encoding => UTF-8

Directive => Local Value => Master Value sqlite.assoc_case => 0 => 0

----SKIPPED-------

anonymous
()

>Почему так? Что делать? Собирать поддержку SQLite3 руками?

собственно, в поддержке SQLite, SQLite3 для PHP есть некоторая путаница (и не только в PHP).

Простое расширение SQLite насколько помнится не поддерживает юникод (utf8) и давно устарело (это SQLite2).

PHP <5.3 поддерживает SQLite3 в PDO-расширении почти полностью, где то в доках об этом упоминается.

В PHP >=5.3 есть нативное расширение SQlite3, соответственно если есть возможность лучше использовать его

естественно, SQLite3 должен быть установлен в системе

swwwfactory ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.