Mongodb PHP eklentisi Ubuntu 16.04 LTS’de nasıl kurulur?


27

Ubuntu 16.04 LTS kullanıyorum ve Mongodb'u PHP ile kullanmak istiyorum. Bunun için denedim

sudo apt-get install php5-mongo

Ubuntu için yeterli olan 14.04 LTS yeterli olacaktır ancak yanılmışım. Hata mesajı alıyorum:

E: Unable to locate package php5-mongo

Sadece makine OS yükseltilmiş ettik Ubuntu 16.04 LTSve kullanmak istediğini mongodbile PHP 7.0.4.

Peki bunu çözmek için ne yapabilirim?


Bunu da denemiştim sudo apt-get install php7-mongoama olumlu bir sonuç
alamadım

php5-mongo ile istiyorsanız o zaman bunu deneyinsudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
bhordupur

@bhordupur bu depo geçersiz görünüyor. Ayrıca bunun yerine bir cevap vermeyi düşündün mü? 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 Hayır Bir cevap olarak bunu söylemedim çünkü Vicky R Ubuntu 16.04 LTS kullanıyordu. 14-16 yaşlarında geldiği için yine de yukarıda söylediklerimi yine de kullanabileceğini yorumladım. Bu yüzden yorumumu cevap olarak yazmadım.
bhordupur

Yanıtlar:


52

Mongodb uzantısını yüklemek için şunu yapın:

sudo apt-get install php-mongodb

2
Bu nasıl php7 için kabul edilen cevap? Ubuntu 16.04'teki bu komut php5.6 mongo no?
Ligemer

2
@Ligemer 16.04 varsayılan PHP olarak php7.0'a sahiptir, bu nedenle tüm meta paketleri bahsedilenlerin 7.0 versiyonunu kurar.
Videonauth

ahh evet, hatırlatıcı için teşekkürler, başka bir ppa'dan da php5.6 yükledim ve beni hataya götüren aynı paketler değil. Mongo'dan gelen bazı belgeler, kullanmaya başladığım pecl uzantısını kullandığını söylüyor.
Ligemer

1
Paketi yükledikten sonra Apache sunucusunu yeniden başlatmayı unutmayın.
TheKarateKid

AWS Linux Ec2 için de aynı komutu kullanabilir miyim?
151291


6

PHP 16.0 ubuntu sürüm 16.04 kullanıyorum. Mongo sürücüsünü / istemcisini kurmak için detaylı bilgi veriyorum. İlk önce manuel olarak mongodb ve ardından mongodb-php sürücüsünü yükledim.

1) mongo db'nin kurulması. Aşağıdaki komutları girin:

$ 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’un düzgün bir şekilde servis olarak başlatılabilmesi için, yani sistem başladığında otomatik olarak Mongodb’un başlatılması için aşağıdaki adımları izleyin:

Komutu girerek / etc / systemd / system / içinde mongodb.service dosyasını oluşturun:

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

Aşağıdaki içerikleri içine yapıştırın:

[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

Ardından aşağıdaki komutları girin:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2) mongo-php sürücüsünün kurulumu:

$ sudo pecl install mongodb

Ayrıca hata alabilirsiniz: phpize bulunamadı. Phpize, bir yapı ortamı oluşturmak için kullanılan bir komuttur. Bu hata, herhangi bir pecl uzantısının yüklenmesi sırasında ortaya çıkabilir. Bulunamayan phpize komutunun bu problemini çözmek için kullanıcının php5-dev paketini kurması gerekir. Yüklemek için komutu girin:

 $ sudo apt-get install php7.0-dev

Ardından /etc/php/7.0/apache2 dizinindeki php.ini dosyasına mongo db uzantısını ekleyin:

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

Aşağıdaki satırı dosyaya ekleyin:

uzantı = mongo.so;

(Dosyanın tam yerini belirtmeniz gerekebilir. Benim durumumda dosya /usr/lib/php/20151012/mongodb.so.)

Böylece mongo db, sürücüyle birlikte kurulur.

3) Şimdi mongo-php sınıflarının değiştirildiğini aklınızda bulundurun. Ağdaki mevcut kaynakların çoğu, değiştirilen eski sınıfları kullanarak çözümler sunar. Aşağıda başvurabileceğiniz bağlantılar:

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

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

Temel veritabanı işlemleri için bazı komutlar:

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

Veritabanına veri eklemek için:

$bulk = new MongoDB\Driver\BulkWrite;

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

$bulk->insert($doc);

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

Veri almak için:

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

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

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

1

veya php 7 için

sudo apt-get install php7.0-mongodb

biz mongodb yükledik ama tarayıcıya jumpset yüklenirken hata oluştu: Hata: MongoDB PECL uzantısı yüklenmemiş veya etkinleştirilmemiştir
shivashankar m

0

Bunu Docker dosyamda kullanıyorum:

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 \
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.