Fatal error: Class 'Memcache' not found

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von dummdumm; 02.01.2009, 15:17.

  • #2
    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?

    Kommentar


    • #3
      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?

      Kommentar


      • #4
        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?

        Kommentar


        • #5
          Probier auch mal, ob memcache_add() funktioniert (Statt $memcacheObjekt->add()).

          Kommentar


          • #6
            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_objectfalse10) 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

            Kommentar


            • #7
              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.

              Kommentar


              • #8
                Hast du --enable-memcache im Configure-String?
                Hast du den Webserver neu gestartet?

                Kommentar


                • #9
                  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".

                  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?

                  Kommentar


                  • #10
                    Original geschrieben von dummdumm
                    --enable-memcache steht nirgends. Wo soll das hin?
                    http://php.net/manual/en/memcache.installation.php
                    In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option.

                    Kommentar


                    • #11
                      Mooment, mod_mem_cache scheint ein Apache-Modul zu sein. Das dürfte also keine Auswirkungen auf PHP haben -> Nachinstallieren!

                      Kommentar


                      • #12
                        Musst du dass denn auch unter Windows neu kompilieren? Meist reicht ja die Aktivierung der Extension in der Ini-Datei aus.

                        Kommentar


                        • #13
                          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')?

                          Kommentar


                          • #14
                            - 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!

                            Kommentar


                            • #15
                              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.

                              Kommentar

                              Lädt...
                              X