comment activer sqlite3 pour php?


92

J'essaye d'installer sqlite3 pour PHP dans Ubuntu.

J'ai installé apt-get php5-sqlite3et modifié php.inipour inclure l'extension sqlite3.

Quand je cours phpinfo();je reçois

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

comme indiqué ci-dessus, sqlite3est activé. Cependant, j'obtiens "Classe SQLite3 introuvable" lorsque j'utilise

 new SQLite3("database");

Réponses:


38

Modifier: cette réponse est obsolète, mais ne peut pas être supprimée car elle est acceptée Veuillez consulter la solution de Stacey Richards pour la bonne réponse.

 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

Extrait de la forme ubuntu .


3
La deuxième à la dernière commande devrait être sudo checkinstall(après l'exécution sudo apt-get install checkinstall. Pourquoi utiliser un système d'exploitation avec un gestionnaire de paquets si vous n'allez pas l'utiliser?
Brendan Long

25
ce conseil est maintenant dépassé. par exemple, forum.linode.com/viewtopic.php?p=39974
momeara

1
Veuillez supprimer cette réponse! Il y a une façon meilleure réponse ci - dessous, et les voix SAUVEGARDEZ en forte hausse!
Charney Kaye

J'ai fait la meilleure chose suivante en éditant une sorte de «sauter ceci» très visible.
kiswa le

4
Nous apt-get install php5-sqlite
sommes

236

Essayer:

apt-get install php5-sqlite

Cela a fonctionné pour moi.


28
le paquet php5-sqlite3 n'existe plus.
momeara

2
Certainement la solution la plus simple.
gustafbstrom

5
Ou, dans le cas de CentOS,sudo yum install php-sqlite3 -y
dynamité le

5
Cela a également ajouté un fichier de configuration PHP dans /etc/php5/apache2/conf.d; il a même redémarré Apache, même si, pour une raison quelconque, j'ai dû le redémarrer pour que le changement prenne effet.
EK0

12
Ou, dans le cas d'Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz

34

Pour PHP7, utilisez

sudo apt-get install php7.0-sqlite3

et redémarrez Apache

sudo apache2ctl restart

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

15

La réponse acceptée n'est pas complète sans le reste des instructions (paraphrasées ci-dessous) du fil de discussion lié à:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart

Je pensais que vous deviez également modifier le fichier php.conf?
marciokoko

1
Au moins sur Ubuntu 14.04, cette étape n'est pas nécessaire, car il existe déjà un sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57 du

10

Pour Ubuntu 18.04 et PHP 7.2:

sudo apt install php-sqlite3


Vous devez exécuter apt-get updateavant la commande ci-dessus pour la faire exécuter sans erreur.
Valentine Shi

4

Le pilote PDO SQLite3 est nommé SQLite et non SQLite3, vous pouvez donc faire:

new SQLite("database");

Pour une base de données SQLite2:

new SQLite2("database");

3

une chose que je veux ajouter, avant d'essayer d'installer

apt-get install php5-sqlite

ou

apt-get install php5-sqlite3 

rechercher le package donné est disponible ou non: -

 # apt-cache search 'php5'

Après cela, vous obtenez: -

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

Ici, vous avez une idée de savoir si votre version prend en charge ou non .. dans mon système, j'obtiens php5-sqlite - module SQLite pour php5, donc je préfère installer

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

Cela a fonctionné pour moi.


1

essaye ça:

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
Je suppose qu'OP a besoin de connaître certains changements de configuration. La simple installation du logiciel requis ne répond pas à la question.
mtk le

Attention à ces commandes! Bien que cela puisse réellement fonctionner, il serait utile d'informer que cela supprimera et purgera tous les paquets commençant par "php5". En d'autres termes, il supprimera à la fois les fichiers de base et les fichiers de configuration.
adelriosantiago

cela a fonctionné pour moi !!! Le nettoyage puis la réinstallation de toutes ces choses était bon .... sauf pour l'avant-dernière commande install php-sqlite ..... c'est la même chose qui se passe dans la 2ème commande? Peut-être que c'est nécessaire dans certains cas, mais cela ne semble rien faire pour moi
rikkitikkitumbo

1

Dans Centos 6.7, dans mon cas, le fichier de bibliothèque /usr/lib64/php/modules/sqlite3.so manquait.

yum install php-pdo 

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

sudo service httpd restart

1

Seule utilisation:

sudo apt-get install php5-sqlite

et ensuite

sudo service apache2 restart

0

Dépend de la version de PHP. Pour php7.0, les commandes suivantes fonctionnent:
sudo apt-get install php7.0-sqlite3
puis redémarrez le serveur Apache:
sudo service apache2 restart


0

Pour les distributions Debian. Rien n'a fonctionné jusqu'à ce que j'aie ajouté les dépôts principaux Debian sur les sources apt (je ne sais pas comment ils ont été supprimés): sudo vi /etc/apt/sources.list

et ajouté

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

après cela sudo apt-get update(vous pouvez aussi mettre à jour) et enfinsudo apt-get install php-sqlite3


0

Cela se noiera ici, mais j'ai résolu mes problèmes avec ceci:

Pour autant que je sache, il y a un fichier défectueux dans /usr/local/libappelé libsqlite3.so.0qui pointe vers libsqlite3.so.0.8.6. Il a été installé via les packages php7.3- * pour autant que je sache.

J'ai renommé le fichier au cas où il serait nécessaire pour quelque chose. Avec la commande:

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

Mais vous pouvez aussi simplement le supprimer: rm libsqlite3.so.0

Le fil qui m'a conduit à la réponse: lien

Cela a résolu mes problèmes, et j'espère qu'ils résoudront les vôtres également :)


0

La méthode Debian / Ubuntu pour php-7.2, php-7.3 et php-7.4 (par exemple la [234]partie)

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

N'oubliez pas que sur le sous-système Windows pour Linux version 1 (WSL1), le système de verrouillage (fichier) pour SQlite est cassé.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.