Wie aktiviere ich SQLite3 für PHP?


91

Ich versuche, sqlite3 für PHP in Ubuntu zu installieren.

Ich installiere apt-get php5-sqlite3und bearbeite php.ini, um die Erweiterung sqlite3 einzuschließen.

Wenn ich renne phpinfo();bekomme ich

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

wie oben gezeigt, sqlite3ist aktiviert. Bei Verwendung wird jedoch "Klasse SQLite3 nicht gefunden" angezeigt

 new SQLite3("database");

Antworten:


38

Bearbeiten: Diese Antwort ist veraltet, kann aber nicht entfernt werden, da sie akzeptiert wird. Die richtige Antwort finden Sie in der Lösung von 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

Aus der Ubuntu-Form gerissen .


3
Der vorletzte Befehl sollte sein sudo checkinstall(nach dem Ausführen sudo apt-get install checkinstall. Warum ein Betriebssystem mit einem Paketmanager verwenden, wenn Sie es nicht verwenden werden?
Brendan Long

25
Dies ist jetzt veraltete Beratung. zB forum.linode.com/viewtopic.php?p=39974
momeara

1
Bitte löschen Sie diese Antwort! Es gibt eine viel bessere Antwort unten, und die Stimmen stützen es stark!
Charney Kaye

Ich habe das nächstbeste getan, indem ich eine sehr sichtbare Art von "Überspringen" bearbeitet habe.
Kiswa

4
Es ist apt-get install php5-sqliteheute ab 2015
Deproblemify

236

Versuchen:

apt-get install php5-sqlite

Das hat bei mir funktioniert.


28
das php5-sqlite3 paket existiert nicht mehr.
Momeara

2
Auf jeden Fall die einfachste Lösung.
Gustafbstrom

5
Oder im Fall von CentOSsudo yum install php-sqlite3 -y
Dynamitereed

5
Dadurch wurde auch eine PHP-Konfigurationsdatei in /etc/php5/apache2/conf.d hinzugefügt. Es hat sogar Apache neu gestartet, obwohl ich es aus irgendeinem Grund erneut starten musste, damit die Änderung wirksam wurde.
EK0

12
Oder im Fall von Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz

33

Verwenden Sie für PHP7

sudo apt-get install php7.0-sqlite3

und starten Sie Apache neu

sudo apache2ctl restart

6
für PHP 7.2 sudo apt-get install php7.2-sqlite
Salem

15

Die akzeptierte Antwort ist nicht vollständig ohne den Rest der Anweisungen (unten umschrieben) aus dem Forenthread, der verlinkt ist mit:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart

Ich dachte du müsstest auch die php.conf Datei ändern?
Marciokoko

1
Zumindest unter Ubuntu 14.04 ist dieser Schritt nicht erforderlich, da es bereits einen sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57

9

Für Ubuntu 18.04 und PHP 7.2:

sudo apt install php-sqlite3


Sie müssen apt-get updatevor dem obigen Befehl ausgeführt werden, damit er fehlerfrei ausgeführt wird.
Valentine Shi

4

Der SQLite3-PDO-Treiber heißt SQLite und nicht SQLite3. Sie haben also folgende Möglichkeiten:

new SQLite("database");

Für eine SQLite2-Datenbank:

new SQLite2("database");

3

Eine Sache möchte ich hinzufügen, bevor Sie versuchen, zu installieren

apt-get install php5-sqlite

oder

apt-get install php5-sqlite3 

Suche das angegebene Paket ist verfügbar oder nicht: -

 # apt-cache search 'php5'

Danach erhalten Sie: -

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

Hier bekommen Sie eine Vorstellung davon, ob Ihre Version unterstützt wird oder nicht. In meinem System bekomme ich php5-sqlite - SQLite-Modul für php5, daher bevorzuge ich die Installation

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

Das hat bei mir funktioniert.


1

Versuche dies:

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
Ich denke, OP muss einige Konfigurationsänderungen kennen. Nur die Installation der erforderlichen Software beantwortet die Frage nicht.
MTK

Vorsicht mit diesen Befehlen! Während dies tatsächlich funktionieren könnte, wäre es nützlich zu informieren, dass dadurch alle Pakete entfernt und gelöscht werden, die mit "php5" beginnen. Mit anderen Worten, es werden sowohl Kerndateien als auch Konfigurationsdateien entfernt.
Adelriosantiago

das hat bei mir funktioniert !!! Das Reinigen und anschließende erneute Installieren all dieser Dinge war gut ... bis auf den vorletzten Befehl php-sqlite installieren ... ist das dasselbe, was im zweiten Befehl passiert? Vielleicht wird es in bestimmten Fällen benötigt, aber es schien nichts für mich zu tun
rikkitikkitumbo

1

In Centos 6.7 fehlte in meinem Fall die Bibliotheksdatei /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

Benutz nur:

sudo apt-get install php5-sqlite

und später

sudo service apache2 restart

0

Hängt von der Version von PHP ab. Für php7.0 funktionieren die folgenden Befehle: Starten Sie
sudo apt-get install php7.0-sqlite3
dann den Apache-Server neu:
sudo service apache2 restart


0

Für Debian-Distributionen. Nichts hat funktioniert, bis ich die Debian-Hauptrepositorys zu den passenden Quellen hinzugefügt habe (ich weiß nicht, wie sie entfernt wurden): sudo vi /etc/apt/sources.list

und hinzugefügt

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

danach sudo apt-get update(Sie können auch upgraden) und schließlichsudo apt-get install php-sqlite3


0

Das wird hier ertrinken, aber ich habe meine Probleme damit behoben:

Soweit ich herausgefunden habe, ist eine fehlerhafte Datei /usr/local/libaufgerufen, libsqlite3.so.0die darauf verweist libsqlite3.so.0.8.6. Soweit ich das beurteilen kann, wurde es über die php7.3- * -Pakete installiert.

Ich habe die Datei umbenannt, falls sie für etwas benötigt wurde. Mit dem Befehl:

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

Sie können es aber auch einfach löschen: rm libsqlite3.so.0

Der Thread, der mich zur Antwort führte: Link

Dies hat meine Probleme gelöst und ich hoffe, sie lösen auch deine :)


0

Der Debian / Ubuntu-Weg für PHP-7.2, PHP-7.3 und PHP-7.4 (zB der [234]Teil)

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

Beachten Sie, dass unter Windows Subsystem für Linux Version 1 (WSL1) das (Datei-) Sperrsystem für SQlite defekt ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.