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

  1. #1
    Membre régulier
    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
    Points : 114
    Points
    114
    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 éminent sénior

    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
    Points : 10 727
    Points
    10 727
    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 régulier
    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
    Points : 114
    Points
    114
    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 éminent sénior

    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
    Points : 10 727
    Points
    10 727
    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 régulier
    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
    Points : 114
    Points
    114
    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 éminent sénior

    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
    Points : 10 727
    Points
    10 727
    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

  7. #7
    Membre régulier
    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
    Points : 114
    Points
    114
    Par défaut
    mmmm je pense que tu viens mettre le doigt sur le problème, éffectivement quand je me connect sur "http://mon_ip_public/~monsite"

    depuis mon portable qui gère le serveur (donc sur le même réseau) pas de souci
    par contre depuis le navigateur de mon téléphone la demande est trop longue

    Je vais donc me tourner vers ce point, va être autre chose ca, lol, je vais donc utiliser mon amis google voir comment sortir de cette boucle local.

    Ne manquerait pas de vous tenir informer

  8. #8
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par splifferwolf Voir le message
    mmmm je pense que tu viens mettre le doigt sur le problème, éffectivement quand je me connect sur "http://mon_ip_public/~monsite"

    depuis mon portable qui gère le serveur (donc sur le même réseau) pas de souci
    par contre depuis le navigateur de mon téléphone la demande est trop longue

    Je vais donc me tourner vers ce point, va être autre chose ca, lol, je vais donc utiliser mon amis google voir comment sortir de cette boucle local.

    Ne manquerait pas de vous tenir informer
    ta un routeur/box pour ton serveur maison ?

  9. #9
    Membre régulier
    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
    Points : 114
    Points
    114
    Par défaut
    oui, je suis chez belgacom et j'ai la bbox

    j'ai créer une redirection de ports 80 vers le serveur et sont port 80, donc de ce coter là ca devrais être bon

    Maintenant, j'ai vue sur internet qu'il fallait mettre en commentaire une ligne commencnat par listen dans le httpd.conf de apache2 mais impossible de trouver ce fichier senser ce trouver dans /etc/apache2/ mais non il n'y est pas :s

    Je continue mes recherches xD

  10. #10
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par splifferwolf Voir le message
    oui, je suis chez belgacom et j'ai la bbox

    j'ai créer une redirection de ports 80 vers le serveur et sont port 80, donc de ce coter là ca devrais être bon

    Maintenant, j'ai vue sur internet qu'il fallait mettre en commentaire une ligne commencnat par listen dans le httpd.conf de apache2 mais impossible de trouver ce fichier senser ce trouver dans /etc/apache2/ mais non il n'y est pas :s

    Je continue mes recherches xD
    sous debian c'est le fichier apache2.conf
    au niveau du Listen tu peux mettre un wildcard *

  11. #11
    Membre régulier
    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
    Points : 114
    Points
    114
    Par défaut
    ouvert le fichier apache2.conf, mais il n'y a aucune directive Listen :s

  12. #12
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par splifferwolf Voir le message
    ouvert le fichier apache2.conf, mais il n'y a aucune directive Listen :s
    elle est peu être commenté, normalement c'est vers le haut du fichier

  13. #13
    Membre régulier
    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
    Points : 114
    Points
    114
    Par défaut
    Ok trouver la directive, elle se trouve en faite dans le fichiers ports.conf qui lui est inclus dans apache2.conf

    voici la directive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    # If you just change the port or add more ports here, you will likely also
    # have to change the VirtualHost statement in
    # /etc/apache2/sites-enabled/000-default
    # This is also true if you have upgraded from before 2.2.9-3 (i.e. from
    # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
    # README.Debian.gz
     
    NameVirtualHost *:80
    Listen 80
     
    <IfModule mod_ssl.c>
        # If you add NameVirtualHost *:443 here, you will also have to change
        # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
        # to <VirtualHost *:443>
        # Server Name Indication for SSL named virtual hosts is currently not
        # supported by MSIE on Windows XP.
        Listen 443
    </IfModule>
     
    <IfModule mod_gnutls.c>
        Listen 443
    </IfModule>
    est-il correct selon vous ?

  14. #14
    Expert éminent sénior

    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
    Points : 10 727
    Points
    10 727
    Par défaut
    normalement oui

  15. #15
    Membre régulier
    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
    Points : 114
    Points
    114
    Par défaut
    Problème résolu, me suis dit "puisque le router est bien configurer, les virtualhost aussi, la configuration apache aussi et bien c'est le FAI le problème", direction le site du FAI espace client et cherche dans la jungle les options internet, et là surprise même si les port routeur sont bien configurer ils sont bloqué automatiquement, suivit d'un petit bouton "Débloqué" et là miracle tout fonctionne.

    Évidement c'était tout bête mais bon va savoir que les ports reste bloqué même si tu les NAT...

    En tout cas merci beaucoup de votre contribution xD

+ 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