Configurare memcached su CentOS
Questa sezione fornisce istruzioni per installare memcached su CentOS. Per ulteriori informazioni, consultare il wiki memcached.
Poiché PHP non dispone di supporto nativo per memcache, è necessario installare un'estensione affinché PHP possa utilizzarla. Sono disponibili due estensioni PHP ed è importante decodificare quali utilizzare:
-
memcache(no d), un'estensione precedente ma popolare che non viene mantenuta regolarmente.
L'estensionememcacheattualmente non funziona con PHP 7. Consulta la documentazione PHP per memcache.Il nome esatto è
php-pecl-memcacheper CentOS. -
memcached(con und)—un'estensione più recente e mantenuta compatibile con PHP 7. Consulta la documentazione PHP per memcached.Il nome esatto è
php-pecl-memcachedper CentOS.
Installare e configurare memcached su CentOS
Per installare memcached su CentOS, eseguire le attività seguenti come utente con privilegi root:
-
Installare memcached e le relative dipendenze:
code language-bash yum -y updatecode language-bash yum install -y libevent libevent-develcode language-bash yum install -y memcachedcode language-bash yum install -y php-pecl-memcachenote info INFO La sintassi dei comandi precedenti potrebbe dipendere dagli archivi di pacchetti utilizzati. Ad esempio, se si utilizza webtatic e PHP 5.6, immettere yum install -y php56w-pecl-memcache. Utilizzareyum search memcache|grep phpper trovare il nome del pacchetto appropriato. -
Modificare l'impostazione di configurazione memcached per
CACHESIZEeOPTIONS:-
Apri
/etc/sysconfig/memcachedin un editor di testo. -
Individuare il valore per
CACHESIZEe modificarlo in almeno 1 GB. Ad esempio:code language-config CACHESIZE="1GB" -
Individuare il valore per
OPTIONSe modificarlo inlocalhosto127.0.0.1
-
-
Salvare le modifiche apportate a
memcachede uscire dall'editor di testo. -
Riavvia memcached.
code language-bash service memcached restart -
Riavvia il server web.
Per Apache:
code language-bash service httpd restart -
Procedi alla sezione successiva.
Verifica del funzionamento di memcached prima di installare Commerce
Adobe consiglia di testare memcached per assicurarsi che funzioni prima di installare Commerce. Questa operazione richiede solo pochi minuti e può semplificare la risoluzione dei problemi in un secondo momento.
Verificare che memcached sia riconosciuto dal server web
Per verificare che memcached sia riconosciuto dal server web:
-
Creare un file
phpinfo.phpnella directory principale dei documenti del server Web:code language-php <?php // Show all information, defaults to INFO_ALL phpinfo(); -
Vai a quella pagina nel browser web.
Ad esempio:
http://192.0.2.1/phpinfo.php -
Accertati che memcache venga visualizzato come segue:
Verifica di utilizzare memcached versione 3.0.5 o successiva.
Se memcache non viene visualizzata, riavviare il server Web e aggiornare la pagina del browser. Se ancora non viene visualizzata, verificare di aver installato l'estensione php-pecl-memcache.
Creare un test memcache costituito da un database MySQL e da uno script PHP
Il test utilizza un database, una tabella e dati MySQL per verificare che sia possibile recuperare i dati del database e memorizzarli in memcache. Uno script PHP esegue prima la ricerca nella cache. Se il risultato non esiste, lo script esegue una query sul database. Dopo che la query è stata soddisfatta dal database originale, lo script memorizza il risultato in memcache, utilizzando il comando set.
Ulteriori dettagli su questo test
Creare il database MySQL:
mysql -u root -p
Al prompt mysql, immettere i comandi seguenti:
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
Crea cache-test.php nella directory principale dei documenti del server Web:
$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;
Dove <memcached hostname or ip> è localhost, 127.0.0.1 o il nome host o l'indirizzo IP memcache. <memcached port> è la porta di ascolto; per impostazione predefinita, 11211.
Esegui lo script dalla riga di comando.
cd <web server docroot>
php cache-test.php
Il primo risultato è got result from mysql. Ciò significa che la chiave non esiste in memcached ma è stata recuperata da MySQL.
Il secondo risultato è got result from memcached, che verifica che il valore sia archiviato correttamente in memcached.
Infine, puoi visualizzare le chiavi memcache utilizzando Telnet:
telnet localhost <memcache port>
Al prompt, immetti
stats items
Il risultato è simile al seguente:
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
Scaricare la memoria cache e uscire da Telnet:
flush_all
quit
Ulteriori informazioni sul test Telnet