วิธีการติดตั้ง Mongodb PHP extension ใน Ubuntu 16.04 LTS


27

ฉันใช้ Ubuntu 16.04 LTS และฉันต้องการใช้ Mongodb กับ PHP สำหรับสิ่งนี้ฉันพยายาม

sudo apt-get install php5-mongo

ซึ่งเพียงพอสำหรับ Ubuntu 14.04 LTS จะเพียงพอ แต่ฉันผิด ฉันได้รับข้อความแสดงข้อผิดพลาดเป็น:

E: Unable to locate package php5-mongo

ฉันได้รับการอัปเกรดระบบปฏิบัติการเพียงเครื่องไปUbuntu 16.04 LTSและต้องการที่จะใช้กับmongodbPHP 7.0.4

ดังนั้นฉันจะทำอย่างไรเพื่อแก้ปัญหานี้


ฉันได้ลองแล้วsudo apt-get install php7-mongoแต่ก็ไม่ได้ผลลัพธ์ที่เป็นบวก
Vikash Kumar

ถ้าคุณต้องการด้วย php5-mongo ให้ลองสิ่งนี้sudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
bhordupur

@bhordupur ที่เก็บนี้ดูเหมือนว่าไม่ถูกต้อง คุณคิดว่าจะให้คำตอบแทนหรือไม่? W: The repository 'http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu xenial Release' does not have a Release file. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details. E: Failed to fetch http://ppa.launchpad.net/chris-lea/mongodb-drivers/ubuntu/dists/xenial/main/binary-amd64/Packages 404 Not Found
Vivek Kodira

1
@VivekKodira ไม่ฉันไม่ได้ใส่คำตอบนั้นเพราะ Vicky R กำลังใช้ Ubuntu 16.04 LTS โดยที่ php7.x เริ่มต้นติดตั้งอยู่ในขณะที่ดำเนินการ php-mongodb นี้ ฉันแสดงความคิดเห็นว่าเนื่องจากเขามาจาก 14 ถึง 16 แต่เขายังคงสามารถใช้สิ่งที่ฉันแสดงความคิดเห็นข้างต้น นี่คือเหตุผลที่ฉันไม่ได้ใส่ความคิดเห็นของฉันเป็นคำตอบ
bhordupur

คำตอบ:


52

หากต้องการติดตั้งส่วนขยาย MongoDB ให้ทำ:

sudo apt-get install php-mongodb

2
นี่เป็นคำตอบที่ยอมรับได้สำหรับ php7 อย่างไร คำสั่งนี้บน Ubuntu 16.04 จะติดตั้ง php5.6 mongo หรือไม่?
Ligemer

2
@Ligemer 16.04 มี php7.0 เป็น PHP เริ่มต้นดังนั้นแพ็คเกจเมตาทั้งหมดจึงติดตั้งเวอร์ชั่น 7.0 ของเวอร์ชั่นดังกล่าว
Videonauth

อ่าใช่ขอบคุณสำหรับการเตือนฉันติดตั้ง php5.6 เช่นกันจาก ppa อื่นและไม่ใช่แพ็คเกจเดียวกันซึ่งทำให้ฉันเกิดข้อผิดพลาด เอกสารบางส่วนจาก Mongo บอกว่าจะใช้ส่วนขยาย pecl ซึ่งเป็นสิ่งที่ฉันลงเอยด้วยการใช้
Ligemer

1
อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ Apache หลังจากติดตั้งแพคเกจ
TheKarateKid

ฉันสามารถใช้คำสั่งเดียวกันสำหรับ AWS Linux Ec2 ได้หรือไม่
151291


6

ฉันใช้ php เวอร์ชั่น 7.0 บน Ubuntu 16.04 ฉันกำลังให้ข้อมูลรายละเอียดสำหรับการติดตั้งไดรเวอร์ / ไคลเอ็นต์ mongo ก่อนอื่นฉันติดตั้ง mongodb ด้วยตนเองจากนั้นก็ติดตั้ง mongodb-php ด้วย

