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
.
이 문제를 해결하려면 어떻게해야합니까?
답변
mongodb 확장을 설치하려면 다음을 수행하십시오.
sudo apt-get install php-mongodb
답변
지금까지 해결책을 찾았습니다. 그러나 나는 그것을 어떻게했는지 공유하고 싶다.
- 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
답변
우분투 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";
}
답변
또는 PHP 7
sudo apt-get install php7.0-mongodb
답변
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 \