php-icon

Memcache auf Windows 7 installieren

Hallo zusammen,

nachdem ich mir jetzt 2 Tage den Kopf zerbrochen habe und memcache einfach nicht zum laufen bekommen habe möchte ich hier nun meine Lösung vorstellen.

Dieser Beitrag wird eine etwas freie Übersetzung von Zurmo (http://zurmo.org/wiki/installing-memcache-on-windows). Dort habe ich nämlich nach langem suchen Endlich das gefunden was ich wollte.

Installation von memcache auf Windows

Theorie

memcached [ˈmɛm.kæʃ.tː] ist ein unter der BSD-Lizenz veröffentlichter CacheServer zum allgemeinen Hinterlegen und Abholen von Daten aus dem Arbeitsspeicher. Die Software findet hauptsächlich Verwendung für Internetseiten, die Daten aus Datenbanksystemen zeitweise auf dem Server hinterlegen. Es dient bei vielen dynamischen Websites mit Datenbankanbindung zur Leistungsverbesserung, indem durch die Vorhaltung von wichtigen Daten im Arbeitsspeicher Festplattenzugriffe erübrigt werden beziehungsweise der Aufruf von aufwändigen und häufig verwendeten Datenbankabfragen – insbesondere SELECT-Anweisungen – minimiert wird.

– Wikipedia (http://de.wikipedia.org/wiki/Memcached)

Memcache wurde für Linux designend und nicht für Windows, daher haben viele Windows User jetzt beim entwickeln von Webseiten mit memcache Probleme. Gerade solche welche nicht gerade heiß darauf sind den offenen sourcecode zu compilieren.

Installation des memcache Services

  1. Downloaded memcache: memcached-win64-1.4.4-14
  2. Entpackt das Archiv z.B. nach c:\memcache. Ihr findet dort nur eine exe Datei.
  3. Wenn ihr Vista verwendet:
    • rechtsklick auf memcached.exe
    • klickt auf Einstellungen
    • wählt den Reiter Kompalibität aus
    • Unten könnt ihr die Groupbox „Berechtigungsstufe“ stehen und dort einen haken bei „Programm als Administrator ausfähren“ machen
    • Einstellungen ´nun übernehmen
  4. Den Service nun über die Kommandozeile installieren
    C:\memcached\memcached.exe -l 127.0.0.1 -d install
  5. Nun noch den Service starten
    C:\memcached\memcached.exe -l 127.0.0.1 -d start
    
    oder
    
    net start "memcached"

Installation der PHP Bibliothek

  1. Ladet euch die zu euer PHP Version passende memcache.dll herunter: http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/
  2. Entpackt das ausgewählte Archiv und kopiert die php_memcache.dll in euer php/ext/ Verzeichnis.
  3. Editiert die php.ini und fügt folgende Zeile zur Erweiterungsliste hinzu:
    extension=php_memcache.dll
  4. Startet den Webserver neu.

Testen von memcache und der PHP erweiterung

Mit diesem Code könnt ihr ganz leicht prüfen ob memcache nun funktioniert:

Quellcode   
<?php
$memcache = new Memcache;
$memcache->connect("localhost",11211); # You might need to set "localhost" to "127.0.0.1"
echo "Server's version: " . $memcache->getVersion() . "<br />\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = "test";
$tmp_object->int_attr = 123;
$memcache->set("key",$tmp_object,false,10);
echo "Store data in the cache (data will expire in 10 seconds)<br />\n";
echo "Data from the cache:<br />\n";
var_dump($memcache->get("key"));
?>

Ansätze zur Fehlerbehebung

Dies ist wohl der wichtigste Punkt in welchem ich hoffe euch am meisten helfen zu können falls der Test irgendwie fehlschlagen sollte.

Sollte der Test fehlschlagen so öffnet die Kommandozeile und begebt euch in euer php verzeichnis.

Dort gebt ihr nun folgendes ein:
php -i

Sollte es jetzt irgendwelche Fehler geben könnt ihr Sie nun erkennen (auch Fehler die normalerweise nicht ihren Weg ins php-error log finden).

Sollte euch angezeigt werden das die Versionen nicht übereinstimmen so versucht einfach eine andere memcache.dll von http://windows.php.net/downloads/pecl/releases/memcache/3.0.8/

Sollte euch etwas angezeigt werden „%1 ist keine gültige win32 Anwendung“ einfach die x86er DLL anstatt der x64er verwenden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.