Einrichten von Memcaches auf Ubuntu
- Themen:
- Cache
Erstellt für:
- Experte
- Admin
- Entwickler
Dieser Abschnitt enthält Anweisungen zur Installation von memcached auf Ubuntu.
Da PHP keine native Unterstützung für memcache hat, müssen Sie eine Erweiterung für PHP installieren, um es zu verwenden. Es stehen zwei PHP-Erweiterungen zur Verfügung und es ist wichtig zu decodieren welche verwendet werden sollen:
-
memcache
(kein D) - eine ältere, aber beliebte Erweiterung, die nicht regelmäßig gepflegt wird.
Diememcache
-Erweiterung funktioniert derzeit nicht mit PHP 7. Siehe PHP-Dokumentation für memcache.Der genaue Name ist für Ubuntu
php5-memcache
. -
memcached
(mit einemd
) - eine neuere und gepflegte Erweiterung, die mit PHP 7 kompatibel ist. Siehe PHP-Dokumentation für memcached.Der genaue Name ist für Ubuntu
php5-memcached
.
Installieren und Konfigurieren von Memcached auf Ubuntu
So installieren und konfigurieren Sie memcached auf Ubuntu:
-
Geben Sie als Benutzer mit
root
Berechtigungen den folgenden Befehl ein:apt-get -y update
apt-get -y install php5-memcached memcached
-
Ändern Sie die memcached-Konfigurationseinstellung für
CACHESIZE
und-l
:-
Öffnen Sie
/etc/memcached.conf
in einem Texteditor. -
Suchen Sie den
-m
. -
Ändern Sie den Wert in mindestens
1GB
-
Suchen Sie den
-l
. -
Ändern Sie den Wert in
127.0.0.1
oderlocalhost
-
Speichern Sie Ihre Änderungen in
memcached.conf
und beenden Sie den Texteditor. -
Starten Sie memcached neu.
service memcached restart
-
-
Starten Sie den Webserver neu.
Für Apache,
service apache2 restart
-
Fahren Sie mit dem nächsten Abschnitt fort.
Überprüfen der Funktionsfähigkeit von memcached vor der Installation von Magento
Adobe empfiehlt, memcached zu testen, um sicherzustellen, dass es funktioniert, bevor Sie Commerce installieren. Dies dauert nur wenige Minuten und kann die Fehlerbehebung später vereinfachen.
Überprüfen, ob der zwischengespeicherte Inhalt vom Webserver erkannt wird
So überprüfen Sie, ob Memcached vom Webserver erkannt wird:
-
Erstellen Sie eine
phpinfo.php
Datei im Stammverzeichnis des Webservers:<?php // Show all information, defaults to INFO_ALL phpinfo();
-
Navigieren Sie zu dieser Seite in Ihrem Webbrowser. Beispiel:
http://192.0.2.1/phpinfo.php
-
Stellen Sie sicher, dass memcached wie folgt angezeigt wird:
Stellen Sie sicher, dass Sie memcached Version 3.0.5 oder höher verwenden.
Wenn memcached nicht angezeigt wird, starten Sie den Webserver neu und aktualisieren Sie die Browser-Seite. Wenn es immer noch nicht angezeigt wird, überprüfen Sie, ob Sie die
php-pecl-memcached
-Erweiterung installiert haben.
Überprüfen, ob zwischengespeicherte Daten zwischengespeichert werden können
Dieser Test verwendet ein PHP-Skript, um zu überprüfen, ob memcached Cache-Daten speichern und abrufen kann.
Weitere Informationen zu diesem Test finden Sie im Tutorial Installieren und Verwenden von Memcache auf Ubuntu.
Erstellen Sie cache-test.php
im Stammverzeichnis des Webservers mit folgendem Inhalt:
$meminstance = new Memcached();
$meminstance->addServer("<memcached hostname or ip>", <memcached port>);
$result = $meminstance->get("test");
if ($result) {
echo $result;
} else {
echo "No matching key found. Refresh the browser to add it!";
$meminstance->set("test", "Successfully retrieved the data!") or die("Could not save anything to memcached...");
}
Dabei ist <memcached hostname or ip>
entweder localhost
, 127.0.0.1
oder der Hostname oder die IP-Adresse des Memcaches. Der <memcached port>
ist der Listen-Port. Standardmäßig ist dies 11211
.
Wechseln Sie zu dieser Seite in einem Webbrowser. Beispiel
http://192.0.2.1/cache-test.php
Wenn Sie das erste Mal zur Seite gehen, wird Folgendes angezeigt: No matching key found. Refresh the browser to add it!
Aktualisieren Sie den Browser. Die Nachricht ändert sich in Successfully retrieved the data!
Schließlich können Sie die Memcache-Schlüssel mithilfe von Telnet anzeigen:
telnet localhost <memcache port>
Geben Sie bei der Eingabeaufforderung Folgendes ein
stats items
Das Ergebnis ähnelt dem folgenden:
STAT items:2:number 1
STAT items:2:age 106
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 0
STAT items:2:expired_unfetched 0
STAT items:2:evicted_unfetched 0
Leeren des zwischengespeicherten Speichers und Beenden von Telnet:
flush_all
quit