Bonjour, je ne parviens pas à configurer mon projet Rails sur mon serveur car Apache n'arrête pas de se plaindre
DalliError: No server available
.
J'ai installé memcached
sur ma machine Ubuntu, mais cela ne fonctionne toujours pas. Le projet My Rails a également config.cache_store = :dalli_store, 'localhost:11211', { :namespace => "production" }
dans environnements/production.rb. Comment pourrais-je déboguer ceci?
Mon journal montre avant chaque demande:
localhost:11211 failed (count: 6)
DalliError: No server available
telnet au 11211:
root@s2:/usr/local/www/production/current/log# telnet localhost 11211
Trying 127.0.1.1...
telnet: Unable to connect to remote Host: Connection refused
J'ai eu le même problème. J'ai d'abord installé memcached en tant que gem gem install memcached
Et j'ai reçu l'erreur "DalliError: No server available"
Ensuite, j'ai installé memcached en faisant Sudo apt-get install memcached
. Cela fonctionne bien maintenant.
Si vous êtes un utilisateur Homebrew:
brew install memcached
Vérifiez si le service est en cours d'exécution:
brew services list
Sinon, lancez-le:
brew services start memcached
C'est parce que quelqu'un a modifié le fichier /etc/hosts
pour qu'il pointe 127.0.1.1
sur localhost au lieu de 127.0.0.1
. Après avoir changé cela, memcached
fonctionnait.
Utilisez 127.0.0.1
au lieu de localhost
devrait résoudre votre problème (et le mien).
config.cache_store = :dalli_store, '127.0.0.1:11211', { namespace: 'production' }
La réponse acceptée résoudra probablement le problème pour 95% des personnes qui constatent cette erreur, mais dans mon cas, j’ai trouvé le problème beaucoup plus fondamental:
Sur le serveur, je n'ai pas pu ping 127.0.0.1
. Cela signifiait que Dalli
ne pouvait pas se connecter au serveur memcache
, qui s'exécute par défaut sur 127.0.0.1:11211
.
Il y a un certain nombre de choses que pourrait causer ce problème, mais le plus probable est simplement une interface réseau manquante. Si vous exécutez ifconfig
, vous devriez voyez quelque chose comme ceci dans le résultat:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:15686 errors:0 dropped:0 overruns:0 frame:0
TX packets:15686 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:23730314 (23.7 MB) TX bytes:23730314 (23.7 MB)
Si cela manque, assurez-vous que votre fichier /etc/network/interfaces
contient la définition d'interface locale suivante:
auto lo
iface lo inet loopback
Et puis redémarrez le service de réseau:
Sudo /etc/init.d/networking restart