làm thế nào để kích hoạt sqlite3 cho php?


92

Tôi đang cố gắng cài đặt sqlite3 cho PHP trong Ubuntu.

Tôi cài đặt apt-get php5-sqlite3và chỉnh sửa php.iniđể bao gồm phần mở rộng sqlite3.

Khi tôi chạy phpinfo();tôi nhận được

SQLITE3
SQLite3 support  enabled  
sqlite3 library version  3.4.2  

như hình trên, sqlite3được kích hoạt. Tuy nhiên, tôi nhận được "Không tìm thấy lớp SQLite3" khi tôi sử dụng

 new SQLite3("database");

Câu trả lời:


38

Chỉnh sửa: Câu trả lời này đã lỗi thời, nhưng không thể xóa vì nó được chấp nhận. Hãy xem lời giải của Stacey Richards để có câu trả lời chính xác.

 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

Được tách từ biểu mẫu ubuntu .


3
Thứ 2 đến lệnh cuối cùng nên được sudo checkinstall(sau khi chạy sudo apt-get install checkinstallTại sao sử dụng một hệ điều hành với một người quản lý gói nếu bạn sẽ không sử dụng nó.?
Brendan dài

25
đây là lời khuyên đã lỗi thời. ví dụ: forum.linode.com/viewtopic.php?p=39974
momeara

1
Vui lòng xóa câu trả lời này! Có một cách trả lời tốt hơn bên dưới và các phiếu bầu ủng hộ mạnh mẽ!
Charney Kaye

Tôi đã làm điều tốt nhất tiếp theo bằng cách chỉnh sửa theo kiểu 'bỏ qua điều này' rất dễ thấy.
kiswa

4
Đó là apt-get install php5-sqlitengày hôm nay như năm 2015
Deproblemify

236

Thử:

apt-get install php5-sqlite

Điều đó đã làm việc cho tôi.


28
gói php5-sqlite3 không tồn tại nữa.
momeara

2
Chắc chắn là giải pháp dễ dàng nhất.
gustafbstrom

5
Hoặc, trong trường hợp của CentOS,sudo yum install php-sqlite3 -y
kích hoạt vào

5
Điều này cũng đã thêm một tệp cấu hình PHP trong /etc/php5/apache2/conf.d; nó thậm chí còn khởi động lại Apache, mặc dù vì một số lý do tôi phải khởi động lại nó một lần nữa để thay đổi có hiệu lực.
EK0

12
Hoặc, trong trường hợp của Ubuntu 16.0.4 Xenial,sudo apt install php-sqlite3
Ejaz

34

Đối với PHP7, hãy sử dụng

sudo apt-get install php7.0-sqlite3

và khởi động lại Apache

sudo apache2ctl restart

6
cho php 7.2 sudo apt-get install php7.2-sqlite
Salem

15

Câu trả lời được chấp nhận sẽ không hoàn thành nếu không có phần hướng dẫn còn lại (được diễn giải bên dưới) từ chuỗi diễn đàn được liên kết đến:

cd /etc/php5/conf.d

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

sudo /etc/init.d/apache2 restart

Tôi nghĩ rằng bạn cũng phải sửa đổi tệp php.conf?
marciokoko

1
Ít nhất trên Ubuntu 14.04, bước này là không cần thiết, vì đã có một sqlite3.ininhư/etc/php5/mods-available/sqlite3.ini
Hibou57

10

Đối với Ubuntu 18.04 và PHP 7.2:

sudo apt install php-sqlite3


Bạn cần thực hiện apt-get updatetrước lệnh trên để lệnh được thực thi không có lỗi.
Valentine Shi

4

Trình điều khiển SQLite3 PDO được đặt tên là SQLite, không phải SQLite3, vì vậy bạn có thể thực hiện:

new SQLite("database");

Đối với cơ sở dữ liệu SQLite2:

new SQLite2("database");

3

một điều tôi muốn thêm, trước khi bạn cố gắng cài đặt

apt-get install php5-sqlite

hoặc là

apt-get install php5-sqlite3 

tìm kiếm gói đã cho có sẵn hay không: -

 # apt-cache search 'php5'

Sau đó bạn nhận được: -

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

Ở đây bạn có ý tưởng về việc phiên bản của bạn có hỗ trợ hay không .. trong hệ thống của tôi, tôi nhận được php5-sqlite - mô-đun SQLite cho php5 nên tôi muốn cài đặt

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

Điều đó đã làm việc cho tôi.


1

thử cái này:

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
Tôi đoán OP cần biết một số thay đổi cấu hình. Chỉ cài đặt phần mềm cần thiết không trả lời được câu hỏi.
mtk,

Hãy cẩn thận với những lệnh này! Mặc dù điều này thực sự có thể hoạt động nhưng sẽ rất hữu ích nếu thông báo rằng điều này sẽ xóa và xóa tất cả các gói bắt đầu bằng "php5". Nói cách khác, nó sẽ loại bỏ cả tệp lõi và tệp cấu hình.
adelriosantiago 22-07-16

điều này đã làm việc cho tôi !!! Việc dọn dẹp và sau đó cài đặt lại tất cả những thứ này đều tốt .... ngoại trừ lệnh thứ hai đến lệnh cuối cùng cài đặt php-sqlite ..... đó là điều tương tự xảy ra trong lệnh thứ 2? Có lẽ nó cần thiết trong những trường hợp nhất định, nhưng nó dường như không phải làm gì đối với tôi
rikkitikkitumbo

1

Trong Centos 6.7, trong trường hợp của tôi, tệp thư viện /usr/lib64/php/modules/sqlite3.so bị thiếu.

yum install php-pdo 

vim /etc/php.d/sqlite3.ini
; Enable sqlite3 extension module
extension=sqlite3.so

sudo service httpd restart

1

Chỉ sử dụng:

sudo apt-get install php5-sqlite

và sau đó

sudo service apache2 restart

0

Phụ thuộc vào phiên bản PHP. Đối với php7.0, các lệnh sau hoạt động:
sudo apt-get install php7.0-sqlite3
sau đó khởi động lại máy chủ Apache:
sudo service apache2 restart


0

Đối với các bản phân phối Debian. Không có gì hoạt động cho đến khi tôi thêm các kho lưu trữ chính debian trên các nguồn apt (tôi không biết chúng đã bị xóa như thế nào): sudo vi /etc/apt/sources.list

và thêm

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

sau đó sudo apt-get update(bạn cũng có thể nâng cấp) và cuối cùngsudo apt-get install php-sqlite3


0

Điều này sẽ chết ở đây, nhưng tôi đã khắc phục sự cố của mình với điều này:

Theo như tôi đã phát hiện ra, có một tệp bị lỗi /usr/local/libđược gọi là libsqlite3.so.0trỏ đến libsqlite3.so.0.8.6. Nó đã được cài đặt thông qua các gói php7.3- * theo như tôi có thể nói.

Tôi đã đổi tên tệp trong trường hợp cần thiết cho việc gì đó. Với lệnh:

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

Nhưng bạn cũng có thể xóa nó: rm libsqlite3.so.0

Chủ đề dẫn tôi đến câu trả lời: liên kết

Điều này đã giải quyết được vấn đề của tôi và tôi hy vọng chúng cũng giải quyết được vấn đề của bạn :)


0

Cách Debian / Ubuntu cho php-7.2, php-7.3 & php-7.4 (ví dụ: [234]phần)

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

Hãy nhớ lưu ý rằng trên Hệ thống con của Windows dành cho Linux phiên bản 1 (WSL1), hệ thống khóa (tệp-) cho SQlite bị hỏng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.