1. #1
    Nouveau Membre du Club
    Homme Profil pro
    Inscrit en
    octobre 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : octobre 2009
    Messages : 112
    Points : 36
    Points
    36

    Par défaut Alias apache et erreur require_once php

    Bonsoir,

    Je fais appel à vos lumières car je suis confronté à une erreur que je n'arrive pas à réglé.

    Je travail avec wamp et utilise apache 2.4.2. Le site sur le quel je suis est hébergé sur un lecteur F: et j'y accède par vhost.

    J'essaye d'inclure par alias mes classes perso php (pour les partager entre les différents projets).

    Le résultat : j'accède bien à mon dossier virtuel lorsque je tape dans mon navigateur backoffice.monsite.fr/library/mylibs, par contre je me retrouve avec ces deux erreurs php lorsque j'utilise un require_once :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: require_once(/library/mylibs/database.class.php): failed to open stream: No such file or directory in F:\Projects\MonSite\BackOfficev1\Sources\index.php on line 9
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: require_once(): Failed opening required '/library/mylibs/database.class.php' (include_path='.;C:\php\pear') in F:\Projects\MonSite\BackOfficev1\Sources\index.php on line 9
    A la ligne 9 de mon script php, j'ai simplement cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("/library/mylibs/database.class.php");
    Sinon, dans mon fichier httpd-vhosts.conf, j'ai cette configuration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <VirtualHost *:80>
    	DocumentRoot "F:/Projects/MonSite/BackOfficev1/Sources/"
    	ServerName backoffice.monsite.fr
    	<Directory "F:/Projects/MonSite/BackOfficev1/Sources/">
    		Options All
    		AllowOverride All
    		Require all granted
    	</Directory>
    	Alias /library/mylibs/ "F:/Projects/MyProjects/MyLibs/Sources/php/"
    	<Directory "F:/Projects/MyProjects/MyLibs/Sources/php/">
    		Options All
    		AllowOverride All
    		Require all granted
    	</Directory>
    </VirtualHost>
    De quoi pourrait venir ce problème ?

    Merci par avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 589
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 589
    Points : 12 590
    Points
    12 590

    Par défaut

    Les fonctions require* et include* font des accès aux fichiers en passant par le système de fichier local, pas du tout par URL. Donc pour que ton require_once passe, il faudrait que ton chemin /library/mylibs/database.class.php soit un vrai chemin système valide et reconnu. Or, comme tu es sous Windows, ça devrait plutôt être "C:\..." ou "F:\...".

    Je ne suis pas une brute en PHP mais ce que tu peux faire c'est utiliser un truc qui est décrit dans la doc officielle PHP (c'en est une bonne idée, de la lire, dis donc !) : indiquer dans l'include path du fichier php.ini le répertoire où trouver tes bibliothèques et faire un require_once sans le / devant.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Nouveau Membre du Club
    Homme Profil pro
    Inscrit en
    octobre 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : octobre 2009
    Messages : 112
    Points : 36
    Points
    36

    Par défaut

    Bonsoir,

    Merci pour ta réponse. Entre temps j'ai continué de chercher et je suis tombé sur cette solution (déclaration des chemins dans le php.ini).

  4. #4
    Rédacteur/Modérateur
    Avatar de _Mac_
    Inscrit en
    août 2005
    Messages
    9 589
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 9 589
    Points : 12 590
    Points
    12 590

    Par défaut

    Ca marche bien dans la mesure où tu as accès au fichier php.ini. Quand ton hébergement est mutualisé, là, ça marche plus

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

+ Répondre à la discussion
Cette discussion est résolue.

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