So installierst du Memcached unter Ubuntu 22.04
Memcached ist ein freies, quelloffenes und universell einsetzbares verteiltes Speicher-Caching-System, das zum Zwischenspeichern von Datenbankdaten verwendet wird. Es ist ein leistungsstarkes Speicher-Caching-System, das dynamische Webanwendungen beschleunigt, indem es die Datenbanklast reduziert. Memcached besteht aus vier Komponenten, die es dem Client und dem Server ermöglichen, zusammenzuarbeiten, um zwischengespeicherte Daten so effizient wie möglich bereitzustellen. Es bietet eine API-Integration für alle wichtigen Sprachen wie PHP, Java, C/C++, Python, Ruby, Perl, etc.
In diesem Tutorial erfährst du, wie du Memcached auf einem Ubuntu 22.04 Server installierst und wie du es mit PHP nutzen kannst.
Voraussetzungen
- Ein Server, auf dem Ubuntu 22.04 läuft.
- Ein Root-Passwort ist auf deinem Server eingerichtet.
Installiere Memcached auf Ubuntu 22.04
Standardmäßig ist das Memcached-Paket im Ubuntu-Standard-Repository enthalten. Du kannst es ganz einfach mit dem folgenden Befehl installieren:
apt install memcached libmemcached-tools -y
Sobald Memcached installiert ist, starte den Memcached-Dienst mit dem folgenden Befehl:
systemctl start memcached
Du kannst den Status von Memcached mit dem folgenden Befehl überprüfen:
systemctl status memcached
Du solltest die folgende Ausgabe erhalten:
? memcached.service - memcached daemon Loaded: loaded (/lib/systemd/system/memcached.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-10-18 13:09:47 UTC; 29s ago Docs: man:memcached(1) Main PID: 5525 (memcached) Tasks: 10 (limit: 2242) Memory: 1.7M CPU: 71ms CGroup: /system.slice/memcached.service ??5525 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid Oct 18 13:09:47 ubuntu2204 systemd[1]: Started memcached daemon.
Um die Memcached-Version zu überprüfen, führe den folgenden Befehl aus:
memcached -V
Du erhältst die folgende Ausgabe:
memcached 1.6.14
Standardmäßig lauscht Memcached auf Port 11211. Du kannst dies mit dem folgenden Befehl überprüfen:
ss -plunt | grep memcache
Du solltest die folgende Ausgabe sehen:
tcp LISTEN 0 1024 127.0.0.1:11211 0.0.0.0:* users:(("memcached",pid=5525,fd=22))
PHP Memcached-Erweiterung installieren
Um Memcached mit PHP-basierten Anwendungen nutzen zu können. Du musst die PHP Memcached-Erweiterung auf deinem Server installieren. Du kannst sie mit folgendem Befehl auf dem Apache installieren:
apt install apache2 php libapache2-mod-php php-memcached php-cli -y
Als Nächstes erstellst du eine PHP-Testseite, um den Memcached zu testen:
nano /var/www/html/info.php
Füge den folgenden Code ein:
<?php phpinfo();
Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart apache2
Öffne dann deinen Webbrowser und rufe die PHP-Seite über die URL http://your-server-ip/info.php auf . Auf dem folgenden Bildschirm solltest du den Memcached sehen:
Als Nächstes erstellst du eine weitere PHP-Testseite, um zu überprüfen, ob der Memcached funktioniert oder nicht.
nano /var/www/html/test.php
Füge den folgenden Code ein:
<?php try { $memcached = new Memcached(); $memcached->addServer("127.0.0.1", 11211); $response = $memcached->get("key_cache"); if($response==true) { echo "Result coming from caching"; echo $response; } else { echo "Cache is not created yet, reload again to see changes"; $memcached->set("key_cache", "Hooray! Memcache is working now ...") ; } } catch (exception $e) { echo $e->getMessage(); } ?>
Speichere und schließe die Datei, öffne dann deinen Webbrowser und rufe die PHP-Testseite mit der URL http://your-server-ip/test.php auf . Du solltest den folgenden Bildschirm sehen:
Als Nächstes lädst du die Seite noch einmal. Diesmal wird die Seite aus dem Cache-Speicher geladen, wie unten gezeigt:
Memcached mit Authentifizierung sichern
Es wird empfohlen, Simple Authentication and Security Layer (SASL) zu verwenden, um den Memcached mit einer benutzerbasierten Authentifizierung zu sichern. Dazu musst du das Paket sasl2-bin auf deinem Server installieren.
apt install sasl2-bin
Als nächstes erstellst du ein Verzeichnis und eine Konfigurationsdatei für die SASL-Authentifizierung:
mkdir -p /etc/sasl2 nano /etc/sasl2/memcached.conf
Füge die folgenden Zeilen ein:
log_level: 5 mech_list: plain sasldb_path: /etc/sasl2/memcached-sasldb2
Speichere und schließe die Datei und erstelle dann eine SASL-Datenbank mit Benutzeranmeldeinformationen:
saslpasswd2 -a memcached -c -f /etc/sasl2/memcached-sasldb2 user1
Lege dein Passwort wie unten gezeigt fest:
Password: Again (for verification):
Als Nächstes änderst du die Eigentümerschaft der Memcached-Datenbank:
chown memcache:memcache /etc/sasl2/memcached-sasldb2
Als Nächstes überprüfst du Memcached mit dem folgenden Befehl:
memcstat --servers="127.0.0.1"
Du solltest die folgende Ausgabe erhalten:
Server: 127.0.0.1 (11211) pid: 5525 uptime: 462 time: 1666099048 version: 1.6.14 libevent: 2.1.12-stable pointer_size: 64 rusage_user: 0.110123 rusage_system: 0.093906 max_connections: 1024 curr_connections: 1 total_connections: 4 rejected_connections: 0 connection_structures: 2 response_obj_oom: 0 response_obj_count: 1 response_obj_bytes: 49152 read_buf_count: 6 read_buf_bytes: 98304 read_buf_bytes_free: 32768 read_buf_oom: 0 reserved_fds: 20 cmd_get: 2 cmd_set: 1 cmd_flush: 0 cmd_touch: 0 cmd_meta: 0 get_hits: 1 get_misses: 1 get_expired: 0 get_flushed: 0 delete_misses: 0
Als Nächstes bearbeitest du die Konfigurationsdatei von Memcached:
nano /etc/memcached.conf
Füge die folgenden Zeilen hinzu:
-S -vv
Speichere und schließe die Datei und starte den Memcached-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart memcached
Als Nächstes überprüfst du die SASL-Unterstützung mit dem folgenden Befehl:
journalctl -u memcached |grep SASL
Wenn alles in Ordnung ist, erhältst du die folgende Ausgabe:
Journal file /var/log/journal/d97e195db6584d63aeedfdc35dc83c7f/user-1000.journal is truncated, ignoring file. Oct 18 13:18:19 ubuntu2204 systemd-memcached-wrapper[14980]: Initialized SASL.
Überprüfe Memcached-Authentifizierung
Versuche zunächst, die Verbindung zu Memcached erneut ohne Authentifizierung zu überprüfen:
memcstat --servers="127.0.0.1"
Der Befehl sollte keine Ausgabe erzeugen. Gib den folgenden Shell-Befehl ein, um den Status zu überprüfen:
echo $?
Du solltest den folgenden Statuscode erhalten: Der Befehl memcstat ist fehlgeschlagen.
1
Als nächstes führst du den Memcached-Befehl erneut aus, indem du den Benutzernamen und das Passwort angibst:
memcstat --servers="127.0.0.1" --username=user1 --password=password
Du erhältst die folgende Ausgabe:
Server: 127.0.0.1 (11211) pid: 14980 uptime: 46 time: 1666099143 version: 1.6.14 libevent: 2.1.12-stable pointer_size: 64 rusage_user: 0.077843 rusage_system: 0.049072 max_connections: 1024 curr_connections: 1 total_connections: 3 rejected_connections: 0 connection_structures: 2 response_obj_oom: 0 response_obj_count: 1 response_obj_bytes: 16384 read_buf_count: 3 read_buf_bytes: 49152 read_buf_bytes_free: 16384 read_buf_oom: 0
Memcached für Python installieren
Wenn du Memcached in Python-basierte Webanwendungen integrieren willst, musst du die Memcached-Erweiterung für Python installieren. Du kannst sie mit dem folgenden Befehl installieren:
apt install python3-pip pip install pymemcache pip install python-memcached
Fazit
In diesem Beitrag haben wir erklärt, wie du den Memcached-Server auf Ubuntu 22.04 installierst. Außerdem haben wir erklärt, wie du Memcached mit SASL-basierter Authentifizierung absicherst. Ich hoffe, du kannst Memcached jetzt in deine Anwendung integrieren, um die Leistung deiner Anwendung zu verbessern. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.