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 :

include() avec un chemin commençant par / : fichier non trouvé dans le document root


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de torrgovin
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 105
    Par défaut include() avec un chemin commençant par / : fichier non trouvé dans le document root
    Bonjour à tous

    J'ai un petit problème lorsque j'inclus un fichier comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('/includes/lang_config.php');?>
    En effet, une fois sur le site, l'erreur suivante s'affiche...

    Warning: include(/includes/lang_config.php) [function.include]: failed to open stream: No such file or directory in /home/odysseetransfer/index.php on line 49
    Mais si je mets includes/lang_config.php sans le / au début, tout marche correctement.

    On voit bien qu'il prend home comme racine...
    Pourquoi va t'il chercher à la racine de Home alors que la racine devrait être Odysseetransfer ?

    J'ai regardé dans la config d'apache dans site-avalaible, et j'ai changé la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocumentRoot /home/odysseetransfer
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DocumentRoot /odysseetransfer
    mais lorsque je redémarrer apache, vois l'erreur que j'obtiens:

    DocumentRoot [Warning: DocumentRoot [/odysseetransfer] does not exist]
    Un peu normal...

    Pourquoi voit-il home comme une racine alors qu'elle devrait être odysseetransfer?

    Merci à vous pour votre aide qui me sera précieuse.
    Cordialement

  2. #2
    Membre émérite
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 812
    Par défaut
    Bonjour,
    Je ne saurais répondre à ta question mais je te conseillerais pour ton code d'écrire ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    $path= $_SERVER['DOCUMENT_ROOT'];
    include($path.'/includes/lang_config.php');
    ?>

    Ce qui devrait résoudre ton problème.

  3. #3
    Membre éclairé Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 275
    Par défaut
    que tu soit dans la config apache ou dans l'insertion d'un code, les liens ont le meme principe
    en supposant que ton site soit fait comme ça =>
    /home/odysseetransfer/includes/
    soit tu démarres de la racine (la racine, c'est pas "home", c'est "/" )
    en supposant que tu sois dans "/home/odysseetransfer"

    include '/home/odysseetransfer/includes/lang_config.php'
    tu peux faire aussi
    include 'includes/lang_config.php' ou './includes/lang_config.php'

    je ne crois pas que apache accepte autre chose qu'un lien comme ça
    /home/odysseetransfer
    (ah merdoum, j'ai oublié comment on nommait ces ecritures de liens ....y'en a bien un qui va passer par là ...? )

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    include() n'utilise pas la configuration Apache.
    / est donc la racine du disque.

    si tu veux faire tes include() en utilisant la configuration apache, il faut utiliser $_SERVER['DOCUMENT_ROOT'] dans ton chemin.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 275
    Par défaut
    (ah merdoum, j'ai oublié comment on nommait ces ecritures de liens ....y'en a bien un qui va passer par là ...? )
    ça y est .. !! ce sont les url relatives :

    ./ correspond au dossier actuel ;
    ../ correspond au dossier parent ;
    / correspond au dossier racine.

    url absolue:
    http://tonsite.com/odysseetransfer/index.php , par exemple

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 46
    Par défaut
    personnellement je fais toujours ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    Require('/home/login_serveur/include/fichier.php');

    ce long chemin prend moins de ressource que :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    Require('../../include/fichier.php');

Discussions similaires

  1. dlookup avec condition chaine commençant par 'xx'
    Par mayabf dans le forum VBA Access
    Réponses: 1
    Dernier message: 11/09/2009, 02h11
  2. Fichier css inséré par link non trouvé
    Par tiesto95 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 28/01/2009, 21h12
  3. Fichier non trouvé dans le classpath
    Par X448GN dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 15/09/2008, 10h21
  4. Réponses: 2
    Dernier message: 03/03/2008, 04h31
  5. fichier non trouvé dans apache?
    Par darkbob dans le forum Web
    Réponses: 1
    Dernier message: 18/07/2006, 04h03

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