“Impossible d'ouvrir le socket”
Comment puis-je atténuer le "impossible d'ouvrir le socket" erreur de ce qui se passe sur mon site?
J'ai dépanné qu'il est CAPTCHA (je suis en utilisant reCAPTCHA). C'est seulement l'affichage de cette erreur sur les deux pages où je l'utiliser reCAPTCHA.
J'ai été de la génération de nouvelles clés, et parfois ça marche et parfois ça ne marche pas. Par exemple, il a travaillé sur Safari et parfois pas, mais sur Firefox, et vice versa, et il a travaillé pour moi et pas pour un de mes partenaires, et vice-versa.
Comment puis-je résoudre ce problème? Se pourrait-il que mon serveur est d'avoir de la difficulté à faire la fsocketopen commande? Si oui, comment puis-je régler ce problème?
son été édité @Kieran Allen
OriginalL'auteur LightningWrist | 2010-07-12
Vous devez vous connecter pour publier un commentaire.
Exactement, bien que cela ne signifie pas nécessairement que quelque chose est incorrect avec votre serveur. Cela signifie seulement que, quelque part entre votre serveur et le recaptcha serveur, il existe un réseau de communications problème qui empêche la connexion de socket d'être ouvert.
Ce qui pourrait être beaucoup de choses. Il pourrait être un problème de config avec votre code ou sur votre serveur, (surtout si il y a certains aspects de la configuration de votre serveur dynamique), il pourrait être un problème au niveau de la connectivité de votre serveur, il pourrait être un problème de configuration réseau sur lequel le serveur est hébergé, il pourrait être un problème de configuration réseau n'importe où entre votre serveur et le recaptcha serveur, il pourrait être une largeur de bande d'émission où ils sont hébergés, il pourrait être un problème de configuration de leur côté. Vous pouvez utiliser l'erreur supplémentaire de déclaration des arguments à
fsockopen
pour voir si vous pouvez obtenir tous les messages qui ont du sens. Vous pouvez également tenter votre installation sur au moins 2 ou 3 serveurs différents sur totalement différents réseaux, qui pourraient aussi vous donner un peu d'indication particulière sur où est le problème.L'autre question est de savoir comment vous allez gérer ce genre de chose en général.
fsockopen
juste, parfois, ne parvient pas à obtenir une connexion, car dans le même conseillé de configurer l'environnement réseau, il n'y a pas de communication de garantie. Le matériel tombe en panne, les accidents, les administrateurs de réseau ont des gros doigts moments, des serveurs distants à se confondre, mondiale, guerre thermonucléaire peut prendre un centre de données -- vous ne savez jamais. Donc, vous avez à écrire votre code (et à gérer votre programme d'installation) si vous avez des cas de secours pour quand la panne se produit et vous afficher des messages d'erreur qui sont acceptables pour l'utilisateur final.Vous voudrez peut-être regarder en PHP
set_error_handler
de la fonction et de définir une fonction qui doit être appelée sur les occurrences oùfsockopen
échoue. Dans certaines situations, je suis devenu friand de l'utiliser pour déclencher des exceptions, quelque chose comme ceci:Avec cette configuration, vous pourriez gérer
fsockopen
connexions quelque chose comme ceci:Dans l'essai, la clause, "fsocketopen" doit être "fsockopen"
OriginalL'auteur Weston C