как включить sqlite3 для php?


92

Я пытаюсь установить sqlite3 для PHP в Ubuntu.

Я установил apt-get php5-sqlite3и отредактировал, php.iniчтобы включить расширение sqlite3.

Когда я бегу, phpinfo();я получаю

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

как показано выше, sqlite3включен. Однако я получаю сообщение «Class SQLite3 not found», когда использую

 new SQLite3("database");

Ответы:


38

Изменить: этот ответ устарел, но его нельзя удалить, потому что он принят. Пожалуйста, посмотрите решение от Стейси Ричардс для правильного ответа.

 sudo apt-get install php5-cli php5-dev make
 sudo apt-get install libsqlite3-0 libsqlite3-dev
 sudo apt-get install php5-sqlite3
 sudo apt-get remove php5-sqlite3
 cd ~
 wget http://pecl.php.net/get/sqlite3-0.6.tgz
 tar -zxf sqlite3-0.6.tgz
 cd sqlite3-0.6/
 sudo phpize
 sudo ./configure
 sudo make
 sudo make install
 sudo apache2ctl restart

Вырвано из формы убунту .


3
Вторая и последняя команда должна быть sudo checkinstall(после выполнения sudo apt-get install checkinstall. Зачем использовать ОС с диспетчером пакетов, если вы не собираетесь его использовать?
Брендан Лонг,

25
это уже устаревший совет. например forum.linode.com/viewtopic.php?p=39974
momeara

1
Пожалуйста, удалите этот ответ! Ниже есть способ лучше, и голоса его убедительно подтверждают!
Charney Kaye

Я сделал следующий лучший шаг, отредактировав очень заметное «пропустить это».
кисва

4
Это apt-get install php5-sqliteсегодня, по состоянию на 2015 год
Deproblemify

236

Пытаться:

apt-get install php5-sqlite

Это сработало для меня.


28
пакет php5-sqlite3 больше не существует.
momeara

2
Однозначно самое простое решение.
gustafbstrom 02

5
Или, в случае с CentOS,sudo yum install php-sqlite3 -y
взорвали динамитом

5
Это также добавило файл конфигурации PHP в /etc/php5/apache2/conf.d; он даже перезапустил Apache, хотя по какой-то причине мне пришлось перезапустить его снова, чтобы изменения вступили в силу.
EK0

12
Или, в случае Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz


15

Принятый ответ не будет полным без остальных инструкций (перефразированных ниже) из ветки форума, связанной с:

cd /etc/php5/conf.d

cat > sqlite3.ini
# configuration for php SQLite3 module
extension=sqlite3.so
^D

sudo /etc/init.d/apache2 restart

Я думал, вам также нужно изменить файл php.conf?
marciokoko

1
По крайней мере, в Ubuntu 14.04 этот шаг не нужен, так как уже существует sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57

10

Для Ubuntu 18.04 и PHP 7.2:

sudo apt install php-sqlite3


Вам необходимо выполнить apt-get updateкоманду перед приведенной выше командой, чтобы она выполнялась без ошибок.
Valentine Shi

4

Драйвер SQLite3 PDO называется SQLite, а не SQLite3, поэтому вы можете:

new SQLite("database");

Для базы данных SQLite2:

new SQLite2("database");

3

одну вещь я хочу добавить, прежде чем пытаться установить

apt-get install php5-sqlite

или

apt-get install php5-sqlite3 

искать данный пакет доступен или нет: -

 # apt-cache search 'php5'

После этого вы получите: -

php5-rrd - rrd module for PHP 5

php5-sasl - Cyrus SASL extension for PHP 5

php5-snmp - SNMP module for php5

**php5-sqlite - SQLite module for php5**

php5-svn - PHP Bindings for the Subversion Revision control system

php5-sybase - Sybase / MS SQL Server module for php5

Здесь вы получите представление о том, поддерживает ли ваша версия или нет .. в моей системе я использую php5-sqlite - модуль SQLite для php5, поэтому я предпочитаю установить

**apt-get install php5-sqlite**

2
sudo apt-get install php5-cli php5-dev make

sudo apt-get install libsqlite3-0 libsqlite3-dev

sudo apt-get install php5-sqlite3

sudo apt-get remove php5-sqlite3

cd ~

wget http://pecl.php.net/get/sqlite3-0.6.tgz

tar -zxf sqlite3-0.6.tgz

cd sqlite3-0.6/

sudo phpize

sudo ./configure

Это сработало для меня.


1

попробуй это:

sudo apt-get --purge remove php5*
sudo apt-get install php5 php5-sqlite php5-mysql
sudo apt-get install php-pear php-apc php5-curl
sudo apt-get autoremove
sudo apt-get install php5-sqlite
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5

3
Я думаю, OP нужно знать некоторые изменения конфигурации. Простая установка необходимого программного обеспечения не дает ответа на вопрос.
mtk

Осторожно с этими командами! Хотя это действительно может сработать, было бы полезно сообщить, что это приведет к удалению и очистке всех пакетов, начинающихся с «php5». Другими словами, он удалит как файлы ядра, так и файлы конфигурации.
adelriosantiago

это сработало для меня !!! Очистка, а затем повторная установка всего этого прошла хорошо .... кроме предпоследней команды install php-sqlite ..... это то же самое, что происходит во второй команде? Может быть, это необходимо в определенных случаях, но, похоже, для меня это ничего не
дало

1

В Centos 6.7 в моем случае отсутствовал файл библиотеки /usr/lib64/php/modules/sqlite3.so.

yum install php-pdo 

vim /etc/php.d/sqlite3.ini
; Enable sqlite3 extension module
extension=sqlite3.so

sudo service httpd restart

1

Используйте только:

sudo apt-get install php5-sqlite

и позже

sudo service apache2 restart

1

Путь Debian / Ubuntu для php-7.2, php-7.3 и php-7.4 (например, [234]часть)

sudo apt install php7.[234]-sqlite
sudo phpenmod sqlite3

Обязательно обратите внимание, что в подсистеме Windows для Linux версии 1 (WSL1) (файловая) система блокировки для SQlite не работает.


0

Зависит от версии PHP. Для php7.0 работают следующие команды:
sudo apt-get install php7.0-sqlite3
затем перезапустите сервер Apache:
sudo service apache2 restart


0

Для дистрибутивов Debian. Ничего не работало, пока я не добавил основные репозитории debian в источники apt (я не знаю, как они были удалены): sudo vi /etc/apt/sources.list

и добавил

deb  http://deb.debian.org/debian  stretch main
deb-src  http://deb.debian.org/debian  stretch main

после этого sudo apt-get update(вы тоже можете обновить) и, наконец,sudo apt-get install php-sqlite3


0

Здесь он утонет, но я исправил свои проблемы с этим:

Насколько я выяснил, в /usr/local/libвызываемом файле есть неисправный файл, libsqlite3.so.0который указывает наlibsqlite3.so.0.8.6 . Насколько я могу судить, он был установлен с помощью пакетов php7.3- *.

Я переименовал файл на случай, если он для чего-то понадобился. С помощью команды:

cd /usr/local/lib sudo mv libsqlite3.so.0 ./libsqlite3.so.0.back

Но вы также можете просто удалить его: rm libsqlite3.so.0

Тема, которая привела меня к ответу: ссылка

Это решило мои проблемы, и я надеюсь, они решат и ваши :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.