Ubuntu 16.04 LTS에서 Mongodb PHP 확장을 설치하는 방법


27

Ubuntu 16.04 LTS를 실행 중이며 Mongodb를 PHP와 함께 사용하고 싶습니다. 이를 위해 나는 시도했다

sudo apt-get install php5-mongo

우분투 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긍정적 인 결과를 얻지 못했습니다
Vikash Kumar

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
Vivek Kodira

1
@ VivekKodira 아니오 Vicky R은 우분투 16.04 LTS를 사용하고 있기 때문에 대답하지 않았습니다. 기본적 으로이 php-mongodb를 수행하는 동안 php7.x가 설치되었습니다. 나는 그가 14에서 16까지 왔기 때문에 여전히 위에서 언급 한 것을 여전히 사용할 수 있다고 언급했다. 이것이 제가 제 의견을 답으로하지 않은 이유입니다.
bhordupur

답변:


52

mongodb 확장을 설치하려면 다음을 수행하십시오.

sudo apt-get install php-mongodb

2
이것은 php7에 대해 어떻게 받아 들일 수 있습니까? 우분투 16.04 의이 명령은 php5.6 mongo no?
Ligemer

2
@Ligemer 16.04에는 기본 PHP로 php7.0이 있으므로 모든 메타 패키지는 7.0 버전의 해당 패키지를 설치합니다.
Videonauth

아아 네, 상기시켜 주셔서 감사합니다. 다른 ppa에서도 php5.6을 설치했으며 같은 패키지가 아니므로 오류가 발생했습니다. mongo의 일부 문서에는 필자가 사용한 pecl 확장 기능을 사용한다고 나와 있습니다.
Ligemer

1
패키지를 설치 한 후 Apache 서버를 다시 시작하는 것을 잊지 마십시오.
TheKarateKid

AWS Linux Ec2에 동일한 명령을 사용할 수 있습니까?
151291

8

지금까지 해결책을 찾았습니다. 그러나 나는 그것을 어떻게했는지 공유하고 싶다.

  • Ubuntu 16에 PHP 5.6 설치 (@http : //lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu 참조 )
  • 그런 다음 달렸다 sudo apt-get install php5.6-mongo

6

우분투 16.04에서 PHP 7.0을 사용하고 있습니다. 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 자동 시작) 다음 단계를 수행하십시오.

다음 명령을 입력하여 / 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 not found. Phpize는 빌드 환경을 만드는 데 사용되는 명령입니다. 이 오류는 pecl 확장을 설치할 때 나타날 수 있습니다. phpize 명령의이 문제를 해결하려면 사용자는 php5-dev 패키지를 설치해야합니다. 설치하려면 다음 명령을 입력하십시오 :

 $ sudo apt-get install php7.0-dev

그런 다음 /etc/php/7.0/apache2 디렉토리에있는 php.ini 파일에서 mongo db 확장자를 추가하십시오.

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

파일에 다음 줄을 추가하십시오.

확장 = 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 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 \
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.