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.