วิธีเปิดใช้งาน 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ถูกเปิดใช้งาน อย่างไรก็ตามฉันได้รับ "Class SQLite3 not found" เมื่อฉันใช้

 new SQLite3("database");

คำตอบ:


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

ฉีกจากรูปแบบอูบุนตู


3
คำสั่งที่ 2 ถึงสุดท้ายควรเป็นsudo checkinstall(หลังจากรันsudo apt-get install checkinstallแล้วทำไมต้องใช้ OS กับตัวจัดการแพ็คเกจถ้าคุณจะไม่ใช้
Brendan Long

25
ตอนนี้คำแนะนำนี้ล้าสมัยแล้ว เช่นforum.linode.com/viewtopic.php?p=39974
momeara

1
กรุณาลบคำตอบนี้! มีวิธีที่ดีกว่าคำตอบด้านล่างและออกเสียงลงคะแนนสำรองอย่างยิ่ง!
Charney Kaye

ฉันทำสิ่งที่ดีที่สุดถัดไปโดยการแก้ไขในประเภท 'ข้ามสิ่งนี้' ที่มองเห็นได้ชัดเจน
kiswa

4
เป็นapt-get install php5-sqliteวันนี้ของปี 2558
ทำให้เสื่อมเสีย

236

ลอง:

apt-get install php5-sqlite

ที่ได้ผลสำหรับฉัน


28
ไม่มีแพ็คเกจ php5-sqlite3 อีกต่อไป
momeara

2
ทางออกที่ง่ายที่สุดแน่นอน
gustafbstrom

5
หรือในกรณีของ CentOSsudo yum install php-sqlite3 -y
dynamitereed

5
นอกจากนี้ยังเพิ่มไฟล์กำหนดค่า PHP ใน /etc/php5/apache2/conf.d; มันยังรีสตาร์ท Apache แม้ว่าด้วยเหตุผลบางอย่างฉันต้องรีสตาร์ทอีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล
EK0

12
หรือในกรณีของ Ubuntu 16.0.4 Xenialsudo apt install php-sqlite3
Ejaz

34

สำหรับ PHP7 ใช้

sudo apt-get install php7.0-sqlite3

และรีสตาร์ท Apache

sudo apache2ctl restart

6
สำหรับ php 7.2 sudo apt-get install php7.2-sqlite
Salem

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

ไดรเวอร์ 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 - โมดูล 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

มันได้ผลสำหรับฉัน !!! การล้างออกแล้วติดตั้งสิ่งเหล่านี้ใหม่ทำได้ดี .... ยกเว้นคำสั่งที่สองถึงสุดท้ายติดตั้ง php-sqlite ..... นั่นคือสิ่งเดียวกับที่เกิดขึ้นในคำสั่งที่ 2? บางทีมันอาจจำเป็นในบางกรณี แต่ดูเหมือนจะไม่ทำอะไรฉันเลย
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

วิธี 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 เสีย


0

ขึ้นอยู่กับเวอร์ชันของ PHP สำหรับ php7.0 คำสั่งต่อไปนี้ทำงาน:
sudo apt-get install php7.0-sqlite3
จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Apache:
sudo service apache2 restart


0

สำหรับการแจกแจงแบบ 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

หัวข้อที่นำฉันไปสู่คำตอบ: ลิงค์

สิ่งนี้ช่วยแก้ปัญหาของฉันได้และฉันหวังว่าพวกเขาจะแก้ปัญหาของคุณได้เช่นกัน :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.