Ubuntu 16.04 LTS में Mongodb PHP एक्सटेंशन कैसे स्थापित करें


27

मैं Ubuntu 16.04 LTS चला रहा हूं और मैं PHP के साथ Mongodb का उपयोग करना चाहता हूं। इसके लिए मैंने कोशिश की

sudo apt-get install php5-mongo

जो Ubuntu 14.04 LTS के लिए पर्याप्त होगा, लेकिन मैं गलत था। मुझे त्रुटि संदेश मिल रहा है:

E: Unable to locate package php5-mongo

मैंने अभी मशीन OS अपग्रेड किया है Ubuntu 16.04 LTSऔर इसके mongodbसाथ उपयोग करना चाहता हूं PHP 7.0.4

तो मैं इसे हल करने के लिए क्या कर सकता हूं?


मैंने sudo apt-get install php7-mongoभी यह कोशिश की थी, लेकिन कोई सकारात्मक परिणाम नहीं मिला
विकाश कुमार

यदि आप php5- sudo add-apt-repository ppa:chris-lea/mongodb-drivers sudo apt-get update sudo apt-get install php5-mongo
mongo के

@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
विवेक कोदिरा

1
@VivekKodira नहीं, मैंने इसे एक उत्तर के रूप में नहीं रखा क्योंकि विक्की आर उबंटू 16.04 एलटीएस का उपयोग कर रहा था, जहां डिफ़ॉल्ट php7.x इस php-mongodb का प्रदर्शन करते समय स्थापित किया गया था। मैंने टिप्पणी की कि वह 14 से 16 के कारण आ रहा था, लेकिन फिर भी वह अभी भी उपयोग कर सकता है कि मैंने ऊपर क्या टिप्पणी की थी। यही कारण है कि मैंने अपनी टिप्पणी उत्तर के रूप में नहीं दी।
भोरूपुर

जवाबों:


52

मोंगोडब एक्सटेंशन स्थापित करने के लिए, करें:

sudo apt-get install php-mongodb

2
यह php7 के लिए स्वीकृत उत्तर कैसे है? Ubuntu 16.04 पर यह कमांड php5.6 मोंगो सं स्थापित करेगा?
Ligemer

2
@Ligemer 16.04 में डिफ़ॉल्ट PHP के रूप में php7.0 है, इसलिए सभी मेटा पैकेज उक्त लोगों के 7.0 संस्करण को स्थापित करते हैं।
वीडियोनौथ

आह हाँ, अनुस्मारक के लिए धन्यवाद, मेरे पास php5.6 है और साथ ही एक और ppa से स्थापित है और वही संकुल नहीं है जो मुझे त्रुटि के लिए ले गया। मोंगो से कुछ दस्तावेज़ीकरण pecl एक्सटेंशन का उपयोग करने के लिए कहते हैं जो कि मैंने उपयोग करके समाप्त कर दिया है।
Ligemer

1
पैकेज को स्थापित करने के बाद Apache सर्वर को पुनरारंभ करना न भूलें।
कर्कटकिड

क्या मैं AWS लिनक्स Ec2 के लिए समान कमांड का उपयोग कर सकता हूं?
151291

8

मुझे यकीन है कि आपको अब तक एक समाधान मिल गया है। हालांकि मैं यह साझा करना चाहता हूं कि मैंने यह कैसे किया:


6

मैं ubuntu 16.04 पर php संस्करण 7.0 का उपयोग कर रहा हूं। मैं mongo ड्राइवर / क्लाइंट को स्थापित करने के लिए एक विस्तृत जानकारी दे रहा हूं। पहले मैंने मैन्युअल रूप से मोंगॉडब स्थापित किया और फिर इसके लिए मोंगोडब-पीएचपी ड्राइवर।

1) मोंगो डीबी स्थापित करना। निम्नलिखित कमांड दर्ज करें:

$ 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

मोंगडब को एक सेवा के रूप में ठीक से लॉन्च करने के लिए, यानी स्वचालित रूप से मोंगोडब शुरू होने पर, सिस्टम शुरू होता है, निम्नलिखित चरणों का पालन करें:

कमांड में प्रवेश करके / etc / systemd / system / में फ़ाइल mongodb.service बनाएँ:

$ 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 डायरेक्टरी में है, मानगो db एक्सटेंशन जोड़ें:

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

फ़ाइल में निम्न पंक्ति जोड़ें:

विस्तार = mongo.so;

(आपको फ़ाइल का सही स्थान निर्दिष्ट करना पड़ सकता है। मेरे मामले में फ़ाइल /usr/lib/php/20151012/mongodb.so में थी।)

तो mongo db अपने ड्राइवर के साथ स्थापित है।

3) अब ध्यान रखें कि मोंगो-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 स्थापित किया है लेकिन ब्राउज़र पर जंपिंग लोड करने में त्रुटि हो रही है जैसे: त्रुटि: MongoDB PECL एक्सटेंशन स्थापित या सक्षम नहीं किया गया है
shivashankar m

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 \
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.