як увімкнути sqlite3 для php?


92

Я намагаюся встановити sqlite3 для PHP в Ubuntu.

Я встановлюю apt-get php5-sqlite3та редагую php.iniдля включення розширення sqlite3.

Коли я біжу, phpinfo();я отримую

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

як показано вище, sqlite3увімкнено. Однак я отримую "Клас SQLite3 не знайдений", коли я використовую

 new SQLite3("database");

Відповіді:


38

Редагувати: Ця відповідь застаріла, але її не можна видалити, оскільки вона прийнята. Будь ласка, перегляньте рішення від Стейсі Річардс для правильної відповіді.

 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

Вирвано з форми ubuntu .


3
Другою до останньої команди має бути sudo checkinstall(після запуску sudo apt-get install checkinstall. Навіщо використовувати ОС з диспетчером пакетів, якщо ви не збираєтесь її використовувати?
Брендан Лонг

25
це зараз застаріла порада. наприклад, forum.linode.com/viewtopic.php?p=39974
momeara

1
Видаліть цю відповідь! Там є спосіб краще відповісти нижче, і голоси підтримати це сильно!
Charney Kaye

Я зробив наступну найкращу річ, редагуючи дуже видимими видами "пропустити це".
kiswa

4
Це apt-get install php5-sqliteсьогодні станом на 2015 рік
депроблеміфікувати

236

Спробуйте:

apt-get install php5-sqlite

Це спрацювало для мене.


28
пакет php5-sqlite3 вже не існує.
momeara

2
Безумовно, найпростіше рішення.
gustafbstrom

5
Або, у випадку з CentOS,sudo yum install php-sqlite3 -y
динаміт

5
Це також додало файл конфігурації PHP у /etc/php5/apache2/conf.d; він навіть перезапустив Apache, хоча з якихось причин мені довелося перезапустити його знову, щоб зміни набрали чинності.
EK0

12
Або, в разі Ubuntu 16.0.4 дружніх,sudo apt install php-sqlite3
Ejaz


15

Прийнята відповідь не є повною без інших інструкцій (перефразованих нижче) із теми форуму, пов’язаної з:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart

Я думав, вам також довелося змінити файл php.conf?
marciokoko

1
Принаймні в Ubuntu 14.04 цей крок не потрібен, оскільки вже є sqlite3.iniяк/etc/php5/mods-available/sqlite3.ini
Hibou57


4

Драйвер PDO SQLite3 називається SQLite, а не SQLite3, тому ви можете зробити:

new SQLite("database");

Для бази даних SQLite2:

new SQLite2("database");

3

одне, що я хочу додати, перш ніж спробувати встановити

apt-get install php5-sqlite

або

apt-get install php5-sqlite3 

шукати даний пакет доступний чи ні: -

 # apt-cache search 'php5'

Після цього ви отримуєте: -

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

Тут ви отримуєте уявлення про підтримку вашої версії чи ні .. у моїй системі я отримую php5-sqlite - модуль SQLite для php5, тому я вважаю за краще встановлювати

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

Це спрацювало для мене.


1

спробуйте це:

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
Я думаю, OP повинен знати деякі зміни конфігурації. Просто встановлення необхідного програмного забезпечення не відповідає на питання.
mtk

Обережно з цими командами! Хоча це може насправді працювати, було б корисно повідомити, що це призведе до видалення та очищення всіх пакунків, що починаються з "php5". Іншими словами, він видалить як основні файли, так і файли конфігурації.
adelriosantiago

це спрацювало для мене !!! Очищення, а потім повторне встановлення всіх цих речей було хорошим .... за винятком другої до останньої команди install php-sqlite ..... це те саме, що відбувається у другій команді? Можливо, це потрібно в певних випадках, але, здається, це для мене нічого не
зробило

1

У Centos 6.7, у моєму випадку, файл бібліотеки /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

Використовуйте лише:

sudo apt-get install php5-sqlite

і пізніше

sudo service apache2 restart

0

Залежить від версії PHP. Для php7.0 працюють такі команди:
sudo apt-get install php7.0-sqlite3
потім перезапустіть сервер Apache:
sudo service apache2 restart


0

Для дистрибутивів Debian. Нічого не працювало, поки я не додав основні сховища debian у джерела apt (я не знаю, як їх було видалено): sudo vi /etc/apt/sources.list

і додав

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

після цього sudo apt-get update(ви також можете оновити) і, нарештіsudo apt-get install php-sqlite3


0

Це потоне тут, але я вирішив свої проблеми з цим:

Наскільки я з'ясував, є дефектний файл в /usr/local/libзваних , libsqlite3.so.0який вказує на libsqlite3.so.0.8.6. Він був встановлений через пакети php7.3- *, наскільки я можу зрозуміти.

Я перейменував файл на випадок, якщо він для чогось знадобився. За командою:

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

Але ви також можете просто видалити його: rm libsqlite3.so.0

Потік, який привів мене до відповіді: посилання

Це вирішило мої проблеми, і, сподіваюся, вони вирішать і ваші :)


0

Спосіб Debian / Ubuntu для php-7.2, php-7.3 і php-7.4 (наприклад, [234]частина)

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

Обов’язково зверніть увагу, що в підсистемі Windows для Linux версії 1 (WSL1) система блокування (файлу) для SQlite порушена.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.