jak włączyć sqlite3 dla php?


92

Próbuję zainstalować sqlite3 dla PHP w Ubuntu.

Instaluję apt-get php5-sqlite3i edytuję, php.iniaby zawierało rozszerzenie sqlite3.

Kiedy biegnę phpinfo();, dostaję

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

jak pokazano powyżej, sqlite3jest włączone. Jednak podczas używania otrzymuję komunikat „Nie znaleziono klasy SQLite3”

 new SQLite3("database");

Odpowiedzi:


38

Edycja: ta odpowiedź jest nieaktualna, ale nie można jej usunąć, ponieważ została zaakceptowana. Aby uzyskać poprawną odpowiedź, zapoznaj się z rozwiązaniem od Stacey Richards.

 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

Wydarty z formy ubuntu .


3
Przedostatnim poleceniem powinno być sudo checkinstall(po uruchomieniu sudo apt-get install checkinstall. Po co używać systemu operacyjnego z menedżerem pakietów, jeśli nie zamierzasz go używać?
Brendan Long

25
to jest przestarzała rada. np. forum.linode.com/viewtopic.php?p=39974
momeara

1
Usuń tę odpowiedź! Poniżej znajduje się o wiele lepsza odpowiedź, a głosy zdecydowanie ją potwierdzają!
Charney Kaye

Zrobiłem następną najlepszą rzecz, edytując w bardzo widocznym rodzaju „pomiń to”.
kiswa

4
To jest apt-get install php5-sqlitedzisiaj od 2015 roku
Deproblemify

236

Próbować:

apt-get install php5-sqlite

To zadziałało dla mnie.


28
pakiet php5-sqlite3 już nie istnieje.
momeara

2
Zdecydowanie najłatwiejsze rozwiązanie.
gustafbstrom

5
Lub, w przypadku CentOS,sudo yum install php-sqlite3 -y
dynamitereed

5
To również dodało plik konfiguracyjny PHP w /etc/php5/apache2/conf.d; nawet zrestartował Apache, chociaż z jakiegoś powodu musiałem go ponownie uruchomić, aby zmiana odniosła skutek.
EK0

12
Lub, w przypadku Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz

34

W przypadku PHP7 użyj

sudo apt-get install php7.0-sqlite3

i uruchom ponownie Apache

sudo apache2ctl restart

6
dla php 7.2 sudo apt-get install php7.2-sqlite
Salem

15

Przyjęta odpowiedź nie jest kompletna bez pozostałych instrukcji (parafrazowanych poniżej) z wątku na forum, do którego prowadzi link:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart

Myślałem, że musiałeś również zmodyfikować plik php.conf?
marciokoko

1
Przynajmniej na Ubuntu 14.04 ten krok nie jest potrzebny, ponieważ jest już sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57

10

W przypadku Ubuntu 18.04 i PHP 7.2:

sudo apt install php-sqlite3


Musisz wykonać apt-get updatepolecenie przed powyższym poleceniem, aby zostało wykonane bez błędów.
Valentine Shi

4

Sterownik SQLite3 PDO nosi nazwę SQLite, a nie SQLite3, więc możesz:

new SQLite("database");

W przypadku bazy danych SQLite2:

new SQLite2("database");

3

jedną rzecz, którą chcę dodać, zanim spróbujesz zainstalować

apt-get install php5-sqlite

lub

apt-get install php5-sqlite3 

wyszukaj podany pakiet jest dostępny lub nie: -

 # apt-cache search 'php5'

Następnie otrzymasz: -

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

Tutaj masz pomysł, czy twoja wersja obsługuje czy nie .. w moim systemie otrzymuję php5-sqlite - moduł SQLite dla php5, więc wolę zainstalować

**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

To zadziałało dla mnie.


1

Spróbuj tego:

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
Wydaje mi się, że OP musi znać pewne zmiany w konfiguracji. Samo zainstalowanie wymaganego oprogramowania nie daje odpowiedzi na pytanie.
mtk

Ostrożnie z tymi poleceniami! Chociaż mogłoby to faktycznie zadziałać, warto byłoby poinformować, że spowoduje to usunięcie i wyczyszczenie wszystkich pakietów zaczynających się od „php5”. Innymi słowy, usunie zarówno pliki podstawowe, jak i pliki konfiguracyjne.
adelriosantiago

to działało dla mnie !!! Po wyczyszczeniu i ponownym zainstalowaniu wszystkich tych rzeczy było dobrze… z wyjątkiem przedostatniej komendy install php-sqlite ..... to samo dzieje się w drugim poleceniu? Może jest to potrzebne w niektórych przypadkach, ale wydawało się, że nic mi to nie dało
rikkitikkitumbo

1

W Centos 6.7 w moim przypadku brakowało pliku biblioteki /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

Jedynym zastosowaniem:

sudo apt-get install php5-sqlite

i później

sudo service apache2 restart

1

Sposób Debiana / Ubuntu dla php-7.2, php-7.3 i php-7.4 (np. [234]Część)

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

Należy pamiętać, że w podsystemie Windows dla systemu Linux w wersji 1 (WSL1) system blokowania (plików) dla SQlite jest uszkodzony.


0

Zależy od wersji PHP. W przypadku php7.0 działają następujące polecenia:
sudo apt-get install php7.0-sqlite3
następnie zrestartuj serwer Apache:
sudo service apache2 restart


0

Dla dystrybucji Debiana. Nic nie działało, dopóki nie dodałem głównych repozytoriów Debiana do źródeł apt (nie wiem, jak zostały one usunięte): sudo vi /etc/apt/sources.list

i dodał

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

potem sudo apt-get update(możesz też uaktualnić) i na koniecsudo apt-get install php-sqlite3


0

To utonie, ale rozwiązałem swoje problemy z tym:

O ile się dowiedziałem, w /usr/local/libwywołanym pliku jest uszkodzony plik, libsqlite3.so.0który wskazuje na libsqlite3.so.0.8.6. O ile wiem, został zainstalowany przez pakiety php7.3- *.

Zmieniłem nazwę pliku na wypadek, gdyby był do czegoś potrzebny. Poleceniem:

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

Ale możesz też po prostu go usunąć: rm libsqlite3.so.0

Wątek, który doprowadził mnie do odpowiedzi: link

To rozwiązało moje problemy i mam nadzieję, że rozwiążą również Twoje :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.