ich von PHP zu verbinden bin versucht zu MongoDB 7.Docker php mongodb Weitergabe Links MongoDB Verbindung
Ich habe nginx Container, php-fpm Behälter und mongodb Behälter.
Ich installierte Mongodb-Treiber mit Pecl und es wird in phpinfo() angezeigt, Mongodb ver. 1.2.3. Zusätzlich habe ich mongodb/mongodb mit Composer installiert.
verknüpft ich meine Container MongoDB (zB --link mongodb_container:mongodb
)
Jetzt, als ich zu bin versucht:
$collection = (new Client('mongodb'))->streamflixmongodb->videos;
würde ich einen Fehler:
Fatal error: Uncaught MongoDB\Driver\Exception\InvalidArgumentException:
Failed to parse MongoDB URI: 'mongodb' in /vendor/mongodb/mongodb/src/Client.php:81 Stack trace:
#0 /vendor/mongodb/mongodb/src/Client.php(81): MongoDB\Driver\Manager->__construct('mongodb', Array, Array)
#1 /var/www/html/test.php(24): MongoDB\Client->__construct('mongodb')
#2 {main} thrown in /vendor/mongodb/mongodb/src/Client.php on line 81
Da Verbindungen mit beginnen sollte mongodb: //
Zusätzlich, wenn ich versuche:
$collection = (new Client('mongodb://mongodb:27015'))->streamflixmongodb->videos;
ich die folgende Fehlermeldung erhalten:
Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException:
No suitable servers found (`serverSelectionTryOnce` set):
[connection timeout calling ismaster on 'mongodb:27015'] in
/vendor/mongodb/mongodb/src/Collection.php:513 Stack trace: #0
/vendor/mongodb/mongodb/src/Collection.php(513):
MongoDB\Driver\Manager->selectServer(Object(MongoDB\Driver\ReadPreference))
#1 /var/www/html/test.php(27): MongoDB\Collection->find('.mp4')
#2 {main} thrown in /vendor/mongodb/mongodb/src/Collection.php on line 513
Die Fehler erzeugt werden, wenn ich laufen:
var_dump($collection->find());
Was ist der richtige Weg Links zu neuen mongodb in PHP zu übergeben? Vorher benutzte ich älteren Mongo mit php5 und es war in Ordnung.
mein Docker ps -a
93ce6947f2d8 vignatjevs/nginx "/bin/sh -c 'servi..." 2 days ago Up 57 seconds 0.0.0.0:8082->80/tcp, 0.0.0.0:32814->443/tcp streamflix
569307612b50 vignatjevs/php-fpm "/app-entrypoint.s..." 2 days ago Up 2 minutes 9000/tcp streamflix-php-fpm
03decea6dfa7 composer "/docker-entrypoin..." 2 days ago Exited (0) 2 minutes ago composer
c01b48fcdda3 jenkins "/bin/tini -- /usr..." 3 days ago Up 21 hours 50000/tcp, 0.0.0.0:49001->8080/tcp clever_swartz
d16ace0397be tutum/mongodb "mongod --smallfiles" 6 days ago Up 21 hours 0.0.0.0:27017->27017/tcp, 0.0.0.0:28017->28017/tcp mongodb_streamflix
72e7bca2e2b7 phpmyadmin/phpmyadmin "/run.sh phpmyadmin" 12 days ago Up 21 hours 0.0.0.0:8080->80/tcp streamflix_admin
a0988be5018a centurylink/mysql "/usr/local/bin/run" 12 days ago Up 21 hours 0.0.0.0:3306->3306/tcp, 0.0.0.0:6603->3306/tcp streamflix-mysql-server
dein 'docker ps -a' sagt dein mongodb container ist' mongodb_streamflix' nicht 'mongodb', Also verbinde deinen container mit mongodb mit ...' --link mongodb_streamflix: mongodb_streamflix'. Und in deinem Container verbinde dich mit mongodb mit '$ collection = (neuer Klient ('mongodb: // mongodb_streamflix: 27015')) -> streamflixmon godb-> videos;' und lass mich wissen, was passiert. –
Hallo, Entschuldigung, dass ich das nicht am Firstplace geklärt habe. Diese Verbindung war nur ein Beispiel. Mein Mongodb ist verlinkt mit --link mongodb_streamflix: mongodb –