Probleme avec require et les alias apache

sentenza9
Invité n'ayant pas de compte PHPfrance

13 avr. 2006, 11:03

Bonjour,

Je voudrais mettre en place une architecture multiclients pour des sites en php5.
J'ai configuré les sites de la manieres suivantes:

+ Il y a un tronc commun pour tous les sites clients qui se trouve dans /webroot/www
Le fichier index.php se trouve dans ce répertoire.
+ Ensuite chaque client posséde son propre répertoire avec un fichier include (setup.php) contenant les variables propres au client telles que les acces a la bdd, etc .. et des repertoires images, et css. Le répertoire racine du client se trouve dans : /webroot/client/www.

Pour chaque client, j'ai configuré un VirtualHost avec Apache de cette maniere:
ServerName client.monsite.fr

DocumentRoot /webroot/www
<Directory /webroot/www/>
Options FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>

Alias /conf /webroot/client/www/
<Directory /webroot/client/www/>
Options FollowSymLinks Indexes MultiViews
#AllowOverride AuthConfig
AllowOverride none
Order allow,deny
allow from all
</Directory>

Ainsi chaque client possede le meme tronc commun comme indiqué dans DocumentRoot
et ensuite dans index.php je fait un require_once(conf/setup.php) pour inclure la config propre au client qui se trouve dans l'alias /conf.

Le problème est que le require apparement ne prend pas en compte les alias d'apache mais ne gere que le systeme de fichier, donc ainsi il essaye de récupérer /webroot/www/conf/setup.php, qui ne trouve pas bien évidement.
J'ai également tenté de faire directement require_once(http://client.monsite.fr/conf/setup.php) mais la ca ne marche pas non plus car setup.php est d'abord interprété par apache et c'est le résultat qui est inclus.

J'ai cherché pendant des heures mais je ne trouve pas de solutions. Si quelqu'un pouvait m'aider ca serait super sympa ;)

Benoit

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

13 avr. 2006, 11:10

Modération :

Je déplace le message dans la gestion de serveur, où il devrait avoir plus de réponses.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

13 avr. 2006, 12:54

Les alias sont utilisés pour publier des dossiers hors du document_root, ou pour créer de "fausses urls". Cela n'a rien à voir avec le système de fichier, et pour faire ce que tu veux il faudra plutôt travailler avec le "include_path" du "php.ini".

sentenza9
Invité n'ayant pas de compte PHPfrance

13 avr. 2006, 15:36

oui mais moi je voulais que ce soit dynamique et que le reconnaissance du client se fasse grace au vhost, a moins que je puisse modifier le include_path de php directement dans la conf apache :idea:

sentenza9
Invité n'ayant pas de compte PHPfrance

13 avr. 2006, 15:53

j'ai trouvé !!
dans mon vhost je set le include_path :
php_value include_path ".:/webroot/client/"

ET CA MARCHE :o happy dayz