Page 1 sur 1

file_get_contents() avec apache démarré en service windows

Posté : 03 juil. 2007, 18:17
par AVI3000
Bonjour,

La fonction file_get_contents(http://www.site-distant.com) fonctionne parfaitement quand je démarre Apache en application.

j'ai les messages suivants quand Apache est démarré comme service windows

Code : Tout sélectionner

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Hôte inconnu. in D:\Program Files\EasyPHP 2.0b1\www\monPGM.php on line 4 Warning: file_get_contents(http://www.site-distant.com) [function.file-get-contents]: failed to open stream: No error in D:\Program Files\EasyPHP 2.0b1\www\monPGM.php on line 4
le démarrage d'Apache en service est bien sur nécessaire

Merci

Posté : 03 juil. 2007, 19:59
par chrislabricole
Il doit y avoir une configuration différente entre tes 2 serveurs...
regarde dans ton php.ini :)

Posté : 03 juil. 2007, 20:05
par AVI3000
mauvaise pioche!

c'est le même serveur que je démarre en service(ça marche pas) ou en console(ça marche)

merci quand même

Posté : 03 juil. 2007, 20:08
par chrislabricole
à ok, je perciste sur le php.ini, regarde si ton serveur à les droits d'aller inclure ou aller sur la toile :)
si il est à off et que tu le met à on, fais attention sur la sécurité des pages php.....

PS: dans une page, met cela :
<?php
include('http://google.fr/index.html');
?>
dit moi se que tu obtient :
- soit un message d'erreur et c'est dans le php.ini qu'il faut chercher
- soit google dans ton site et j'ai tord et je dit "autant pour moi"

Posté : 03 juil. 2007, 20:15
par AVI3000
je vais faire tout çà,

mais je ne suis plus au bureau,

je vérifie si je peux faire les tests maintenant de la maision (réseau freebox)

quelle directive du php.ini est à positionner ?

Code : Tout sélectionner

Warning: include() [function.include]: URL file-access is disabled in the server configuration in D:\Program Files\EasyPHP 2.0b1\www\testA.php on line 2 Warning: include(http://google.fr/index.html) [function.include]: failed to open stream: no suitable wrapper could be found in D:\Program Files\EasyPHP 2.0b1\www\testA.php on line 2 Warning: include() [function.include]: Failed opening 'http://google.fr/index.html' for inclusion (include_path='.;D:/Program Files/EasyPHP 2.0b1\php5\pear\') in D:\Program Files\EasyPHP 2.0b1\www\testA.php on line 2

Code : Tout sélectionner

;;;;;;;;;;;;;;;;;; ; Fopen wrappers ; ;;;;;;;;;;;;;;;;;; ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. allow_url_fopen = On ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. ;allow_url_include = Off allow_url_include = On
allow_url_include à on permet d'inclure la page google

Posté : 03 juil. 2007, 20:34
par chrislabricole
ouvre ton php.ini avec le bloc note et tu fais :
Edition > Rechercher...
tu cherche "allow_url_fopen" si la valeur est à "Off", met "On"
puis, tu refais la même oppération mais cette fois si, tu recherche "allow_url_include", si la valeur est à "Off", met "On"
et tu enregistre, puis, n'oublie pas de redemarrer apache...

Posté : 03 juil. 2007, 20:36
par AVI3000
on parle en même temps

Posté : 03 juil. 2007, 20:39
par chrislabricole
à oui lol
alors ? sa marche ?

Posté : 04 juil. 2007, 10:54
par AVI3000
ici ça fonctionne mais je suis en windows XP (windows2000 au bureau)
tout l'environnement réseau et sécurité est différent, mais çà parmet de dégrossir le sujet.

allow_url_include = On est nécessaire pour include('http://google.fr/index.html');
mais pas pour file_get_contents (je refais un test pour être sur)

au Bureau:
c'était l'installation du service Apache en LocalSystem (non autorisé sur la passerelle Internet), donc pas d'accès à la toile, uniquement Intranet.
redémarrage d'Apache avec un user autorisé sur la passerelle et tout est OK.