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.