Fatal error: Class 'Memcache' not found (installiert mit pecl -)
Ich memcache installiert via ssh mit:
$ pecl install memcache
Und das war der Ausgang: https://pastee.org/w63sy
Und fügte hinzu, diese Linie zu etc/php.ini
:
extension=memcache.so
Und wenn Sie versuchen zu initialisieren:
/* MEMCACHE */
$memcache = new Memcache();
$memcache->pconnect('localhost',11211);
Bekomme ich:
Fatal error: Class 'Memcache' not found in /home/piscolab/public_html/website.com/includes/sql.php on line 25
Was mache ich falsch?
Fand ich diese Frage, aber das problem war über seine shared-server. Ich bin unter einem VPS.
Ausgeführt: php -i | grep php.ini
:
[root@vps ~]# php -i | grep php.ini
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/memcache.so' - /usr/lib/php/modules/memcache.so: cannot open shared object file: No such file o
r directory in Unknown on line 0
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
[root@vps ~]#
Finden memcache.so (keine Ausgabe)
[root@vps ~]# find / -type f -name memcache*.so'
[root@vps ~]# find /-type f -name memcache*.so
[root@vps ~]#
Hast du den Apache neu starten, nach dem hinzufügen dieser Zeile in der config?
negativ! Ich werde versuchen, gerade jetzt. danke!
Ich Neustart der virtuellen Maschine und nichts verändert @DCoder und /etc/init.d/apache2 restart log mich, dass keine solche Datei oder das Verzeichnis :S
Dieser Fehler bedeutet, dass Ihre
so wie? 'zu finden / "Benutzername" /- name memcache.so' ??
negativ! Ich werde versuchen, gerade jetzt. danke!
Ich Neustart der virtuellen Maschine und nichts verändert @DCoder und /etc/init.d/apache2 restart log mich, dass keine solche Datei oder das Verzeichnis :S
Dieser Fehler bedeutet, dass Ihre
memcache.so
ist nicht in /usr/lib/php/
- Sie könnten versuchen find /usr/ -name memcache.so
um zu sehen, wo es ist.so wie? 'zu finden / "Benutzername" /- name memcache.so' ??
InformationsquelleAutor Toni Michel Caubet | 2012-05-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gegeben, die Ausgabe der Fehlermeldung, wie es aussieht, fehlen die
zlib
Entwicklung Bibliotheken, oder zumindest sind Sie nicht in der gewohnten Stelle, wo es automatisch gefunden wird, indem Sie configure.Da Sie auf CentOS installieren Sie die Bibliotheken mit diesem Befehl:
Installation die zlib-Bibliothek für memcache. Versuchen Sie ein erneutes ausführen des pecl-installer nach der Installation die zlib-Bibliotheken.
InformationsquelleAutor drew010
wird es wahrscheinlich helfen, wenn Sie geben Sie einige weitere Infos über phpinfo() oder php_config, genauer gesagt, hat deine Installation finden Sie in der memcache libs und Ihre lib-Pfade korrigieren.
wird Ihnen sagen, mehr, interessant sind hier die php-ini-Pfad und die lib-Pfade
php ini-Pfad wird angezeigt, wenn Sie --configure-Optionen Option --with-config-file-path (/etc/php5/apache2 in meinem konkreten Fall)
und die lib-Pfade angezeigt werden mit der Option --extension-dir
z.B.
So verwenden Sie mein Beispiel meine lib-Pfade eingestellt sind
/usr/lib/php5/20090626+lfs und ein
Befehl für mein system zeigt:
/usr/lib/php5/20090626+lfs/memcached.so
und mein php.ini-Datei befindet sich in /etc/php5/apache2/php.ini
die phpinfo() php-Funktion (einfach in eine Datei, und zeigen Sie es) zeigt auch, memcache unterstützt und geladen "memcached support enabled" (ich speziell memcached extension, nicht memcache)
Euch daran, dass Ihr webserver kann so konfiguriert werden, verwenden Sie eine andere php.ini-Pfad (und damit die Datei) als Ihre Befehlszeile so stellen Sie sicher beide. Auch achten Sie darauf, dass die extension=memcache.so in der richtigen Lage, da viele Distributionen unter /etc/php5/conf.d/memcache.ini-möglicherweise gibt es eine Diskrepanz gibt es?
es könnte eine mögliche Antwort auf dein problem, ja
Pleaze check mein edit. es scheint, dass es die richtige php.ini-Pfad, aber einige Fehler zeigen, verstehst du?
wie Dcoder gesagt in dem Kommentar oben: Ihre memcache.so Bibliotheksdatei kann nicht gefunden werden und somit nicht geladen wird, überprüfen Sie für seine Existenz (als root oder mit dem comand mit sudo) mit
find / -type f -name 'memcache*.so'
Wenn dieser Befehl kann nicht finden, dann müssen Sie nicht die Bibliothek-Datei ordnungsgemäß installiert und Sie müssen Sie zu (re)installieren Sie die memcache-php-Modul. Wohlgemerkt, diese sucht Ihre ganze Festplatte, es wird also eine Weile dauern, um zu Ihnen zurück mit einer Antwort, es ist ein brute-force-Weg, um sicher zu sein, sorry. 🙂wenn Sie können tatsächlich finden memcache.so dann es keinen Zweifel daran, auf ein Verzeichnis, dass php nicht zu sehen, und Sie müssen dann fügen Sie diesem Pfad, um den Pfad für PHP-Erweiterungen.
InformationsquelleAutor Harald Brinkhof