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

  1. #1
    Membre du Club 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
    Points : 69
    Points
    69
    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 éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 808
    Points : 912
    Points
    912
    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 habitué Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 267
    Points : 164
    Points
    164
    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
    Points : 44 155
    Points
    44 155
    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 habitué Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 267
    Points : 164
    Points
    164
    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 du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 46
    Points : 41
    Points
    41
    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, 01h11
  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, 20h12
  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, 09h21
  4. Réponses: 2
    Dernier message: 03/03/2008, 03h31
  5. fichier non trouvé dans apache?
    Par darkbob dans le forum Web
    Réponses: 1
    Dernier message: 18/07/2006, 03h03

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