Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/01/2011, 15h07   #1
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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 :
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
Citation:
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h16   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h30   #3
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h31   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h37   #5
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h40   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 15h51   #7
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h05   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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 ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h10   #9
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h15   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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 *
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h19   #11
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
ouvert le fichier apache2.conf, mais il n'y a aucune directive Listen :s
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h20   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h22   #13
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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 :
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 ?
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 16h45   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
normalement oui
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 18h13   #15
Membre à l'essai
 
Inscription : novembre 2007
Messages : 88
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : novembre 2007
Messages : 88
Points : 23
Points : 23
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
splifferwolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h50.


 
 
 
 
Partenaires

Hébergement Web