'MongoClient' 클래스를 찾을 수 없습니다.
이 코드를 실행하려고 합니다.
<?php
$m = new MongoClient("mongodb://54.72.237.242");
$db = $m->tilbud;
?>
동일한 오류가 발생할 때마다:
Fatal error: Class 'MongoClient' not found in C:\xampp\htdocs\conexion.php
저는 하루 종일 이 문제에 대해 읽었지만, 무엇이든 제 문제를 해결합니다(제가 잘못하고 있는 것 같습니다).
php_mongo.dll을 다운받아서 xampp/php/ext로 복사해서 추가했습니다.extension=php_mongo.dll
php.ini 아카이브에 있습니다.
어떤 dll을 사용해야 할지 잘 몰라서 dll을 4개 더 추가했습니다.
extension=php_mongo-1.5.4-5.5-vc11-nts
extension=php_mongo-1.5.4-5.5-vc11
extension=php_mongo-1.5.4-5.5-vc11-nts-x86_64
extension=php_mongo-1.5.4-5.5-vc11-x86_64
그래서 저는 지금 경고를 하나 대신에 5개를 받고 있습니다.마지막에는 그 중 하나가 작동할 것으로 예상하고 나머지 4개는 삭제하겠습니다.
제가 시도한 것들은 문제가 없다고 확신합니다.
- extension_dir가 올바른 폴더를 가리키고 있습니다.
- 제가 수정한 php.ini는 xammp를 로드하는 것입니다.
- 피핀포는 몽고에 대해 아무것도 보여주지 않습니다.
뭘 더 해볼 수 있겠어요?
편집
나는 노력했다.
echo extension_loaded "mongo") ? ? "loaded\n" : "not loaded\n";
항상 '미탑재'라고 표시됩니다.
편집
드디어!문제는 DLL의 이름이었습니다.'php_mongo.dll'이어야 하며, 이 게시물 처음에 말씀드린 대로 풀네임 dll을 로드하려고 했습니다.그래서 나는 나에게 맞는 dll을 바꿨습니다 (extension=php_mongo-1.5.4-5.5-vc11
의 경우extension=php_mongo.dll
그리고 voila!
MongoDB PHP 드라이버를 설치하지 않았습니다. 이 링크를 참조하십시오. http://www.php.net/manual/en/mongo.installation.php
소스 업데이트
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
MongoDB PHP 드라이버 설치
sudo apt-get install php5-dev php5-cli php-pear -y
sudo pecl install mongo
php.ini 파일을 열고 파일에 추가합니다.
extension=mongo.so
Apache 다시 시작
sudo /etc/init.d/apache2 restart
기타 도움말 정보:
이것은 당신의 php.ini 파일을 찾는 데 도움이 될 것입니다.
php -i | grep 'Configuration File'
Ubuntu에서는 다음과 같이 표시됩니다.
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
cli(명령줄)에서 이 명령을 실행하므로 실제 php.ini의 경우 cli 대신 apache2 폴더로 이동합니다. :)
PHP 7이 설치된 상태로 이 페이지에 도착하는 사용자의 경우:
그MongoCLient
수업은 에 의해pecl install mongo
.그렇지만pecl/mongo
php7에는 사용할 수 없으며 다음을 위해 더 이상 사용되지 않습니다.pecl/mongodb
하지만 함께pecl/mongodb
MongoClient 대신 MongoDB\Driver\Manager를 사용해야 합니다(페이지의 경고에도 그렇게 표시됨).
자세한 내용은 여기를 참조하십시오.
즉, PHP 위에 추상화 계층이 필요합니다.MongoDB\Driver\Manager
mongodb/mongo-php-library에서 제공합니다.
다음과 같은 것들을 리팩터링해야 합니다.
\MongoClient
로.\MongoDB\Client
\MongoCollection
로.\MongoDB\Collection
\MongoClient->selectDB
로.\MongoDB\Client->selectDatabase
\MongoClient->listDBs
로.\MongoDB\Client->listDatabases
- 또한 출력은 배열이 아니라 반복기이므로 사용해야 합니다.
iterator_to_array
결과 개체 사용 방법에 대한 편집과 함께
- 또한 출력은 배열이 아니라 반복기이므로 사용해야 합니다.
\MongoCollection->getName
로.\MongoDB\Collection->getCollectionName
\MongoCollection->update
\MongoDB\Collection->updateOne
또는updateMany
\MongoCollection->remove
\MongoDB\Collection->deleteOne
\MongoCollection->batchInsert
\MongoDB\Collection->insertMany
답은 지시사항을 따르는 것입니다.새 mongodb 개체를 만들기 전에 반드시 필요한 매우 중요한 요구 사항 행을 누락했습니다.
<?php
require 'vendor/autoload.php';
$client = new MongoDB\Client("mongodb://localhost:27017");
물론 지침에 따라 프로젝트 루트에서 이 명령을 실행해야 합니다.
composer require mongodb/mongodb
동일한 오류가 발생하면 해결됩니다.
저는 리눅스 민트를 사용하고 있습니다.이 문제를 해결하기 위해 추가했습니다.extension=mongo.so
개의 두개디리에서토렉:
- /etc/sys5/cli/sys.ini
- /etc/sys5/sys2/sys.ini
드라이버를 설치합니다. 예를 들어 php5가 있습니다.6:
sudo apt-get install php5.6-mongo
이 페이지에서:
참고: Windows 사용자에 대한 추가 DLL 종속성:
이 확장자가 작동하려면 Windows 시스템 PATH에서 사용할 수 있어야 하는 DLL 파일이 있습니다.
당신의 php 버전과 dll 파일 버전은 동일해야 합니다. 버전이 동일하지 않으면 확인하고 사용 가능한 dll 버전에 따라 xampp php를 업데이트하십시오.
언급URL : https://stackoverflow.com/questions/24533938/class-mongoclient-not-found
'programing' 카테고리의 다른 글
Git로 파일 복사 작업 기록 (0) | 2023.07.13 |
---|---|
Mariadb Docker 컨테이너, 여러 문을 실행할 수 없습니다. (0) | 2023.07.13 |
mongoDB 쿼리 "WHERE _id > 임계값" (0) | 2023.07.13 |
SQL 쿼리 결과가 임시 테이블에 삽입되는 방법은 무엇입니까? (0) | 2023.07.13 |
명령줄에서 R 스크립트 실행 (0) | 2023.07.13 |