como habilitar sqlite3 para php?

91

Estou tentando instalar o sqlite3 para PHP no Ubuntu.

Eu instalei apt-get php5-sqlite3e editei php.inipara incluir a extensão sqlite3.

Quando eu corro phpinfo();eu pego

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

conforme mostrado acima, sqlite3está habilitado. No entanto, recebo "Classe SQLite3 não encontrada" quando uso

 new SQLite3("database");
Lua
fonte

Respostas:

38

Editar: esta resposta está desatualizada, mas não pode ser removida porque é aceita. Por favor, veja a solução de Stacey Richards para a resposta correta.

 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 do formulário ubuntu .

miceto
fonte
3
O segundo ao último comando deve ser sudo checkinstall(após a execução sudo apt-get install checkinstall. Por que usar um sistema operacional com um gerenciador de pacotes se você não vai usá-lo?
Brendan Long
25
agora este é um conselho desatualizado. por exemplo, forum.linode.com/viewtopic.php?p=39974
momeara
1
Exclua esta resposta! Há uma resposta muito melhor abaixo, e os votos a apoiam fortemente!
Charney Kaye
Eu fiz a segunda melhor coisa ao editar de uma forma bem visível 'pule isso'.
kiswa
4
É apt-get install php5-sqlitehoje a partir de 2015
Desproblemify
236

Experimentar:

apt-get install php5-sqlite

Isso funcionou para mim.

Stacey Richards
fonte
28
o pacote php5-sqlite3 não existe mais.
momeara
2
Definitivamente, a solução mais fácil.
gustafbstrom
5
Ou, no caso do CentOS,sudo yum install php-sqlite3 -y
dinamitado em
5
Isso também adicionou um arquivo de configuração do PHP em /etc/php5/apache2/conf.d; ele até reiniciou o Apache, embora por algum motivo eu tive que reiniciá-lo novamente para que a alteração tivesse efeito.
EK0
12
Ou, no caso do Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz
33

Para PHP7, use

sudo apt-get install php7.0-sqlite3

e reinicie o Apache

sudo apache2ctl restart
a sensação tcheca
fonte
6
para php 7.2 sudo apt-get install php7.2-sqlite
Salem
15

A resposta aceita não está completa sem o restante das instruções (parafraseadas abaixo) do tópico do fórum 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
fonte
Achei que você também tivesse que modificar o arquivo php.conf.
marciokoko
1
Pelo menos no Ubuntu 14.04, esta etapa não é necessária, pois já existe um sqlite3.inias/etc/php5/mods-available/sqlite3.ini
Hibou57
10

Para Ubuntu 18.04 e PHP 7.2:

sudo apt install php-sqlite3

Jarek Jakubowski
fonte
Você precisa executar apt-get updateantes do comando acima para que seja executado sem erros.
Valentine Shi
4

O driver PDO SQLite3 é denominado SQLite, não SQLite3, portanto, você pode fazer:

new SQLite("database");

Para um banco de dados SQLite2:

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

uma coisa que eu quero adicionar, antes de tentar instalar

apt-get install php5-sqlite

ou

apt-get install php5-sqlite3 

pesquisar o pacote fornecido está disponível ou não: -

 # apt-cache search 'php5'

Depois disso, você obtém: -

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

Aqui você tem uma idéia se a sua versão suporta ou não .. no meu sistema recebo php5-sqlite - módulo SQLite para php5, então prefiro instalar

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

Isso funcionou para mim.

Mineração de bitcoin
fonte
1

tente isto:

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
fonte
3
Eu acho que o OP precisa saber algumas mudanças de configuração. Apenas instalar o software necessário não responde à pergunta.
mtk
Cuidado com esses comandos! Embora isso possa realmente funcionar, seria útil informar que isso removerá e eliminará todos os pacotes que começam com "php5". Em outras palavras, ele removerá os arquivos principais e de configuração.
adelriosantiago
isso funcionou para mim !!! A limpeza e a reinstalação de todas essas coisas foi boa .... exceto pelo penúltimo comando install php-sqlite ..... é a mesma coisa que acontece no segundo comando? Talvez seja necessário em certos casos, mas não pareceu fazer nada para mim
rikkitikkitumbo
1

No Centos 6.7, no meu caso faltava o arquivo 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
fonte
1

Use apenas:

sudo apt-get install php5-sqlite

e depois

sudo service apache2 restart
C47
fonte
0

Depende da versão do PHP. Para php7.0, os seguintes comandos funcionam: em
sudo apt-get install php7.0-sqlite3
seguida, reinicie o servidor Apache:
sudo service apache2 restart

doru
fonte
0

Para distribuições Debian. Nada funcionou até eu adicionar os repositórios principais debian nas fontes do apt (não sei como eles foram removidos): sudo vi /etc/apt/sources.list

e acrescentou

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

depois disso sudo apt-get update(você também pode atualizar) e, finalmente,sudo apt-get install php-sqlite3

javier_domenech
fonte
0

Isso vai se afogar aqui, mas resolvi meus problemas com isso:

Pelo que descobri, há um arquivo defeituoso em /usr/local/libchamado libsqlite3.so.0que aponta para libsqlite3.so.0.8.6. Ele foi instalado através dos pacotes php7.3- *, até onde eu posso dizer.

Renomeei o arquivo caso fosse necessário para alguma coisa. Com o comando:

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

Mas você também pode simplesmente excluí-lo: rm libsqlite3.so.0

O tópico que me leva à resposta: link

Isso resolveu meus problemas e espero que eles resolvam os seus também :)

IncrediblePony
fonte
0

A maneira Debian / Ubuntu para php-7.2, php-7.3 e php-7.4 (por exemplo, a [234]parte)

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

Certifique-se de observar que no subsistema Windows para Linux versão 1 (WSL1), o sistema de bloqueio (arquivo) para SQlite está quebrado.

Henk Poley
fonte