如何启用 PHP 的 SQLite3?

99

我正在尝试在Ubuntu上安装PHP的sqlite3。

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

当我运行phpinfo();时,我得到了:

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

如上所示,sqlite3已被启用。然而,当我使用时出现了“Class SQLite3 not found”的错误。

 new SQLite3("database");

有用的资源:https://zetcode.com/php/sqlite3/ - ggorlen
17个回答

238

尝试:

apt-get install php5-sqlite

那对我起作用了。


33
php5-sqlite3 软件包已经不存在了。 - momeara
5
对于CentOS系统,可以使用命令sudo yum install php-sqlite3 -y来安装php-sqlite3模块。 - user457586
5
这还在/etc/php5/apache2/conf.d目录中添加了一个PHP配置文件;它甚至重新启动了Apache,尽管由于某些原因我不得不再次重新启动才能使更改生效。 - EK0
12
或者,在Ubuntu 16.0.4 Xenial的情况下,执行sudo apt install php-sqlite3命令。 - Ejaz
1
回答不错,但我需要重新启动Apache才能看到模块(例如 sudo service apache2 restart)。 - swdev

44

对于PHP7,请根据您的PHP版本(7.0、7.2、7.4等)更改以下内容并运行

sudo apt-get install php7.0-sqlite3

并且重新启动Apache

sudo apache2ctl restart

7
针对 PHP 7.2 安装 SQLite,请执行以下命令:sudo apt-get install php7.2-sqlite - Salem
无法找到包php7.3-sqlite3。 - Kiee

40

编辑:这个答案已经过时,但不能被删除因为它被接受了。请参考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之后)。如果你不使用操作系统自带的包管理器,那么为什么还要使用这个操作系统呢?请使用它提供的工具。 - Brendan Long
26
这些都是过时的建议。例如:http://forum.linode.com/viewtopic.php?p=39974 - momeara
针对这种令人不爽的情况,最好的建议是:http://meta.stackoverflow.com/a/276564/2778484 和 http://meta.stackexchange.com/questions/78438/blatantly-wrong-accepted-answer(显然,通过编辑来修复答案并不可行,因为它已经超出了语法错误)。 - chappjc
4
今天是2015年,可以使用“apt-get install php5-sqlite”命令进行安装。 - Deproblemify
截至2021年:sudo apt-get install php-sqlite3 - haz

16

针对 Ubuntu 18.04 和 PHP 7.2:

sudo apt install php-sqlite3


在执行上述命令之前,您可能需要先执行“apt-get update”以确保无误执行。 - Valentine Shi

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

5

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的(文件)锁定系统存在问题。


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

3

适用于Ubuntu 20.04和PHP 8.2:

sudo apt update
sudo apt install php8.2-sqlite3
sudo phpenmod pdo_sqlite
sudo systemctl restart apache2

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

这对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接