Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1292 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  gros bug PHP linux avec include

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gros bug PHP linux avec include

n°1665800
pierrickg
Posté le 04-01-2008 à 13:38:04  profilanswer
 

Bonjour,
depuis le 1er janvier j'ai un bug lorsque j'inclue un fichier en PHP avec la fonction include mais uniquement si j'appelle avec un lien HTTP.
Il m'arrivait de temps en temps d'avoir l'erreur PHP :
 

Code :
  1. PHP Warning:  main(http://www.domaine.com/fichier.inc) [<a href='function.main'>function.main</a>]: failed to open stream: Success in /home/site/public_html/dossier/index.php on line 127


 
Mais maintenant, Linux crée un fichier core.nnnn (n = chiffre) dans le dossier du fichier PHP à afficher (index.php) et la page web s'arrête là sans errreur PHP. Les fichiers font 0, 6 ou 8Mo.
 
Infos sur le système :
System     Linux sima.securenet-server.net 2.4.21-47.0.1.EL #1 Thu Oct 19 11:42:25 EDT 2006 i686
Build Date     Aug 10 2007 15:26:04
PHP Version 4.4.7
 
J'ai testé, je bug à chaque include en HTTP et pas en chemin relatif ou en local (/home/site/www/...).
 
D'où peut venir ce bug SVP ?

mood
Publicité
Posté le 04-01-2008 à 13:38:04  profilanswer
 

n°1665806
Koyomi
www.sebastiengilles.com
Posté le 04-01-2008 à 13:40:53  profilanswer
 

Peut etre que ce n'est pas un bug tout simplement ? Peut etre est-ce juste une configuration de ton module PHP ou d'apache ?

n°1665887
pierrickg
Posté le 04-01-2008 à 15:27:13  profilanswer
 

la fonction allow_url_fopen de PHP est sur ON ce qui doit permettre l'inclusion via HTTP.
Il y avait des bugs si la page n'arrivait pas à charger via HTTP mais c'était rès rare et devait venir de lenteur du réseau.
Maintenant, c'est un vrai bug de Linux qui me fait les fichiers core.nnnn. Je ne sais pas comment analyser ces fichiers sous windows.

n°1665903
Koyomi
www.sebastiengilles.com
Posté le 04-01-2008 à 15:52:26  profilanswer
 

montre nous ton code ce sera plus simple que de jouer aux devinettes ;)
 

Citation :

Maintenant, c'est un vrai bug de Linux qui me fait les fichiers core.nnnn.


 
les fichiers core.xxxx sont des dump mémoire qui sont ecrit lorsqu'une exception est levée et non "un vrai bug de Linux"  

n°1665952
pierrickg
Posté le 04-01-2008 à 17:37:23  profilanswer
 

mon code est d'une simplicité extrême

Code :
  1. <?php include('http://www.monsite.com/fichier.inc'); ?>


dans une page HTML quelconque.
 
Ca plante quelque soit la page où est mis ce code (des dizaines de différentes).
l'URL peut être dirigée vers mon site ou un autre site, ça plante.
quelque soit le type de fichier à inclure ça plante (php, inc, txt...).
 
si je mets:

Code :
  1. <?php include('fichier.inc'); ?>
  2. ou
  3. <?php include('/home/site/www/fichier.inc'); ?>


ça marche impeccable.
 
Maintenant, je n'ai pas accès à l'OS du serveur mutualisé, j'ai juste récupérer des fichiers core.xxxx qui font 8Mo et dont je ne sais pas quoi faire.
Je me fait hébergé chez un petit hébergeur, le gérant ne sais pas quoi me dire, j'espère avoir un technicien qui regarde son install mais je préfère chercher le noeud du problème de mon côté.
Avant le 1er janvier, ça faisait un simple 'Warning' PHP, maintenant ça m'arrête l'affichage de la page à cette ligne sans aucun message d'erreur PHP et créé un fichier core.xxx.
 
 
 

n°1665979
omega2
Posté le 04-01-2008 à 17:55:41  profilanswer
 

pierrickg > Si j'ai bien compris, tu cherches à inclure (par liaison http) un fichier situé à la racine de ton propre site. Si c'est ça, pourquoi ne fais tu pas simplement une inclusion par le système de fichier en utilisant le répertoire de base du site comme répertoire de position du fichier? (il y a plusieurs exemples du genre qui trainent sur le forum)
 
C'est une solution qui se montrera aussi simple, plus fiable (pas de risques de refut de connexion, de risque de "timeout", d'échec du à un changement de configuration d'apache ou d'un .htaccess, ... ) et moins consommatrice de ressource (ça pompe moins de ressource de lire directement un fichier que de demander à un autre programme de le lire et de retourner son contenu).

n°1665989
pierrickg
Posté le 04-01-2008 à 18:04:05  profilanswer
 

omega2 : tu as tout à fait raison... pour l'instant c'est ce que j'ai fait et ça marche.
Mais j'aimerai comprendre comment résoudre le problème pour de prochaines applis en construction qui devront choper des fichiers xml et autres en fichiers distants.

n°1666017
omega2
Posté le 04-01-2008 à 18:22:51  profilanswer
 

Essaye de voir ce que t'obtient quand tu inclus une page hébergé sur un autre serveur. Parfois certains serveurs sont réglé pour accepter les appels distants mais pas les appels locals.

n°1666100
pierrickg
Posté le 04-01-2008 à 20:29:11  profilanswer
 

si j'inclus une page distante (un fichier txt d'un compte free.fr par ex), j'ai le même bug que si j'inclus un fichier local. Tant que c'est un protocol HTTP ça plante.

n°1666297
nargy
Posté le 05-01-2008 à 04:20:04  profilanswer
 

C'est que le wrapper HTTP de PHP n'est pas disponible ou mal configuré sur ta machine. Le problème peut venir de:
- vieille version de PHP < 5,
- le wrapper n'a pas été compilé,
- le wrapper est inactif (voir php.ini).
 
Regarde ici pour connaître ta config actuelle: http://fr.php.net/manual/fr/functi [...] appers.php

mood
Publicité
Posté le 05-01-2008 à 04:20:04  profilanswer
 

n°1666321
pierrickg
Posté le 05-01-2008 à 11:11:56  profilanswer
 

OK, j'ai bien tenté la fonction pour connaître la config mais en PHP4 elle ne marche pas :-((
 
Je n'ai pas accès au php.ini et l'info sur le wrapper n'apparaît pas en lançant info().
Par contre, en regardant le résultats de info(), j'ai cette ligne :

Code :
  1. _ENV["HTTP_ACCEPT"] text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5


 
Je vais pousser mon hébergeur à passer à PHP5, si ça ne résoud pas le pb je tenterai de voir avec cette fameuse fonction.
En attendant il pourra au moins vérifier php.ini (il faut que je vois quelle ligne).
 
je ne sais pas si ça veut dire que je ne peux pas appeler des fichiers autres que ceux-là ??
 
Super nargy pour ces pistes !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  gros bug PHP linux avec include

 

Sujets relatifs
Quel livre pour apprendre la programmation sous linux ?Php et formulaire menu déroulant
PHP: lit le dernier enregistrement de la reqûeteSigner en DSA avec PHP
[sécurité formulaire] AJAX + PHPPHP/MySQL: pb de connexion à la base avec easyphp en local
JavaScript et PHP : probléme[PHP] Du code dans un echo
[PHP+FLASH] Formulaire 
Plus de sujets relatifs à : gros bug PHP linux avec include


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR