Memcached unter SuSE SLES10Für SuSE bzw. SLES10 gibt es meiner Kenntnis nach keine RPM Pakete für die problemlose Installation. Daher hier eine kleine Anleitung für die Installation. 
Die jeweils aktuell Version von memchached kann man hier runterladen: www.danga.com/memcached/
Der Quellcode beinhaltet bereits Scripte zum start und stoppen, jedoch nicht 100% angepasst an die SuSE Gegebenheiten. Daher muss man leider ein wenig Hand anlegen.
Schritt #1: Memchached runterladen, entpacken, kompiliere und installieren:
wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz tar xzf memcached-1.2.8.tar.gz cd memcached-1.2.8/ ./configure make make install

Bei meiner SuSE Installation wird memchached in /usr/local/bin kopiert.
Im ausgepackten Quelltext befindet sich jedoch auch ein Verzeichnis "scripts", daß 4 Dateien enthält:
- memcached-init
- memcached.sysv
- memcached-tool
- start-memcached
Die Datei "memchached-init" wird nach /etc/init.d/ kopiert, sowie start-memchached und memcached-tool nach /usr/local/share/memchached/scripts/:
cp scripts/memcached-init /etc/init.d/ mkdir -p /usr/local/share/memcached/scripts/ cp scripts/memcached-tool /usr/local/share/memcached/scripts/ cp scripts/start-memcached /usr/local/share/memcached/scripts/
nun müssen die Dateien noch an die Verzeichnisse angepasst werden. Wo man also die die Scripte hinkopiert ist relativ egal:
/etc/init.d/memcached-init: Die Zeilen 14 und 15 anpassen an die richtigen Verzeichnisse anpassen:
Vorher:
DAEMON=/usr/bin/memcached DAEMONBOOTSTRAP=/usr/share/memcached/scripts/start-memcached
Ändern in:
DAEMON=/usr/local/bin/memcached DAEMONBOOTSTRAP=/usr/local/share/memcached/scripts/start-memcached
sowie /usr/local/share/memcached/scripts/start-memcached: Zeile 23 an das richtige Verzeichnis anpassen:
Vorher:
my $memcached = "/usr/bin/memcached";
Ändern in:
my $memcached = "/usr/local/bin/memcached"; 
Config Datei /etc/memcached.conf erstellen:
# Use <num> MB memory max to use for object storage; the default is 64 megabytes. -m 1024
# default port -p 11211
# user to run daemon nobody/apache/www-data -u nobody
# only listen locally -l 127.0.0.1
Anschließend kann man mit /etc/init.d/memcachrd-init start den memcache Daemon starten und kontrollieren ob er läuft. Nicht vergessen das Startscript noch den Runlevels zuzuordnen.


Schritt #2: php-memcache installieren Siehe auch: http://us3.php.net/manual/en/book.memcache.php
Auch für php-memcache gibt es kein RPM Paket. Leider ist zumindest auf unserem SusE System zudem die php Konfiguration von SuSE totaler Murks, so daß wir erst einmal einige Links setzen müssen, daß PECL sowie phpize funktionieren:
cd /usr/bin/ ln -sf php-config5 php-config ln -sf phpize5 phpize
Anschließend können wir php-memcache einfach über PECL installieren:
Bei der Installation werden wir einmal gefragt, ob wir die memcached installieren wollen, was wir mit der ENTER Taste bestätigen. Zum Schluß sollte kommen:
Build process completed successfully Installing '/usr/lib64/php5/extensions/memcache.so' install ok: channel://pecl.php.net/memcache-2.2.5 configuration option "php_ini" is not set to php.ini location You should add "extension=memcache.so" to php.ini
Dieser letzten bitte kommen wir natürlich nach und tragen in /etc/php5/apache/php.ini das Modul ein. (in den Bereich "Dynamic Extensions")
extension=memcache.so
Nun kann apache neu gestartet werden um die Änderungen bekannt zu machen!


Schritt #3: Kontrolle
Entweder lokal und/oder durch ein php Script. Das PHP Script stammt von http://us3.php.net/manual/en/memcache.installation.php und lautet:
<?php $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"; ?>
Alternativ kann man es entweder durch einen direkten Telnet Connect auf den Server testen oder durch das mitgelieferte Script:
/usr/local/share/memcached/scripts/memcached-tool 127.0.0.1:11211 display
|