come abilitare sqlite3 per php?


91

Sto cercando di installare sqlite3 per PHP in Ubuntu.

Ho installato apt-get php5-sqlite3e modificato php.iniper includere l'estensione sqlite3.

Quando corro phpinfo();ottengo

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

come mostrato sopra, sqlite3è abilitato. Tuttavia, ottengo "Class SQLite3 non trovato" quando lo uso

 new SQLite3("database");

Risposte:


38

Modifica: questa risposta è obsoleta, ma non può essere rimossa perché è stata accettata. Si prega di consultare la soluzione di Stacey Richards per la risposta corretta.

 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

Strappato dal modulo Ubuntu .


3
Il penultimo comando dovrebbe essere sudo checkinstall(dopo l'esecuzione sudo apt-get install checkinstall. Perché utilizzare un sistema operativo con un gestore di pacchetti se non lo si intende utilizzare?
Brendan Long,

25
questo è ormai un consiglio obsoleto. ad es. forum.linode.com/viewtopic.php?p=39974
momeara

1
Per favore cancella questa risposta! C'è un modo migliore risposta qui sotto, ei voti copia di backup con forza!
Charney Kaye

Ho fatto la cosa migliore successiva modificando in una sorta di "salta questo" molto visibile.
kiswa

4
È apt-get install php5-sqliteoggi a partire dal 2015
Deproblemify il

236

Provare:

apt-get install php5-sqlite

Ha funzionato per me.


28
il pacchetto php5-sqlite3 non esiste più.
momeara

2
Sicuramente la soluzione più semplice.
gustafbstrom

5
Oppure, nel caso di CentOS,sudo yum install php-sqlite3 -y
dynamitereed il

5
Questo ha anche aggiunto un file di configurazione PHP in /etc/php5/apache2/conf.d; ha anche riavviato Apache, anche se per qualche motivo ho dovuto riavviarlo di nuovo affinché la modifica avesse effetto.
EK0

12
Oppure, nel caso di Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz

33

Per PHP7, usa

sudo apt-get install php7.0-sqlite3

e riavvia Apache

sudo apache2ctl restart

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

15

La risposta accettata non è completa senza il resto delle istruzioni (parafrasate di seguito) dal thread del forum collegato a:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart

Pensavo dovessi modificare anche il file php.conf?
marciokoko

1
Almeno su Ubuntu 14.04, questo passaggio non è necessario, poiché esiste già un sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57

10

Per Ubuntu 18.04 e PHP 7.2:

sudo apt install php-sqlite3


È necessario eseguire apt-get updateprima del comando sopra per farlo eseguire senza errori.
Valentine Shi

4

Il driver SQLite3 PDO si chiama SQLite, non SQLite3, quindi puoi fare:

new SQLite("database");

Per un database SQLite2:

new SQLite2("database");

3

una cosa che voglio aggiungere, prima di provare a installare

apt-get install php5-sqlite

o

apt-get install php5-sqlite3 

cerca il pacchetto dato è disponibile o meno: -

 # apt-cache search 'php5'

Dopodiché ottieni: -

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

Qui hai un'idea se la tua versione supporta o meno .. nel mio sistema ottengo php5-sqlite - modulo SQLite per php5 quindi preferisco installarlo

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

Ha funzionato per me.


1

prova questo:

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
Immagino che OP debba conoscere alcune modifiche alla configurazione. La semplice installazione del software richiesto non risponde alla domanda.
mtk

Attento a questi comandi! Anche se questo potrebbe effettivamente funzionare, sarebbe utile informare che questo rimuoverà ed eliminerà tutti i pacchetti che iniziano con "php5". In altre parole rimuoverà sia i file core che i file di configurazione.
adelriosantiago

questo ha funzionato per me !!! La pulizia e la reinstallazione di tutte queste cose è andata bene .... tranne che per il penultimo comando install php-sqlite ..... è la stessa cosa che succede nel 2 ° comando? Forse è necessario in alcuni casi, ma non sembra aver fatto nulla per me
rikkitikkitumbo

1

In Centos 6.7, nel mio caso mancava il file di libreria /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

Usa solo:

sudo apt-get install php5-sqlite

e più tardi

sudo service apache2 restart

0

Dipende dalla versione di PHP. Per php7.0 funzionano i seguenti comandi:
sudo apt-get install php7.0-sqlite3
quindi riavvia il server Apache:
sudo service apache2 restart


0

Per le distribuzioni Debian. Niente ha funzionato fino a quando non ho aggiunto i repository principali di Debian sui sorgenti di apt (non so come siano stati rimossi): sudo vi /etc/apt/sources.list

e aggiunse

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

dopo di che sudo apt-get update(puoi anche aggiornare) e infinesudo apt-get install php-sqlite3


0

Questo annegherà qui, ma ho risolto i miei problemi con questo:

Per quanto ho scoperto, c'è un file difettoso in /usr/local/libchiamato libsqlite3.so.0che punta a libsqlite3.so.0.8.6. È stato installato tramite i pacchetti php7.3- * per quanto ne so.

Ho rinominato il file nel caso fosse necessario per qualcosa. Con il comando:

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

Ma puoi anche eliminarlo semplicemente: rm libsqlite3.so.0

Il filo che mi ha portato alla risposta: link

Questo ha risolto i miei problemi e spero che risolvano anche i tuoi :)


0

Il metodo Debian / Ubuntu per php-7.2, php-7.3 e php-7.4 (ad esempio la [234]parte)

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

Assicurati di notare che su Windows Subsystem per Linux versione 1 (WSL1) il sistema di blocco (file) per SQlite è rotto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.