programing

PHP 7 MongoDB 클라이언트/드라이버를 설치하시겠습니까?

itmemos 2023. 7. 11. 21:35
반응형

PHP 7 MongoDB 클라이언트/드라이버를 설치하시겠습니까?

저는 PHP 7과의 작업을 시작하고 싶습니다만, 한 가지 문제가 방해가 되고 있습니다.데이터베이스는 주로 MongoDB를 사용하는데, 문제는 PHP 7용 MongoDB 드라이버/클라이언트를 설치하는 방법을 모른다는 것입니다.

5.과 현재설치 PHP 5.6이 Mac입니다.brew install php56-mongo요령을 터득합니다.

제 Mac이나 Ubuntu 설치에서 어떻게 이것을 작동시킬 수 있는지 누가 추천해줄 수 있나요?

미리 감사드리며, 정말 감사합니다!

PHP 버전 5.99.99 또는 이전 버전의 Mongo 확장자가 대체되었습니다.

https://pecl.php.net/package/mongo

대신 PHP 버전 7.99.99 또는 이전 버전의 최신 버전을 사용합니다.

https://pecl.php.net/package/mongodb

PECL/PEAR 확장을 자동으로 설치할 수 있습니다.

pecl install mongodb

또는 수동으로.

클래스도 변경되었습니다.

new \MongoClient(); // legacy class!

http://php.net/manual/en/book.mongo.php 을 참조하십시오.

new \MongoDB\Driver\Manager(); // new classes! 

http://php.net/manual/en/set.mongodb.php 을 참조하십시오.

호환성에 대한 추가 정보는 다음에서 확인할 수 있습니다.

https://docs.mongodb.org/ecosystem/drivers/php/ #호환성

PHP 7을 지원하는 MongoDB 드라이버는 12월 22일에 출시되었습니다. 브루와 같은 다운스트림 저장소는 업데이트되지 않았을 가능성이 높습니다.

현재업없확것다니습이 없습니다.php70-mongobrew 스크립트를 추가하기 위한 활성 꺼내기 요청이 있습니다.

그 동안 pecl을 통해 수동으로 설치할 수 있습니다.

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

우분투 16.04 lts에서 php 7.0과 MongoDB를 연결하는 방법은 무엇입니까?

다음 링크를 사용하여 LAMP를 설치합니다.Apache2, mysql 및 php 7.0을 설치합니다. https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

다음 링크의 단계를 사용하여 Ubuntu에 MongoDB Community Edition을 설치합니다.http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

다음 명령을 입력하여 pecl에서 mongoDB 확장을 가져옵니다.

sudo apt install php-pear

.ini 파일의 ini 합니다./etc/php/apache2/7.0

extension=mongodb.so

중요 - 클래스도 변경되었습니다.

new MongoClient();  //Old Class

new MongoDB\Driver\Manager(); // New Class

참조 - http://php.net/manual/en/set.mongodb.php

다음을 사용하여 mongodb 드라이버를 설치할 수 있습니다.

sudo apt-get install php-mongodb

아니요, 안타깝게도 기존 드라이버는 PHP7을 지원하지 않습니다.이것이 공식적으로 확정된 커밋JIRA 티켓입니다.

새로운 PHP MongoDB 드라이버는 여기 PECL(또는 GitHub)에서 찾을 수 있습니다.

설치 방법:

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

새 드라이버에 대한 설명서는 여기에서 찾을 수 있습니다.설명서의 참고 사항을 포함하고 싶습니다.

궁극적으로 이 확장은 단독으로 사용되지 않습니다.사용자는 mongo-php-library와 같은 하나 이상의 사용자 및 PHP 라이브러리와 함께 이 드라이버를 사용하는 것을 고려해야 합니다.

mongodb/ 의 드이버 / PHP보다 더 입니다.mongo드라이버를 사용하면 코드에서 직접 사용하는 것보다 드라이버 위에 더 높은 수준의 라이브러리를 사용하는 것이 좋습니다.

Mongo PHP 라이브러리(릴리스)는 PHP용 공식 고급 라이브러리이며 프로젝트에서 사용하는 것이 권장됩니다.아직 베타 버전이지만 PHP7을 사용하는 것이 가장 안전하고 미래에 대비할 수 있는 방법인 것 같습니다.

누군가가 레거시 드라이버를 PHP7로 포팅할 수도 있지만, 레거시 드라이버에는 다른 많은 문제가 있기 때문에 필요하지 않을 수도 있습니다.

  • 먼저 여기에 언급된 단계를 통해 기계에 MongoDB를 설치해야 합니다. https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
  • 다음 단계는 PHP와 함께 사용할 MongoDB 드라이버를 설치하는 것입니다.
  • PHP 버전 5.99.99 이상용 MongoDB 드라이버는 다음과 같습니다. https://pecl.php.net/package/mongo 을 설치하려면 다음을 사용해야 합니다.

    sudo apt-get install php-http php5-dev.

    sudo pecl 설치 몽고

  • PHP 7부터 새로운 드라이버 https://pecl.php.net/package/mongodb 설치 방법:sudo pecl install mongodb

  • 만약 당신이 라라벨 프레임워크나 프로젝트를 작곡가와 함께 사용하고 있다면, 이 라이브러리가 가장 적합합니다: https://github.com/jenssegers/Laravel-MongoDB 버전 3.0.0을 사용하여 PHP 7과 라라벨 5를 지원받거나 이전 버전 2.2.2 작곡가 명령을 사용하십시오.

    작곡가는 젠세거/mongodb가 필요합니다.

  • 작곡가 없이 다른 PHP 프레임워크를 사용하는 경우, 위에서 언급한 라이브러리에서도 사용되는 https://github.com/mongodb/mongo-php-library 라이브러리를 사용합니다.

