gefunden Ich habe eine Seite Apache verwenden, die nur der folgende Code:PHP Fatal Error: Klasse ‚MongoClient‘ nicht
<?php $m = new MongoClient(); ?>
und wenn ich versuche, darauf zuzugreifen, erhalte ich den Fehler in error.log
Die folgenden Einstellungen sind möglicherweise falsch, aber ich glaube nicht.
php -i | grep 'Configuration'
=>Configuration File (php.ini) Path => /etc/php5/cli | Loaded Configuration File => /etc/php5/cli/php.ini
grep 'mongo' /etc/php5/cli/php.ini
=>extension=mongo.so
php -i | grep 'extension'
=> extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212
ls /usr/lib/php5/20121212/ | grep 'mongo.so'
=>mongo.so
Ich habe nicht in der Lage, etwas zu finden ich vorschlagen installiert es ist falsch oder falsch konfiguriert. Ich installierte es in den letzten zwei Stunden unter Verwendung von pecl
und pear
(sudo pear install -f pecl/mongo
und sudo pecl install mongo
)
Ich habe meine Apache neu gestartet und sogar mehrmals meinem Computer.
Warum bekomme ich den Fehler Class 'MongoClient' not found
?
Ich bin auf Ubuntu. PHP-Version 5.5.
Edit: Ich habe gerade entdeckt, dass MongoClient gültig ist, wenn ich PHP im interaktiven Modus ausführen. Vielleicht hat es mit einem Benutzererlaubnis/Benutzerinstallationsproblem zu tun?
Diese Frage XAMPP benutzt, was ich nicht bin, und die Lösung endete als ein Problem mit der Angabe einer .dll, während ich unter Linux bin. Außerdem wird alles, was die einzige Antwort bringt, in meiner Frage angesprochen. –
Überprüfen Sie die Berechtigungen von '/ usr/lib/php5/20121212/mongo.so' - sie sollten mit den Berechtigungen der anderen Dateien im Verzeichnis identisch sein. Außerdem können Sie 'strace' ausführen, um zu sehen, was genau fehlschlägt, wenn' php' versucht, 'mongo.so' zu öffnen. Z.B. 'strace -f php test.php 2> & 1 | grep 20121212' – VolenD
@ user3584460 Danke für die Antwort. Die Berechtigungen waren im Grunde die gleichen (664 statt 644), aber ich änderte sie auf genau das gleiche und es gibt kein Problem. Wie für den zweiten Teil scheint es kein Problem zu geben, weil es funktioniert, wenn ich es wie ich selbst betreibe. Ich denke, ich habe die Frage etwas verwirrend gemacht, da ich nicht angegeben habe, dass dies ein Problem ist, wenn Apache (Benutzer www-data) PHP ausführt, nicht wenn ich es bin. –