| Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) Probleme, Apache mit PHP oder MySQL zum Laufen zu bringen? Anpassung an .htaccess, httpd.conf oder php.ini funktionieren nicht? In diesem Forum könnt ihr eure Erfahrungen austauschen. |
 |
|

02-01-2009, 16:06
|
|
dummdumm
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 13
|
|
Fatal error: Class 'Memcache' not found
Hallo!
Ich habe versucht mir das tolle Modul Memcache zu installieren.
Der "Memcache"-Server läuft einwandfrei (unter Windows XP).
Wenn ich phpinfo() aufrufe, erscheint unter "Loaded Modules" sogar der Eintrag "mod_mem_cache".
Trotzdem wird die Class von PHP nicht erkannt und die Exception "Fatal error: Class 'Memcache' not found" geworfen. Ich hab absolut keine Idee mehr.
Umgebung:
- Windows XP
- XAMPP - PHP 5.2.6
Vorgang:
1. Server installiert und als Dienst gestartet
2. Unter xampp/apache/conf/httpd.conf das Modul freigegeben (LoadModule mem_cache_module modules/mod_mem_cache.so)
3. Unter xampp/php/php.ini das Modul ebenfalls freigegeben (extension=php_memcache.dll)
4. Geprüft, ob alle Dateien existieren (z.B. die *.dll)
5. Restart
Links:
1. Tutorial
2. Server
3. Bericht über Memcache
Zusätzliche Einträge in der php.ini:
Code:
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=3
memcache.chunk_size =8192
memcache.default_port = 11211
Vielen Dank im Voraus! 
dummdumm
Geändert von dummdumm (02-01-2009 um 16:17 Uhr)
|

02-01-2009, 16:48
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Ich kenn mich mit memcached (noch) nicht aus, aber es scheint zwei API-Methoden zu geben, eine Klassen- und eine Funktionsorientierte. Probierst Du es auch mit der richtigen?
|

03-01-2009, 04:14
|
|
dummdumm
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 13
|
|
Zitat:
Original geschrieben von pekka
Ich kenn mich mit memcached (noch) nicht aus, aber es scheint zwei API-Methoden zu geben, eine Klassen- und eine Funktionsorientierte. Probierst Du es auch mit der richtigen?
|
Huch? Ich versuche im PHP-Code über eine Klasse drauf zuzugreifen. Was meinst du genau?
|

03-01-2009, 05:02
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Pekka will sagen, dass die Memcache-Extension so wie viele andere auch vormals nur Funktionen zur Verfügung stellte, inzwischen aber eine Klasse. Ich weiß auch nicht, wann die Funktionen verschwanden. Welche PHP-Version benutzt du denn? Und wie sieht der Code aus, mit dem du Memcache benutzt?
|

03-01-2009, 12:46
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Probier auch mal, ob memcache_add() funktioniert (Statt $memcacheObjekt->add()).
|

03-01-2009, 17:01
|
|
dummdumm
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 13
|
|
Zitat:
Original geschrieben von pekka
Probier auch mal, ob memcache_add() funktioniert (Statt $memcacheObjekt->add()).
|
Da kommt leider nur:
"Fatal error: Call to undefined function memcache_add()"
Mein Code (1:1 aus einem funktionierendem Beispiel)
PHP-Code:
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
PHP Version: 5.2.6
Bin wirklich ratlos.
Gruß
dummdumm
|

03-01-2009, 17:07
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Arbeitest Du garantiert mit der richtigen php.ini?
Wie rufst Du die Datei mit dem phpinfo() drin auf?
Zitiiere mal den Memcache-Block in der PHPInfo-Ausgabe.
|

03-01-2009, 17:21
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Hast du --enable-memcache im Configure-String?
Hast du den Webserver neu gestartet?
|

03-01-2009, 18:06
|
|
dummdumm
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 13
|
|
Zitat:
Original geschrieben von pekka
Arbeitest Du garantiert mit der richtigen php.ini?
Wie rufst Du die Datei mit dem phpinfo() drin auf?
Zitiiere mal den Memcache-Block in der PHPInfo-Ausgabe.
|
Also ich benutze XAMPP und hab da nichts groß dran verändert. Die php.ini scheint die richtige zu sein.
phpinfo() rufe ich im ganz normal in der selben test-Datei auf, in der auch der Memcache-Code steht.
Zitieren kann ich da nicht viel, es erscheint nur "mod_mem_cache" unter dem Punkt "Loaded Modules".
Zitat:
Original geschrieben von onemorenerd
Hast du --enable-memcache im Configure-String?
Hast du den Webserver neu gestartet?
|
Server habe ich mehrmals restartet.
--enable-memcache steht nirgends. Wo soll das hin?
|

03-01-2009, 19:45
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Zitat:
Original geschrieben von dummdumm
--enable-memcache steht nirgends. Wo soll das hin?
|
|

03-01-2009, 19:47
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Mooment, mod_mem_cache scheint ein Apache-Modul zu sein. Das dürfte also keine Auswirkungen auf PHP haben -> Nachinstallieren!
|

03-01-2009, 19:48
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
Musst du dass denn auch unter Windows neu kompilieren? Meist reicht ja die Aktivierung der Extension in der Ini-Datei aus.
|

03-01-2009, 20:06
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Achso, er hat ja Windows. Gibt es da überhaupt einen Configure String? Na egal, es sollte genügen, die Extension per php.ini zu laden.
Was liefert get_extension_funcs('memcache')?
|

03-01-2009, 20:18
|
|
dummdumm
Newbie
|
|
Registriert seit: Jan 2009
Beiträge: 13
|
|
- et_extension_funcs('memcache') liefert leider garnichts.
- die Extension ist in der php.ini aktiviert
- Der Configure-String funktioniert jedenfalls nicht.
Nicht mal da steht was zur Windows Installation:
http://www.php-resource.de/handbuch/ref.memcache.htm
Also noch mal zusammengefasst:
Ich habe alle nötigen Files in die richtigen Ordner gepackt. Es fehlt nur noch der letzte Schritt - wahrscheinlich der "--enable-memcache" Befehl.
Wie wende ich das jetzt unter Windows an? Daran wirds glaub ich liegen!
|

03-01-2009, 20:33
|
|
pekka
PHP Master
|
|
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
|
|
Mmm, das brauchst du unter WIndows nicht.
Zitier mal die Stelle in der php.ini, in der Du das Modul einbindest.
Und schau mal in der phpinfo(), ob die Zeile garantiert in der richtigen php.ini steht.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|