In CentOS zwischengespeicherte Einrichtung einrichten
In diesem Abschnitt finden Sie Anweisungen zur Installation des gecachten Programms unter CentOS. Weitere Informationen finden Sie im im zwischengespeicherten Wiki.
Da PHP keine native Unterstützung für Memcache hat, müssen Sie eine Erweiterung für PHP installieren, um sie zu verwenden. Es sind zwei PHP-Erweiterungen verfügbar, und es ist wichtig, zu dekodieren, welche verwendet werden sollen:
-
memcache
(no d) - eine ältere, aber beliebte Erweiterung, die nicht regelmäßig gepflegt wird.
Die Erweiterungmemcache
funktioniert derzeit nicht mit PHP 7. Siehe PHP-Dokumentation für memcache.Der genaue Name ist
php-pecl-memcache
für CentOS. -
memcached
(mit einemd
) - eine neuere und gepflegte Erweiterung, die mit PHP 7 kompatibel ist. Siehe die PHP-Dokumentation für zwischengespeichert.Der genaue Name ist
php-pecl-memcached
für CentOS.
Installieren und konfigurieren Sie gecacht auf CentOS
Führen Sie die folgenden Aufgaben als Benutzer mit root
-Berechtigungen aus, um die Zwischenspeicherung unter CentOS zu installieren:
-
Installieren Sie die zwischengespeicherten Dateien und ihre Abhängigkeiten:
code language-bash yum -y update
code language-bash yum install -y libevent libevent-devel
code language-bash yum install -y memcached
code language-bash yum install -y php-pecl-memcache
note info INFO Die Syntax der vorherigen Befehle hängt möglicherweise davon ab, welche Package-Repositorys Sie verwenden. Wenn Sie beispielsweise webtatic und PHP 5.6 verwenden, geben Sie yum install -y php56w-pecl-memcache
ein. Verwenden Sieyum search memcache|grep php
, um den entsprechenden Paketnamen zu finden. -
Ändern Sie die zwischengespeicherte Konfigurationseinstellung für
CACHESIZE
undOPTIONS
:-
Öffnen Sie
/etc/sysconfig/memcached
in einem Texteditor. -
Suchen Sie den Wert für
CACHESIZE
und ändern Sie ihn in mindestens 1 GB. Beispiel:code language-config CACHESIZE="1GB"
-
Suchen Sie den Wert für
OPTIONS
und ändern Sie ihn inlocalhost
oder127.0.0.1
-
-
Speichern Sie Ihre Änderungen in
memcached
und beenden Sie den Texteditor. -
Starten Sie die Zwischenspeicherung neu.
code language-bash service memcached restart
-
Starten Sie den Webserver neu.
Für Apache:
code language-bash service httpd restart
-
Fahren Sie mit dem nächsten Abschnitt fort.
Überprüfen Sie die zwischengespeicherten Vorgänge vor der Installation von Commerce
Adobe empfiehlt, gecachete Tests durchzuführen, um sicherzustellen, dass sie funktionieren, bevor Sie Commerce installieren. Dies dauert nur wenige Minuten und kann die Fehlerbehebung später vereinfachen.
Überprüfen, ob die zwischengespeicherten Daten vom Webserver erkannt werden
So überprüfen Sie, ob die zwischengespeicherten Daten vom Webserver erkannt werden:
-
Erstellen Sie im Basisverzeichnis des Webservers eine Datei "
phpinfo.php
":code language-php <?php // Show all information, defaults to INFO_ALL phpinfo();
-
Rufen Sie diese Seite in Ihrem Webbrowser auf.
Beispiel:
http://192.0.2.1/phpinfo.php
-
Stellen Sie sicher, dass Memcache wie folgt angezeigt wird:
Vergewissern Sie sich, dass Sie die zwischengespeicherte Version 3.0.5 oder höher verwenden.
Wenn memcache nicht angezeigt wird, starten Sie den Webserver neu und aktualisieren Sie die Browserseite. Wenn die Erweiterung weiterhin nicht angezeigt wird, überprüfen Sie, ob Sie die Erweiterung php-pecl-memcache
installiert haben.
Erstellen Sie einen Memcache-Test, der aus einer MySQL-Datenbank und einem PHP-Skript besteht
Der Test verwendet eine MySQL-Datenbank, eine Tabelle und Daten, um zu überprüfen, ob Sie die Datenbankdaten abrufen und in memcache speichern können. Ein PHP-Skript durchsucht zunächst den Cache. Wenn das Ergebnis nicht vorhanden ist, fragt das Skript die Datenbank ab. Nachdem die Abfrage von der ursprünglichen Datenbank erfüllt wurde, speichert das Skript das Ergebnis im memcache mithilfe des Befehls set
.
Weitere Informationen zu diesem Test
Erstellen Sie die MySQL-Datenbank:
mysql -u root -p
Geben Sie an der Eingabeaufforderung mysql
die folgenden Befehle ein:
create database memcache_test;
GRANT ALL ON memcache_test.* TO memcache_test@localhost IDENTIFIED BY 'memcache_test';
use memcache_test;
create table example (id int, name varchar(30));
insert into example values (1, "new_data");
exit
Erstellen Sie cache-test.php
im Basisverzeichnis Ihres Webservers:
$meminstance = new Memcached();
$meminstance->addServer('<memcached hostname or ip>', <memcached port>);
$query = "select id from example where name = 'new_data'";
$querykey = "KEY" . md5($query);
$result = $meminstance->get($querykey);
if (!$result) {
try {
$dbh = new PDO('mysql:host=localhost;dbname=memcache_test','memcache_test','memcache_test');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $dbh->query("select id from example where name = 'new_data'")->fetch();
$meminstance->set($querykey, $result, 0, 600);
print "got result from mysql\n";
return 0;
} catch (PDOException $e) {
die($e->getMessage());
}
}
print "got result from memcached\n";
return 0;
Wobei <memcached hostname or ip>
entweder localhost
, 127.0.0.1
oder der Memcache-Hostname oder die IP-Adresse ist. Der <memcached port>
ist der Überwachungsanschluss, standardmäßig 11211
.
Führen Sie das Skript über die Befehlszeile aus.
cd <web server docroot>
php cache-test.php
Das erste Ergebnis ist got result from mysql
. Das bedeutet, dass der Schlüssel nicht im Cache vorhanden war, aber von MySQL abgerufen wurde.
Das zweite Ergebnis ist got result from memcached
, das überprüft, ob der Wert erfolgreich im Cache gespeichert wurde.
Schließlich können Sie die memcache-Schlüssel mithilfe von Telnet anzeigen:
telnet localhost <memcache port>
Geben Sie an der Eingabeaufforderung ein.
stats items
Das Ergebnis ähnelt dem folgenden:
STAT items:3:number 1
STAT items:3:age 1075
STAT items:3:evicted 0
STAT items:3:evicted_nonzero 0
STAT items:3:evicted_time 0
STAT items:3:outofmemory 0
STAT items:3:tailrepairs 0
Leeren Sie den Speicher des Memcaches und beenden Sie Telnet:
flush_all
quit
Zusätzliche Informationen zum Telnet-Test