저도 포기할 뻔 했어요.PHP 7x용 MongoDB 드라이버의 경우 Ubuntu 18.04 Pecl이 작동하지 않습니다.대신 다음을 시도합니다.

sudo apt-get install php-mongodb  

그런 다음 프로젝트 폴더의 기본에 mongodb 라이브러리를 설치합니다. https://docs.mongodb.com/php-library/current/tutorial/install-php-library/

composer require mongodb/mongodb
composer install

이는 운전자가 제공하는 하위 레벨 기능에 액세스합니다.

마지막으로 php.ini로 이동하여 추가합니다.

extension = mongo.so

Apache를 다시 시작합니다.

테스트하려면 php 파일에 추가해 보십시오.

<?php
     require_once __DIR__ . "/vendor/autoload.php";
     $collection = (new MongoDB\Client)->test->users;
     print_r($collection);
?>

오래된 질문이지만 새로운 훌륭한 해결책입니다.필요한 모든 것을 설치하려면 Mongostead7 자동 스크립트를 사용하면 됩니다.저를 위해 잘 작동했습니다.추가 작업이 필요하지 않습니다.

다음과 같이 사용합니다.

sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | sudo sh

답변을 보완하고 제게 도움이 된 내용을 게시합니다.

1은 램프 https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 을 설치하기 위해 이 가이드를 따릅니다(세 번째 단계는 mongo 클라이언트를 설치하는 경우에만 필요함).)

2 $ sudo apt-get install php7.0-dev

3 $ sudo pecl install mongodb

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

파일에 다음 행을 추가합니다.

확장자 = mongo.그래서;

파일의 정확한 위치를 지정해야 할 수도 있습니다.제 경우 파일은 /usr/lib/slot/20151012/mongodb.so 에 있습니다.)

이상으로 php 7.0용 mongo 클라이언트를 설치합니다.

저는 프란시 티와리의 답변을 보완하고 있습니다.

UBUNTU 16.0.4 (2016.12.07)

PHP-MONGODB 드라이버 설치: 명령:
sudo pecl install mongodb -> resultat : 빌드 프로세스가 성공적으로 완료됨 '/usr/lib/slot/20151012/mongodb.so ' 설치 ok: channel://pecl.php.net/mongodb-1.2.0 구성 옵션 "slot_ini"가 php.ini 위치로 설정되지 않았습니다. "slota=mongodb.so "를 php.ini에 추가해야 합니다.

                    -> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so"
            - sudo systemctl restart apache2.service
            https://secure.php.net/manual/en/mongodb.installation.pecl.php
            - create 2 new files called "30-mongodb.ini" in both path to add the extension to your server:
                -/etc/php/7.0/fpm/conf.d/30-mongodb.ini
                -/etc/php/7.0/cli/conf.d/30-mongodb.ini
                Commandes :
                    sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini

                        -> add "extension=mongodb.so"

                    sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini

                        -> add "extension=mongodb.so"


            - Test if the mongodb extension is running in your server :
                Commandes :
                    php --ini

독트린MongoDB 번들 설치 : http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html, http://www.doctrine-project.org/2016/06/09/odm-1-1-0-and-1-0-6.html,

    Commandes :
        - cd
        - cd my_project_name
        - ls -a composer*
            -> résultat : composer.json  composer.lock
        - sudo nano composer.json
        - Add to the composer.json in "require" array
            "doctrine/mongodb-odm": "^1.0",
            "doctrine/mongodb-odm-bundle": "^3.0"
        - Add to the composer.json in "require" array
            "alcaeus/mongo-php-adapter": "^1.0",
            "ext-mongo": "*"
        - Add a new array :
            "provide": 
            {
                "ext-mongo": "1.6.12"
            }
        - Move 
        sudo cp -i /usr/lib/php/20151012/mongodb.so /etc/php/7.0/cli

이 문제를 해결하려면 적어도 10개의 평판이 있어야 합니다

저는 ubuntu 16.04에서 php 버전 7.0을 사용하고 있습니다.mongo 드라이버/클라이언트 설치에 대한 자세한 정보를 드립니다.먼저 수동으로 mongodb를 설치하고 mongodb-php 드라이버를 설치했습니다.

mongobd를 설치하는 중입니다.다음 명령을 입력합니다.

$ 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

mongo-php 드라이버 설치:

$ sudo pecl install mongodb

또한 phpize를 찾을 수 없습니다.라는 오류 메시지가 표시될 수 있습니다.Pphpize는 빌드 환경을 만드는 데 사용되는 명령입니다.이 오류는 pecl 확장을 설치할 때 나타날 수 있습니다.phpize 명령을 찾을 수 없는 이 문제를 해결하려면 사용자가 php5-dev 패키지를 설치해야 합니다.설치하려면 다음 명령을 입력합니다.

 $ sudo apt-get install php7.0-dev

그런 다음 /etc/php/7.0/apache2 디렉토리에 있는 php.ini 파일에 다음과 같은 mongoddb 확장자를 추가합니다.

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

파일에 다음 행을 추가합니다.

확장자 = mongo.그래서;

파일의 정확한 위치를 지정해야 할 수도 있습니다.제 경우 파일은 /usr/lib/slot/20151012/mongodb.so 에 있습니다.)

그래서 몽고드는 드라이버와 함께 설치됩니다.

이제 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";
    }

이것은 Ubuntu for PHP7에서 저에게 효과가 있었습니다.

sudo apt-get install php7.0-mongodb

언급URL : https://stackoverflow.com/questions/34486808/installing-the-php-7-mongodb-client-driver

반응형