1) การติดตั้ง mongo db ป้อนคำสั่งต่อไปนี้:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

$ sudo apt-get update

$ sudo apt-get install -y mongodb-org

ในการเปิดใช้งาน Mongdb อย่างถูกต้องเช่นเริ่มต้น Mongodb โดยอัตโนมัติเมื่อระบบเริ่มทำงานให้ทำตามขั้นตอนต่อไปนี้:

สร้างไฟล์ mongodb.service ใน / etc / systemd / system / โดยป้อนคำสั่ง:

$ sudo nano /etc/systemd/system/mongodb.service

วางเนื้อหาต่อไปนี้ลงไป:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

จากนั้นป้อนคำสั่งต่อไปนี้:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2) การติดตั้งไดรเวอร์ mongo-php:

$ sudo pecl install mongodb

นอกจากนี้คุณอาจได้รับข้อผิดพลาด: ไม่พบ phpize Phpize เป็นคำสั่งที่ใช้ในการสร้างสภาพแวดล้อมการสร้าง ข้อผิดพลาดนี้อาจปรากฏขึ้นในเวลาของการติดตั้งส่วนขยาย pecl ใด ๆ เพื่อแก้ไขปัญหาของคำสั่ง phpize นี้ไม่พบผู้ใช้จะต้องติดตั้งแพ็คเกจ php5-dev หากต้องการติดตั้งให้ป้อนคำสั่ง:

 $ sudo apt-get install php7.0-dev

จากนั้นในไฟล์ php.ini ซึ่งอยู่ในไดเร็กทอรี /etc/php/7.0/apache2 ให้เพิ่มนามสกุล mongo db:

$ sudo nano /etc/php/7.0/apache2/php.ini 

เพิ่มบรรทัดต่อไปนี้ในไฟล์:

extension = mongo.so;

(คุณอาจต้องระบุตำแหน่งที่แน่นอนของไฟล์ในกรณีของฉันไฟล์นั้นอยู่ใน /usr/lib/php/20151012/mongodb.so)

ดังนั้น mongo db จึงถูกติดตั้งพร้อมกับไดรเวอร์

3) จำไว้ว่าคลาส mongo-php มีการเปลี่ยนแปลง ทรัพยากรที่มีอยู่ส่วนใหญ่ในเน็ตให้โซลูชันที่ใช้คลาสเก่าซึ่งแทนที่ ด้านล่างคือลิงค์ที่คุณสามารถอ้างถึง:

http://php.net/manual/en/set.mongodb.php

http://zetcode.com/db/mongodbphp/

นี่คือคำสั่งบางส่วนสำหรับการดำเนินการฐานข้อมูลพื้นฐาน:

$mng = new MongoDB\Driver\Manager(); // Driver Object created

ในการแทรกข้อมูลลงในฐานข้อมูล:

$bulk = new MongoDB\Driver\BulkWrite;

$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];

$bulk->insert($doc);

$mng->executeBulkWrite('dbName.collectionName', $bulk);

สำหรับดึงข้อมูล:

$query = new MongoDB\Driver\Query([]); 

$rows = $mng->executeQuery("dbName.collectionName", $query);

foreach ($rows as $row) 
    {
         echo "$row->data - $row->info\n";
    }

1

หรือสำหรับ PHP 7

sudo apt-get install php7.0-mongodb

เราได้ติดตั้ง MongoDB แต่ข้อผิดพลาดได้รับ jumpset โหลดบนเบราว์เซอร์ที่ชอบ: ข้อผิดพลาด: นามสกุล MongoDB PECL ยังไม่ได้รับการติดตั้งหรือเปิดการใช้งาน
เมตร Shivashankar

0

ฉันใช้สิ่งนี้กับ Dockerfile:

echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
curl -OL https://www.dotdeb.org/dotdeb.gpg \
    && apt-key add dotdeb.gpg \
    && rm dotdeb.gpg
apt-get update -y \
    && apt-get install -y \
        php7.0 \
        php7.0-mongodb \
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.