IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

fopen et autre socket vers fichier externe impossible


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut fopen et autre socket vers fichier externe impossible
    Bonjour tout le monde,

    Je viens vers vous car je tombe sur un problème avec les fonction fopen et autre socket

    En faite je possède un hébergement web auprès d'un fournisseur (que j'appèlerai site1), et j'ai monter un serveur web chez moi(site2) sous debian 5 squeeze, maintenant j'aimerai créer une page me disant si site2 est en ligne ou non.

    Donc voilà comment j'ai analyser la chose, je me suis dit que file_get_contents devrais être suffisant pour savoir si mon serveur est en ligne, si j'arrive à récupérer le contenu de la page de site2 alors il est en ligne sinon hors ligne, mon analyse est-elle correct ?

    je crée donc un fichier php sur site1 que je nome status.php contenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // juste pour tester que la fonction est disponible
    $page = file_get_contents('http://www.google.com');
    echo $page;
     
    # OK la page google est bien affiché donc la fonction est disponible
     
    // Maintenant vers mon serveur web personnel
    $homepage = file_get_contents('http://mon_ip/~monsite');
    echo $homepage;
     
    # La erreur
    Donc lorsque je lance la fonction vers mon serveur personnel voici l'erreur que j'obtient
    Warning: file_get_contents(http://mon_ip/~monsite) [function.file-get-contents]: failed to open stream: No route to host in ...
    Si j'essaye de comprendre l'erreur il me dit que c'est un problème de routage qui ne se fait pas, suis-je bon ?

    Là je me dit ben je vais tester directement dans mon navigateur, donc j'ouvre FF et je tape "http://mon_ip/~monsite" et là ma page s'affiche, donc je suppose que le routage fonctionne, contrairement à ce que me dit l'erreur puisque j'accède directement au site par le navigateur.

    et la même erreur survient avec fopen et les autres fonction du même type

    Si je ne me suis pas tromper et que ce n'est pas un problème de routage, dans ce cas d'où pourrait venir le problème ?

    Je me dit que ca ne peut pas être mon virtualhost sinon j'y accèderai pas par mon navigateur non plus.

    D'avance je vous remercie de m'aider à résoudre ce problème, je répondrait du mieux que je peut au question que vous voudriez poser.

    Merci
    spliff

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par splifferwolf Voir le message
    Donc voilà comment j'ai analyser la chose, je me suis dit que file_get_contents devrais être suffisant pour savoir si mon serveur est en ligne, si j'arrive à récupérer le contenu de la page de site2 alors il est en ligne sinon hors ligne, mon analyse est-elle correct ?
    non, parce que un serveur peu mettre autant de temps qu'il veux a te répondre, c'est le client qui choisie la durée max, la limite étant ici celle de PHP (default_socket_timeout je crois)

    tu peu toujours simplifier les chose en passant par get_headers meme si le timeout sera toujours la, sinon passé par curl même si le problème restera dans le fond le même

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    ca serait donc plus un problème de timeout par le client (site1) ?

    est-il possible d'augmenter ce timeout ? en sachant que je n'ai pas accès au fichier de configuration php de site1

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par splifferwolf Voir le message
    ca serait donc plus un problème de timeout par le client (site1) ?

    est-il possible d'augmenter ce timeout ? en sachant que je n'ai pas accès au fichier de configuration php de site1


    si dans ton navigateur t'arrive a ouvrir http://mon_ip/~monsite, mais pas avec file_get_contents, la y'a un problème par contre

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    ben oui c'est là tout le problème

    Mon navigateur m'affiche la page dans la seconde
    Mais fopen, file_get_contents ... eux me retourne la même erreur sur site1

    Maintenant que j'y pense, si c'était un problème de timeout il m'afficherait le message d'erreur en rapport avec le timeout plutôt que l'erreur de route non ?, surtout que l'erreur s'affiche immédiatement, la page ne met que max 2 seconde pour m'afficher cette erreur, 2 seconde c'est cours pour un timeout

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par splifferwolf Voir le message
    ben oui c'est là tout le problème

    Mon navigateur m'affiche la page dans la seconde
    Mais fopen, file_get_contents ... eux me retourne la même erreur sur site1

    Maintenant que j'y pense, si c'était un problème de timeout il m'afficherait le message d'erreur en rapport avec le timeout plutôt que l'erreur de route non ?, surtout que l'erreur s'affiche immédiatement, la page ne met que max 2 seconde pour m'afficher cette erreur, 2 seconde c'est cours pour un timeout
    t'es sur que ton site renvoie bien a l'exterieur et que tu reste pas dans ta boucle local, y'a surement un soucis de DNS la, quand ton serveur est up t'as essayer le de l'ouvrir a partir d'une autre connexion (ton téléphone, ou le wifi du voisin par exemple)

    le timeout c'était plus au niveau de la réflexion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liens vers fichiers externes - pas pu trouver la classe principale
    Par pfandflasche dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 04/05/2013, 12h42
  2. Déplacer une image d'une feuille vers une autre dans un fichier Excel
    Par helenaide dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 15h27
  3. Réponses: 5
    Dernier message: 14/09/2011, 13h13
  4. Réponses: 5
    Dernier message: 25/05/2011, 10h26
  5. [Administration] Impossible d'avoir autre chose que fichier,v
    Par affro-jojo dans le forum CVS
    Réponses: 0
    Dernier message: 31/12/2008, 01h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo