Installare Memcached in un server Apache2: differenze tra le versioni
Nessun oggetto della modifica |
|||
(6 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | {{Versioni compatibili|Squeeze|Wheezy|Jessie}} | ||
{{Warningbox|Per Debian Stretch o superiori si veda la guida apposita.}} | |||
==Introduzione== | ==Introduzione== | ||
<code>Memcached</code> è un sistema di caching distribuito in RAM per oggetti, è molto usato nell'ambito di applicazioni web dinamiche per alleviare il carico sul database, facendo in modo di servire alcuni dei dati ai quali l’accesso è più frequente, direttamente dalla memoria RAM.<br/> | <code>Memcached</code> è un sistema di caching distribuito in RAM per oggetti, è molto usato nell'ambito di applicazioni web dinamiche per alleviare il carico sul database, facendo in modo di servire alcuni dei dati ai quali l’accesso è più frequente, direttamente dalla memoria RAM.<br/> | ||
Riga 6: | Riga 9: | ||
Per poter seguire questa guida è necessario avere un server Debian correttamente installato, su cui girino i servizi Apache2, PHP5 e MySQL. Per l'installazione di un ambiente LAMP di questo genere si veda ad esempio la guida [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]].<br/> | Per poter seguire questa guida è necessario avere un server Debian correttamente installato, su cui girino i servizi Apache2, PHP5 e MySQL. Per l'installazione di un ambiente LAMP di questo genere si veda ad esempio la guida [[Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5]].<br/> | ||
==Verifiche preliminari== | ==Verifiche preliminari== | ||
Controlliamo innanzitutto di avere un ambiente LAMP funzionante, creando una pagina che riepiloghi le informazioni sull'ambiente PHP installato: | Controlliamo innanzitutto di avere un ambiente LAMP funzionante, creando una pagina che riepiloghi le informazioni sull'ambiente PHP installato. | ||
* '''Fino a Debian Wheezy''': | |||
<pre> | <pre> | ||
# nano /var/www/phpinfo.php | # nano /var/www/phpinfo.php | ||
</pre> | |||
* '''Da Debian Jessie''': | |||
<pre> | |||
# nano /var/www/html/phpinfo.php | |||
</pre> | </pre> | ||
Il contenuto di questo file dovrà essere il seguente: | Il contenuto di questo file dovrà essere il seguente: | ||
Riga 19: | Riga 27: | ||
<pre>http://indirizzo.IP.del.server/phpinfo.php</pre> | <pre>http://indirizzo.IP.del.server/phpinfo.php</pre> | ||
Dovremmo ricevere come risposta una pagina con l'elenco di tutti i moduli PHP abilitati e una serie di informazioni sul nostro sistema. | Dovremmo ricevere come risposta una pagina con l'elenco di tutti i moduli PHP abilitati e una serie di informazioni sul nostro sistema. | ||
==Installazione== | ==Installazione== | ||
A questo punto siamo pronti per installare memcache: | A questo punto siamo pronti per installare memcache: | ||
<pre> | <pre> | ||
# apt-get install memcached php5-memcache | # apt-get install memcached php5-memcache php-apc | ||
</pre> | </pre> | ||
Dopo l'installazione memcache dovrebbe già essere attivo. Lo possiamo verificare con il comando: | Dopo l'installazione memcache dovrebbe già essere attivo. Lo possiamo verificare con il comando: | ||
Riga 59: | Riga 68: | ||
</pre> | </pre> | ||
Se adesso apriamo di nuovo il browser all'indirizzo: <pre>http://indirizzo.IP.del.server/phpinfo.php</pre> dovremmo vedere tra le altre cose anche le informazioni su memcached. | Se adesso apriamo di nuovo il browser all'indirizzo: <pre>http://indirizzo.IP.del.server/phpinfo.php</pre> dovremmo vedere tra le altre cose anche le informazioni su memcached. | ||
== Configurare PHP == | == Configurare PHP == | ||
Per fare in modo che la nostra installazione di PHP utilizzi il demone appena installato occorre modificare il file di configurazione di PHP: | Per fare in modo che la nostra installazione di PHP utilizzi il demone appena installato occorre modificare il file di configurazione di PHP: | ||
Riga 108: | Riga 118: | ||
</pre> | </pre> | ||
Il risultato sarà una pagina PHP che ci comunica la versione di memcache attiva sul server e alcune piccole informazioni. | Il risultato sarà una pagina PHP che ci comunica la versione di memcache attiva sul server e alcune piccole informazioni. | ||
{{Autori | |||
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 00:35, 1 mar 2010 (CET) | |||
}} | |||
[[Categoria:Web server]] | [[Categoria:Web server]] |
Versione attuale delle 15:47, 21 giu 2017
Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.
Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione. |
Versioni Compatibili Debian 6 "squeeze" Debian 7 "wheezy" Debian 8 "jessie" |
ATTENZIONE Per Debian Stretch o superiori si veda la guida apposita. |
Introduzione
Memcached
è un sistema di caching distribuito in RAM per oggetti, è molto usato nell'ambito di applicazioni web dinamiche per alleviare il carico sul database, facendo in modo di servire alcuni dei dati ai quali l’accesso è più frequente, direttamente dalla memoria RAM.
Memcached è stato creato nel 2003 dalla compagnia che gestisce LiveJournal, la Danga Interactive, che si trovava a dover gestire più di 20 milioni di richieste dinamiche al giorno in crescita esponenziale. L’adozione di questo innovativo sistema di caching ha permesso di ridurre drasticamente il carico sui server database e migliorare sensibilmente le performance del sito. Oggi sono molti i siti che utilizzano memcached, tra i quali Wikipedia.
Prerequisiti
Per poter seguire questa guida è necessario avere un server Debian correttamente installato, su cui girino i servizi Apache2, PHP5 e MySQL. Per l'installazione di un ambiente LAMP di questo genere si veda ad esempio la guida Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5.
Verifiche preliminari
Controlliamo innanzitutto di avere un ambiente LAMP funzionante, creando una pagina che riepiloghi le informazioni sull'ambiente PHP installato.
- Fino a Debian Wheezy:
# nano /var/www/phpinfo.php
- Da Debian Jessie:
# nano /var/www/html/phpinfo.php
Il contenuto di questo file dovrà essere il seguente:
<?php phpinfo(); ?>
Quindi richiamiamo da un browser la pagina:
http://indirizzo.IP.del.server/phpinfo.php
Dovremmo ricevere come risposta una pagina con l'elenco di tutti i moduli PHP abilitati e una serie di informazioni sul nostro sistema.
Installazione
A questo punto siamo pronti per installare memcache:
# apt-get install memcached php5-memcache php-apc
Dopo l'installazione memcache dovrebbe già essere attivo. Lo possiamo verificare con il comando:
# netstat -tap | grep memcached tcp 0 0 *:11211 *:* LISTEN 3053/memcached
Come si vede dall'output di netstat
, memcached è in ascolto sulla porta 11211 (la sua porta di default) e risponde su tutte le interfacce del sistema. Poichè memcached non ha un sistema integrato di autenticazione questo significa che la porta 11211 è aperta a chiunque voglia connettersi, e ciò non è bene.
Per evitare una cosa del genere, possiamo chiudere la posta 11211 sul firewall della nostra rete, oppure riconfigurare memcached e metterlo in ascolto solo su localhost:
# nano /etc/memcached.conf
Aggiungete la dicitura -l 127.0.0.1
alla configurazione di memcached, nella sezione del file indicata qui:
[...] # Specify which IP address to listen on. The default is to listen on all IP addresses # This parameter is one of the only security measures that memcached has, so make sure # it's listening on a firewalled interface. # -l 12.34.56.78 -l 127.0.0.1 [...]
Quindi riavviate memcached:
/etc/init.d/memcached restart
e lanciate di nuovo:
# netstat -tap | grep memcached tcp 0 0 localhost.localdo:11211 *:* LISTEN 3092/memcached
Come possiamo vedere, adesso memcached è in ascolto solo su localhost.
Riavviamo infine anche Apache per fare in modo che la nostra nuova configurazione PHP diventi attiva:
# /etc/init.d/apache2 restart
Se adesso apriamo di nuovo il browser all'indirizzo:
http://indirizzo.IP.del.server/phpinfo.php
dovremmo vedere tra le altre cose anche le informazioni su memcached.
Configurare PHP
Per fare in modo che la nostra installazione di PHP utilizzi il demone appena installato occorre modificare il file di configurazione di PHP:
# nano /etc/php5/apache2/php.ini
cercando le righe:
session.save_handler = files ;session.save_path =
e modificandole come segue:
session.save_handler = memcache session.save_path = “tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15″
Utilizzo di memcached nelle applicazioni
Per utilizzare memcached nelle nostre applicazioni PHP ci conviene fare riferimento alla documentazione ufficiale del demone:
Esempio
Come piccolo esempio di utilizzo di memcache possiamo studiare questo script:
# nano /var/www/memcachetest.php
il cui contenuto sarà simile al seguente:
<?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"; var_dump($get_result); ?>
Il risultato sarà una pagina PHP che ci comunica la versione di memcache attiva sul server e alcune piccole informazioni.
Guida scritta da: Ferdybassi 00:35, 1 mar 2010 (CET) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |