Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/07/2010, à 10:42

bez856

[~Résolu~][Apache] DocumentRoot d'un Alias

Bonjour tout le monde,

Sur mon serveur, j'ai besoin de 2 Alias qui mènent vers 2 dossiers différents dans le /home et j'ai donc mon répertoire de base de Apache qui est en /var/www. Le DocumentRoot du serveur est donc /var/www sauf que j'aurais besoin d'avoir un DocumentRoot pour chacun des Alias. En ce moment, quand je suis sur mondomaine.com/site1 et que je fais echo $_SERVER['DOCUMENT_ROOT'], ça me renvoie /var/www.

Je précise que je ne peux pas faire de VirtualHost du genre site1.mondomaine.com et site2.mondomaine.com qui auraient pu facilement avoir leur propre DocumentRoot. Je ne peux pas, simplement puisque je suis chez 1&1 pour mon nom de domaine et je suis obligé de passer par eux pour d'abord déclarer mes VirtualHosts et j'ai atteint la limite de 10 qu'ils proposent.

Au passage je trouve ridicule qu'ils ne puissent pas rediriger tous mes sous-domaines (avec du genre *.mondomaine.com) vers mon serveur pour que je les gère moi-même. Mais bon ça doit être pour se faire de l'argent puisque je serait obligé d'augmenter d'offre pour avoir plus de sous-domaines.

Donc pour résumer, est-il possible d'attribuer un DocumentRoot différent pour chacun des Alias ?

Toutes les solutions sont bonnes à étudier puisque il faut absolument que je trouve à résoudre ce problème.

Merci d'avance pour toutes vos réponses et bon courage.

Bez856

Dernière modification par bez856 (Le 12/07/2010, à 20:04)

Hors ligne

#2 Le 12/07/2010, à 07:41

bez856

Re : [~Résolu~][Apache] DocumentRoot d'un Alias

Un petit UP en ce lundi matin ? smile

Hors ligne

#3 Le 12/07/2010, à 19:14

BorX

Re : [~Résolu~][Apache] DocumentRoot d'un Alias

Je pense comprendre ton problème.
Tes applis utilisent $_SERVER['DOCUMENT_ROOT'] pour retrouver leur arborescence de fichiers.
Seulement comme elles tournent dans des répertoires détachés du DocumentRoot, tu utilises des Aliases pour y accéder, et donc le coup du $_SERVER['DOCUMENT_ROOT'] ne marche plus...

Ne peux-tu pas t'y retrouver avec $_SERVER['SCRIPT_FILENAME'] ?
(qui doit renvoyer un truc du style /home/leUser/le/path/vers/appli1/encore/des/repertoires/leNomDuFichier.php)

Hors ligne

#4 Le 12/07/2010, à 20:02

bez856

Re : [~Résolu~][Apache] DocumentRoot d'un Alias

Salut BorX,

D'abord merci de t'interesser à mon problème mais je crois qu'il n'est pas possible à résoudre . . . sad

J'y avais pensé à utiliser la directive SCRIPT_FILENAME mais ça me donne le chemin vers le script en cours comme son nom l'indique. Donc je suis obligé de remonter vers la racine avec des ../../.. etc... et donc c'est différent pour chaque script et peu flexible. Autre problème, ça me donne le chemin avec le nom du fichier qu'il faudrait que je traite pour le faire disparaitre ...

Dans le même esprit j'avais pensé à la variable __DIR__ qui ne donne pas le nom du script mais toujours le problème du retour manuel vers la racine.

Pour toutes ces raisons je me suis résigné à sacrifier 2 sous-domaines 1&1. Et en créant mes VirtualHost j'ai pu mettre un DocumentRoot différent pour chacun.

Ce n'est pas ce que je voulais et j'aurais bien aimé trouver comment faire autrement mais mes recherches ne mènent nul part.

Je passe ce problème en "Résolu" même si il ne l'est pas vraiment mais juste contourné . . .

Merci quand même et bon courage.

Bez856

Dernière modification par bez856 (Le 12/07/2010, à 20:03)

Hors ligne

#5 Le 12/07/2010, à 22:27

BorX

Re : [~Résolu~][Apache] DocumentRoot d'un Alias

Bon. tongue
En fait, je n'ai jamais été vraiment confronté à ce problème car j'ai généralement utilisé des variables globales du type :

$ROOT_URL='/appli1/';
$ROOT_PATH='/home/leUser/le/path/vers/appli1/';

Certes, il faut modifier ces variables dès qu'on change d'environnement, mais le désagrément est minime, surtout si ces variables sont externalisées dans un fichier à part, dédié à tout ce qui concerne la configuration de l'application.
En outre, on peut naturellement initialiser ces variables avec des données de $_SERVER, ce qui évite d'utiliser ce genre de "super-variables" un peu partout (et n'importe comment).

Edit :
Un de mes fichiers de configuration, typiquement, commence ainsi :

more conf/global.php 
<?
$PATH_ROOT = '/home/leUser/le/path/vers/appli1/';
$PATH_BIN = $PATH_ROOT.'bin/';
$PATH_LIB = $PATH_ROOT.'lib/';
$PATH_DAO = $PATH_ROOT.'dao/';
// ...

Ainsi, partout dans le reste de mon code, je fais référence à tel ou tel chemin avec des variables centralisées et globales, mais jamais en dur (ni en relatif ni en absolu car cela tendrait à rendre mon application difficile à maintenir).

Dernière modification par BorX (Le 12/07/2010, à 22:37)

Hors ligne

#6 Le 13/07/2010, à 07:07

bez856

Re : [~Résolu~][Apache] DocumentRoot d'un Alias

Bonjour,

Je suis entièrement d'accord avec toi puisque j'opère d'habitude de cette manière sauf que comme je te l'ai dis nous sommes 2 à développer et il faut que le code soit homogène pour moi, lui et l'appli de prod.

Pourquoi ? Tout simplement parce-que nous utilisons un SVN et que nous synchronisons nos fichiers ensemble et il ne faut pas qu'on ait de variables spécifiques à chacun mais il faut que ce soit générique au maximum.

Comme je te l'ai dit, je crains que mon problème ne trouve jamais sa solution . . . sad

Merci quand même.

Bez856

Dernière modification par bez856 (Le 13/07/2010, à 07:08)

Hors ligne