SwOrDoFmYdEsTiNy
11-02-2015, 18:57
Buona sera apro questo thread perchè ho un problema con la configurazione di memcached su nginx.
l'ambiente in cui sto lavorando è una red hat 5.7 su cui è installato nginx + php-fpm + memcached.
Sul web server sono configurati due server block, uno per host1.com (su cui memcached NON deve essere caricato) e uno per host2.com (su cui memcached DEVE essere caricato).
Sono anche presenti due pool php-fpm (in ascolto su due porte diverse), uno per host1 (quello di default di php-fpm) e uno per host2 (su cui è stata aggiunta la riga relativa al caricamento di memcached.so)
Dalla pagina phpinfo() eseguita su host2.com vedo che memcached è caricato e funziona, e se provo a creare una pagina php di prova riesco a inserire i dati i cache e anche a recuperarli.
Il problema si presenta dopo qualche refresh, perchè viene mostrata una pagina bianca e tutto ciò che è legato a memcached smette di funzionare, anche se è capitato che dopo 40 refresh funzionasse un paio di volte per poi smettere di nuovo.
Dai log di php-fpm vedo diversi fatal error, tutti legati a memcached, a volte non trova la classe Memcached() mentre altre volte non riesce a trovare i metodi (get e set sono quelli usati).
Se mi collego tramite telnet al demone memcached riesco a interagire senza problemi (nonstante tramite php non funzioni nulla) riesco infatti a vedere lo stato del demone (tramite il comando stats) e anche a recuperare i valori salvati nella cache.
Se viene fatto il restart del servizio php-fpm tutto ricomincia a funzionare per qualche minuto ma poi smette.
è tutto il giorno che ci sbatto la testa ma non ho trovato nessuna soluzione, è come se l'interprete php si dimenticasse di avere a disposizione quel modulo.
La pagina di prova di memcached è scritta nel seguente modo:
<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
$result = $mc->get("test_key");
if($result) {
echo $result;
} else {
echo "No data on Cache. Please refresh page pressing F5";
$mc->set("test_key", "test data pulled from Cache!") or die ("Failed to save data at Memcached server");
}
?>
Qualcuno ha idea di cosa possa essere? Grazie mille e buona serata
edit: Mi sono dimenticato di dire che sul web server è installato joomla, ma non me ne occupo io e non ho modo di interagire con joomla stesso (e penso anche che non si collegato al problema, ma sinceramente non so più dove sbattere la testa XD)
l'ambiente in cui sto lavorando è una red hat 5.7 su cui è installato nginx + php-fpm + memcached.
Sul web server sono configurati due server block, uno per host1.com (su cui memcached NON deve essere caricato) e uno per host2.com (su cui memcached DEVE essere caricato).
Sono anche presenti due pool php-fpm (in ascolto su due porte diverse), uno per host1 (quello di default di php-fpm) e uno per host2 (su cui è stata aggiunta la riga relativa al caricamento di memcached.so)
Dalla pagina phpinfo() eseguita su host2.com vedo che memcached è caricato e funziona, e se provo a creare una pagina php di prova riesco a inserire i dati i cache e anche a recuperarli.
Il problema si presenta dopo qualche refresh, perchè viene mostrata una pagina bianca e tutto ciò che è legato a memcached smette di funzionare, anche se è capitato che dopo 40 refresh funzionasse un paio di volte per poi smettere di nuovo.
Dai log di php-fpm vedo diversi fatal error, tutti legati a memcached, a volte non trova la classe Memcached() mentre altre volte non riesce a trovare i metodi (get e set sono quelli usati).
Se mi collego tramite telnet al demone memcached riesco a interagire senza problemi (nonstante tramite php non funzioni nulla) riesco infatti a vedere lo stato del demone (tramite il comando stats) e anche a recuperare i valori salvati nella cache.
Se viene fatto il restart del servizio php-fpm tutto ricomincia a funzionare per qualche minuto ma poi smette.
è tutto il giorno che ci sbatto la testa ma non ho trovato nessuna soluzione, è come se l'interprete php si dimenticasse di avere a disposizione quel modulo.
La pagina di prova di memcached è scritta nel seguente modo:
<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);
$result = $mc->get("test_key");
if($result) {
echo $result;
} else {
echo "No data on Cache. Please refresh page pressing F5";
$mc->set("test_key", "test data pulled from Cache!") or die ("Failed to save data at Memcached server");
}
?>
Qualcuno ha idea di cosa possa essere? Grazie mille e buona serata
edit: Mi sono dimenticato di dire che sul web server è installato joomla, ma non me ne occupo io e non ho modo di interagire con joomla stesso (e penso anche che non si collegato al problema, ma sinceramente non so più dove sbattere la testa XD)