2010-06-06 6 views
1

Lorsque je tente de se connecter à memcache en utilisant ce code:la bizarrerie de connexion Memcache

$memcache = new Memcache; 
$memcache->connect('localhost', 11211) or die ("Could not connect"); 

L'appel meurt avec le "Impossible de se connecter" erreur, mais si j'utilise IP localhost:

$memcache = new Memcache; 
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); 

Ça marche! Alors quel est mon problème? Eh bien, ce nouvel ordinateur est le seul environnement de développement que j'ai configuré, sensible à cette différence. Je ne suis pas sur le point d'aller changer les paramètres sur n'importe quel code pour ce qui semble être un problème spécifique à l'ordinateur, mais je ne peux pas comprendre ce qui pourrait causer ce comportement. Je cours XP, memcached 1.2.4, et wampserver 2. J'ai vérifié le dossier d'hôtes; il a une entrée pour localhost, et le cache DNS a été vidé ... Des idées?

+1

Question impaire: Si vous allez à l'invite de commande et tapez "ping localhost" résout-il à 127.0.0.1 et réussit à récupérer des pings? (Il devrait vraiment, mais pas de sens sauter les étapes de dépannage.) –

+0

Oooh, je pense que vous pourriez avoir cloué tout droit là-bas! localhost résolu à ":: 1". Je ne sais pas ce que cela veut dire ... – Mathew

+0

Un google plus tard ... :: 1 est ce que localhost résout avec IPv6. La solution la plus rapide consistait simplement à désinstaller IPv6; tout fonctionne bien maintenant. – Mathew

Répondre

2

Running "ping localhost", comme Conspicuous compilateur suggéré, a révélé que localhost était Résolus à :: 1 plutôt que 127.0.0.1. C'est le comportement correct pour un réseau utilisant IPv6, mais c'est ce qui était source de confusion pour memcached. Comme je n'ai pas du tout besoin d'IPv6, je l'ai désinstallé;

Faites un clic droit sur une connexion réseau > Propriétés> Sélectionnez "version Microsoft TCP/IP 6"> Désinstaller

Tout bien à nouveau!

Veuillez noter; il se peut que vous puissiez résoudre le problème de manière moins destructrice en mappant :: 1 à localhost en tant qu'entrée dans votre fichier hosts. Je ne l'ai pas essayé ...