如何为PHP启用sqlite3?


91

我正在尝试在Ubuntu中为PHP安装sqlite3。

我安装apt-get php5-sqlite3并编辑php.ini为包含sqlite3扩展。

当我跑步时phpinfo();我得到

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

如上所示,sqlite3已启用。但是,当我使用时,出现“找不到类SQLite3”

 new SQLite3("database");

Answers:


38

编辑:此答案已过时,但由于已被接受而无法删除。请查看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

ubuntu形式撕下。


3
第二个命令应该是sudo checkinstall(运行后sudo apt-get install checkinstall。如果不打算使用带有包管理器的OS,为什么要使用它?)
Brendan Long 2010年

25
现在这是过时的建议。例如:forum.linode.com/viewtopic.php?p = 39974
momeara,2012年

1
请删除此答案!有一种方式更好的回答以下,并投票支持它强烈!
Charney Kaye 2014年

通过以一种非常明显的“跳过此”方式进行编辑,我做了下一个最好的事情。
奇瓦

4
这是apt-get install php5-sqlite今天的2015年
Deproblemify

236

尝试:

apt-get install php5-sqlite

那对我有用。


28
php5-sqlite3软件包不再存在。
momeara 2012年

2
绝对是最简单的解决方案。
gustafbstrom

5
或者,在CentOS的情况下sudo yum install php-sqlite3 -y
炸药

5
这还在/etc/php5/apache2/conf.d中添加了一个PHP配置文件。它甚至重新启动了Apache,尽管出于某种原因我不得不重新启动它才能使更改生效。
EK0 2014年

12
或者,在Ubuntu 16.0.4 Xenial的情况下,sudo apt install php-sqlite3
Ejaz

33

对于PHP7,请使用

sudo apt-get install php7.0-sqlite3

并重新启动Apache

sudo apache2ctl restart

6
为php 7.2 sudo apt-get install php7.2-sqlite
塞勒姆

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 2014年

1
至少在Ubuntu 14.04,则不需要此步骤,因为已经有一个sqlite3.ini/etc/php5/mods-available/sqlite3.ini
Hibou57


4

SQLite3 PDO驱动程序名为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-php5的SQLite模块, 因此我更喜欢安装

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

这对我有用!!!清理然后重新安装所有这些东西是很好的。。。。。。也许在某些情况下需要使用它,但它似乎对我没有任何帮助
rikkitikkitumbo

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发行版。直到我在apt来源上添加了debian主存储库(我不知道如何删除它们)后,它才起作用: 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

请务必注意,在Linux子系统Windows 1版(WSL1)上,SQlite的(文件)锁定系统已损坏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.