Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Descomentar pdo_sqlite - Ubuntu 20.04

Porque após descomentar a linha pdo_sqlite, ao digitar no terminal php -v ocorre um erro?

gustavo@brod:~$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20190902/pdo_sqlite (/usr/lib/php/20190902/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_sqlite.so (/usr/lib/php/20190902/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver)) in Unknown on line 0
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
11 respostas

Gustavo, você precisa instalar a extensão pdo_sqlite. Tente sudo apt install php74-sqlite.

Oi Vinicius! Tudo bem?!

Ja tenho instalado o sqlite e sqlite3

SQLITE

gustavo@gustavo-Spin-SP314-51:~$ sqlite
SQLite version 2.8.17
Enter ".help" for instructions
sqlite> 

SQLITE3

gustavo@gustavo-Spin-SP314-51:~$ sqlite3
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> 

Mesmo assim, persiste em exibir o PHP Warning. Se comento novamente o pdo_sqlite, digito php -v, não exibe o warning.

gustavo@gustavo-Spin-SP314-51:~$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlite' (tried: /usr/lib/php/20190902/pdo_sqlite (/usr/lib/php/20190902/pdo_sqlite: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_sqlite.so (/usr/lib/php/20190902/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver)) in Unknown on line 0
PHP Warning:  Module 'sqlite3' already loaded in Unknown on line 0
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Abraço.

Gustavo, ter o SQLite instalado não implica em ter a extensão pdo_sqlite instalada. Você testou o comando sugerido?

Então como instalo?

Digitei no terminal sudo apt install php7.4-sqlite3, retornou que esta instalado.

gustavo@gustavo-Spin-SP314-51:~$ sudo apt install php7.4-sqlite3 
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
php7.4-sqlite3 is already the newest version (7.4.3-4ubuntu2.4).
0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 2 não atualizados.

Digitando no terminal sudo apt install php7.4-sqlite, retorna que não acha o pacote

gustavo@gustavo-Spin-SP314-51:~$ sudo apt install php7.4-sqlite 
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
E: Impossível encontrar o pacote php7.4-sqlite
E: Couldn't find any package by glob 'php7.4-sqlite'

Outra tentativa sudo apt install php7.4-pdo-sqlite, retorna que o sqlite3 esta instado.

gustavo@gustavo-Spin-SP314-51:~$ sudo apt install php7.4-pdo-sqlite 
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
Note, a seleccionar 'php7.4-sqlite3' em vez de 'php7.4-pdo-sqlite'
php7.4-sqlite3 is already the newest version (7.4.3-4ubuntu2.4).

Se estão instaladas, e eu descomento a linha do php.ini, estou ativando a extenção, correto?

Porque ao rodar php -v retorna um warning?

Como, exatamente, você instalou o PHP nessa máquina? E qual a saída do comando php -m ?

Oi Vinicius,

sudo apt install php-7.4-cli Esse foi o comando que digitei para instalar o PHP.

Depois instalei o sqlite3 e sqlite conforme descrevi acima.

php -m

gustavo@gustavobrod:~$ php -m
[PHP Modules]
calendar
Core
ctype
date
dom
exif
FFI
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zlib

[Zend Modules]
Zend OPcache

Ah, o pdo_sqlite já tá instalado e habilitado. Só comentar de novo a linha que você editou e ser feliz. :-D

kkkkkkkkkkkkkkk

E qual a motivo que quando eu descomento essas linhas, exiber um PHP warning?

Vinicius, você teria um contato mais direto para quando for necessário tirar duvidas.

Abs

Fugindo um pouco do conteudo.

Estou fazendo seus cursos, e estou usando o php 7.4.

Porem o projeto da empresa onde trabalho, utiliza o php 5.5.27, aos poutos estão migrando, mas ainda roda nessa versão. Como eu poderia ter 2 versões do php instaladas no ubuntu?

Claro que as duas versões ao mesmo tempo, é impossível de estarem rodando, mas por exemplo, quando estiver fazer os cursos da alura, uso o php 7.4, quando estiver no projeto da empresa, mudo a versão para 5.5.27

Sei que é possivel fazer isso via Docker, mas não faço ideia de como fazer. Poderia me dar uma ajuda por favor.

Agradeço Abraço.

solução!

E qual a motivo que quando eu descomento essas linhas, exiber um PHP warning?

Repara nessa mensagem de erro:

PHP Warning: Module 'sqlite3' already loaded in Unknown on line 0

Em outro arquivo .ini essa extensão já foi carregada. No php.ini ele está tentando buscar do local errado.

Perfeito Vinicius. Muito obrigado.

Abs.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software