2017-01-06 9 views
0

Ich versuche den MongoDB-PHP-Treiber zu installieren, damit ich mich mit einem MongoDB-Server auf einem anderen Computer verbinden kann. Verwenden von PHP 5.6 unter AWS Linux.MongoDB PHP-Treiber funktioniert nicht unter Linux AWS

Ich verwendete sudo pecl install mongodb. Anfangs gab es einige Fehler in Bezug auf Abhängigkeiten, aber ich habe sie alle hinzugefügt und es scheint dann ohne Fehler installiert zu sein.

Beim Laden von phpinfo() sehe ich jedoch keinen Hinweis auf Mongo. Wenn ich versuche zu laufen:

$connection = new MongoClient(); ich

PHP Fatal error: Class 'MongoClient' not found in /var/www/html/mongo.php on line 3 

ich in extension=mongodb.so in meine php.ini gebracht hat, aber das führt zu einem weiteren Fehler:

PHP Startup: Unable to load dynamic library '/usr/lib64/php/5.6/modules/mongodb.so' - /usr/lib64/php/5.6/modules/mongodb.so: undefined symbol: php_json_serializable_ce in Unknown on line 0 

Es scheint, dieser Fehler hat zu mache mit der Reihenfolge, in der json relativ zu MongoDB geladen wird. Aber da in meinem Fall MongoDB überhaupt nicht geladen wird, bin ich mir nicht sicher, ob das hier zutrifft.

Ich würde mich über Hilfe freuen, warum dies nicht funktioniert.

+0

stellen Sie sicher, dass 'extension = mongodb.so' ist nach' extension = json.so' – Hereblur

+0

Ich habe 'extension = mongodb.so' als die letzte Zeile in php.ini. Ich sehe nicht einmal 'extension = json.so' – user2029890

+0

sehen Sie JSON-Abschnitt in phpinfo()? – Hereblur

Antwort

0

Ich hatte die gleiche Situation konfrontiert, und ich habe diese Lösung von Mongo Entwickler Sie brauchen nicht mongodb.so in php.ini setzen, anstatt sie ein separates Modul machen Falls Sie Debian verwenden

cat <<EOF> /etc/php5/mods-available/mongodb.ini 
; priority=99 
extension=mongodb.so 
EOF 
php5enmod mongodb 

wenn Sie Filzhut

echo "extension=mongodb.so" > /etc/php.d/50-mongodb.ini 

Dann starten Sie den apache verwenden und es wird gut funktionieren.

+0

Das hat es geschafft! Vielen Dank! – user2029890

0

Kurz gesagt, die Verwendung von MongoClient für PHP ist veraltet. (https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288)

Statt $connection = new MongoClient(); Sie werden $connection = new MongoDB\Driver\Manager();

hoffe, das hilft verwenden möchten.

+0

Versucht das und bekam 'PHP Schwerwiegender Fehler: Klasse 'MongoDB \ Driver \ Manager' nicht gefunden in/var/www/html/mongo.php' – user2029890

+0

Haben Sie alle relevanten Dienste neu gestartet? (Apache etc) – Furrowed

+0

Ja, mehrmals. Selbst neu gestarteter Server. – user2029890

Verwandte Themen