2011-08-19 4 views
2

J'essaye de déboguer la fonction PHP stream_socket_client mais je ne sais pas vraiment comment. Voici le code que je vais avoir du mal avec:stream_socket_client time out

 $this->socket = @stream_socket_client(
      $remote, $errno, $errstr, 
      $this->request->getConfig('connect_timeout'), 
      STREAM_CLIENT_CONNECT, $context 
     ); 
     if (!$this->socket) { 
      throw new HTTP_Request2_ConnectionException(
       "Unable to connect to {$remote}. Error: {$errstr}", 
       0, $errno 
      ); 
     } 

L'exception est levée et l'erreur se lit « Impossible de se connecter à tcp: //www.dropbox.com: 80 Erreur:. Délai de connexion dépassé » . Ce code provient d'un très populaire Wordpress plugin qui a été bien testé. Le serveur sur lequel je travaille a quelques bizarreries, par ex. Je suis autorisé à télécharger ou supprimer des fichiers via PHP, etc. Je me demande donc s'il existe des paramètres PHP qui pourraient empêcher stream_socket_client de fonctionner et comment je peux vérifier ce que sont ces paramètres pour mon serveur.

+1

Peut-être que le serveur a des connexions HTTP sortantes bloquées? Problème de pare-feu? Avez-vous un accès shell au serveur? essayez de faire un "telnet www.dropbox.com:80" sur la ligne de commande et voyez si cela se connecte. Sinon, ce n'est pas un problème PHP. –

+1

Désolé, je n'ai pas d'accès shell. Ce n'est pas mon serveur, je suis simplement en train d'installer quelque chose pour quelqu'un et bien que ce ne soit pas sur un hôtel web, la configuration est comme ça avec le panneau de contrôle et tout ... –

Répondre

3

Essayez de vérifier allow_url_fopen. Voir http://php.net/manual/en/filesystem.configuration.php

+1

Selon phpinfo, allow_url_fopen est "on". –

+1

Ok. Pourriez-vous essayer fsockopen et vérifier les erreurs? Peut-être que cette erreur n'est pas liée à des flux et liée à un pare-feu ou autre chose. –

+1

D'accord, par exemple fsockopen ('www.google.com', 80); ne semble pas fonctionner. Délai de connexion également, ainsi que pour dropbox.com naturellement. Je ne sais pas ce que cela signifie cependant? Que dois-je changer dans mon environnement d'hébergement? –