Cách cài đặt tiện ích mở rộng PHP Mongodb trong Ubuntu 16.04 LTS


27

Tôi đang chạy Ubuntu 16.04 LTS và tôi muốn sử dụng Mongodb với PHP. Đối với điều này, tôi đã cố gắng

sudo apt-get install php5-mongo

Thế là đủ cho Ubuntu 14.04 LTS là đủ nhưng tôi đã nhầm. Tôi nhận được thông báo lỗi là:

E: Unable to locate package php5-mongo

Tôi vừa mới nâng cấp hệ điều hành máy tính để Ubuntu 16.04 LTSvà muốn sử dụng mongodbvới PHP 7.0.4.

Vậy tôi có thể làm gì để giải quyết điều này?


Tôi cũng đã thử điều này sudo apt-get install php7-mongonhưng không có kết quả khả quan nào
Vikash Kumar

nếu bạn muốn với php5-mongo thì hãy thử điều nàysudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
bhordupur

@bhordupur kho lưu trữ này dường như không hợp lệ. Ngoài ra, bạn đã xem xét làm cho điều này một câu trả lời thay thế? 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 Không, tôi không đặt câu trả lời vì Vicky R đang sử dụng Ubuntu 16.04 LTS theo mặc định php7.x được cài đặt trong khi thực hiện php-mongodb này. Tôi nhận xét rằng do anh ấy đến từ 14 đến 16 nhưng anh ấy vẫn có thể sử dụng những gì tôi đã nhận xét ở trên. Đây là lý do tại sao tôi không đưa ra nhận xét của mình làm câu trả lời.
bhordupur

Câu trả lời:


52

Để cài đặt tiện ích mở rộng mongodb, hãy làm:

sudo apt-get install php-mongodb

2
Làm thế nào đây là câu trả lời được chấp nhận cho php7? Lệnh này trên Ubuntu 16.04 sẽ cài đặt php5.6 mongo không?
Ligemer

2
@Ligemer 16.04 có php7.0 là PHP mặc định, do đó tất cả các gói meta đều cài đặt phiên bản 7.0 của các gói đã nói.
Videonauth

À vâng, cảm ơn vì đã nhắc nhở, tôi đã cài đặt php5.6 từ một ppa khác và không phải là các gói tương tự dẫn đến lỗi. Một số tài liệu từ mongo nói rằng hãy sử dụng phần mở rộng pecl, đó là những gì tôi đã sử dụng.
Ligemer

1
Đừng quên khởi động lại máy chủ Apache sau khi cài đặt gói.
TheKarateKid

Tôi có thể sử dụng lệnh tương tự cho AWS Linux Ec2 không?
151291


6

Tôi đang sử dụng phiên bản php 7.0 trên Ubuntu 16.04. Tôi đang cung cấp một thông tin chi tiết để cài đặt trình điều khiển / máy khách mongo. Đầu tiên tôi cài đặt thủ công mongodb và sau đó là trình điều khiển mongodb-php cho nó.

1) Cài đặt mongo db. Nhập các lệnh sau:

$ 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

Để khởi chạy Mongdb đúng cách như một dịch vụ, tức là tự động khởi động Mongodb khi hệ thống khởi động, hãy làm theo các bước sau:

Tạo tập tin mongodb.service trong / etc / systemd / system / bằng cách nhập lệnh:

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

Dán các nội dung sau vào đó:

[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

Sau đó nhập các lệnh sau:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2) Cài đặt trình điều khiển mongo-php:

$ sudo pecl install mongodb

Ngoài ra, bạn có thể nhận được lỗi: không tìm thấy phpize. Phpize là một lệnh được sử dụng để tạo môi trường xây dựng. Lỗi này có thể xuất hiện tại thời điểm cài đặt bất kỳ tiện ích mở rộng nào. Để giải quyết vấn đề này của lệnh phpize không tìm thấy, người dùng phải cài đặt gói php5-dev. Để cài đặt, hãy nhập lệnh:

 $ sudo apt-get install php7.0-dev

Sau đó, trong tệp php.ini nằm trong thư mục /etc/php/7.0/apache2, hãy thêm phần mở rộng db mongo:

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

Thêm dòng sau vào tệp:

mở rộng = mongo.so;

(Bạn có thể cần chỉ định vị trí chính xác của tệp. Trong trường hợp của tôi, tệp nằm trong /usr/lib/php/20151012/mongodb.so.)

Vì vậy, db mongo được cài đặt cùng với trình điều khiển của nó.

3) Bây giờ hãy nhớ rằng các lớp mongo-php đã được thay đổi. Hầu hết các tài nguyên có sẵn trong mạng đưa ra giải pháp sử dụng các lớp cũ được thay thế. Dưới đây là các liên kết mà bạn có thể tham khảo:

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

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

Dưới đây là một số lệnh cho các hoạt động cơ sở dữ liệu cơ bản:

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

Để chèn dữ liệu vào cơ sở dữ liệu:

$bulk = new MongoDB\Driver\BulkWrite;

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

$bulk->insert($doc);

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

Để tìm nạp dữ liệu:

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

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

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

1

hoặc cho php 7

sudo apt-get install php7.0-mongodb

chúng tôi đã cài đặt mongodb nhưng lỗi khi tải jumpset trên trình duyệt như: Lỗi: Tiện ích mở rộng MongoDB PECL chưa được cài đặt hoặc bật
shivashankar m

0

Tôi đang sử dụng cái này trên Dockerfile của mình:

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 \
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.