¿Cómo habilitar sqlite3 para php?

92

Estoy intentando instalar sqlite3 para PHP en Ubuntu.

Instalo apt-get php5-sqlite3y edito php.inipara incluir la extensión sqlite3.

Cuando corro phpinfo();consigo

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

como se muestra arriba, sqlite3está habilitado. Sin embargo, obtengo "Class SQLite3 not found" cuando uso

 new SQLite3("database");
Luna
fuente

Respuestas:

38

Editar: esta respuesta está desactualizada, pero no se puede eliminar porque se acepta. Consulte la solución de Stacey Richards para obtener la respuesta correcta.

 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

Extraído de la forma ubuntu .

miccet
fuente
3
El segundo al último comando debería ser sudo checkinstall(después de ejecutarlo sudo apt-get install checkinstall. ¿Por qué usar un sistema operativo con un administrador de paquetes si no lo va a usar?
Brendan Long
25
este es ahora un consejo obsoleto. por ejemplo, forum.linode.com/viewtopic.php?p=39974
momeara
1
¡Elimina esta respuesta! Hay una respuesta mucho mejor a continuación, ¡y los votos la respaldan firmemente!
Charney Kaye
Hice la siguiente mejor opción editando en una especie de "omitir esto" muy visible.
kiswa
4
Es apt-get install php5-sqlitehoy a partir de 2015
Desproblemificar
236

Tratar:

apt-get install php5-sqlite

Eso funcionó para mí.

Stacey Richards
fuente
28
el paquete php5-sqlite3 ya no existe.
momeara
2
Definitivamente la solución más sencilla.
gustafbstrom
5
O, en el caso de CentOS,sudo yum install php-sqlite3 -y
dynamitereed
5
Esto también agregó un archivo de configuración PHP en /etc/php5/apache2/conf.d; incluso reinició Apache, aunque por alguna razón tuve que reiniciarlo nuevamente para que el cambio surtiera efecto.
EK0
12
O, en el caso de Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz
34

Para PHP7, utilice

sudo apt-get install php7.0-sqlite3

y reinicia Apache

sudo apache2ctl restart
la sensación checa
fuente
6
para php 7.2 sudo apt-get install php7.2-sqlite
Salem
15

La respuesta aceptada no está completa sin el resto de instrucciones (parafraseadas a continuación) del hilo del foro vinculado a:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart
btk
fuente
Pensé que también tenías que modificar el archivo php.conf.
marciokoko
1
Al menos en Ubuntu 14.04, este paso no es necesario, ya que ya existe un sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57
10

Para Ubuntu 18.04 y PHP 7.2:

sudo apt install php-sqlite3

Jarek Jakubowski
fuente
Debe ejecutar apt-get updateantes del comando anterior para que se ejecute sin errores.
Valentine Shi
4

El controlador PDO de SQLite3 se llama SQLite, no SQLite3, por lo que puede hacer:

new SQLite("database");

Para una base de datos SQLite2:

new SQLite2("database");
Tom Haigh
fuente
3

una cosa que quiero agregar, antes de intentar instalar

apt-get install php5-sqlite

o

apt-get install php5-sqlite3 

buscar el paquete dado está disponible o no: -

 # apt-cache search 'php5'

Después de eso obtienes: -

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

Aquí tienes una idea de si tu versión es compatible o no ... en mi sistema obtengo php5-sqlite - módulo SQLite para php5, así que prefiero instalar

**apt-get install php5-sqlite**
Sanjeev
fuente
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

Eso funcionó para mí.

Minería Bitcoin
fuente
1

prueba esto:

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
Hazem Hagrass
fuente
3
Supongo que OP necesita conocer algunos cambios de configuración. La simple instalación del software requerido no responde a la pregunta.
mtk
¡Cuidado con estos comandos! Si bien esto podría funcionar, sería útil informar que esto eliminará y purgará todos los paquetes que comiencen con "php5". En otras palabras, eliminará tanto los archivos principales como los archivos de configuración.
adelriosantiago
esto funcionó para mí !!! La limpieza y luego la reinstalación de todas estas cosas fue buena ... excepto por el penúltimo comando install php-sqlite ... ¿eso es lo mismo que sucede en el segundo comando? Tal vez sea necesario en ciertos casos, pero no pareció hacer nada por mí
rikkitikkitumbo
1

En Centos 6.7, en mi caso faltaba el archivo de biblioteca /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
satishwin
fuente
1

Uso único:

sudo apt-get install php5-sqlite

y después

sudo service apache2 restart
C47
fuente
0

Depende de la versión de PHP. Para php7.0 los siguientes comandos funcionan:
sudo apt-get install php7.0-sqlite3
luego reinicie el servidor Apache:
sudo service apache2 restart

doru
fuente
0

Para distribuciones de Debian. Nada funcionó hasta que agregué los repositorios principales de Debian en las fuentes de apt (no sé cómo se eliminaron): sudo vi /etc/apt/sources.list

y agregado

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

después de eso sudo apt-get update(también puedes actualizar) y finalmentesudo apt-get install php-sqlite3

javier_domenech
fuente
0

Esto se ahogará aquí, pero solucioné mis problemas con esto:

Por lo que he descubierto, hay un archivo defectuoso en /usr/local/libllamado libsqlite3.so.0que apunta a libsqlite3.so.0.8.6. Se ha instalado a través de los paquetes php7.3- * hasta donde yo sé.

Cambié el nombre del archivo en caso de que fuera necesario para algo. Con el comando:

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

Pero también puedes simplemente eliminarlo: rm libsqlite3.so.0

El hilo que me lleva a la respuesta: enlace

Esto resolvió mis problemas, y espero que ellos también resuelvan los suyos :)

Increíble Poni
fuente
0

La forma Debian / Ubuntu para php-7.2, php-7.3 y php-7.4 (por ejemplo, la [234]pieza)

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

Asegúrese de tener en cuenta que en el Subsistema de Windows para Linux versión 1 (WSL1), el sistema de bloqueo (de archivos) para SQlite está roto.

Henk Poley
fuente