Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2011, 16h08   #1
Nouveau Membre du Club
 
Homme Benoit
Développeur Web
Inscription : janvier 2006
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2006
Messages : 69
Points : 30
Points : 30
Par défaut Sous-domaines virtuels dynamiques

Bonjour à tous,

Je galère depuis des jours sur ce problème. Grâce à de multiples recherches, j'ai avancé petit à petit, mais là, je suis vraiment bloqué. Je retombe toujours sur les mêmes infos. Impossible de récupérer les sous domaine.

Je voudrais pouvoir générer dynamiquement des sous domaines, de manière à ce que chaque utilisateur puisse profiter de sa propre section sous la forme :
http://nom-utilisateur.mon-site.com

Je voudrais par conséquent que l'url ci-dessus soit toujours affichée dans la barre d'url des navigateurs, mais que je puisse récupérer le sous domaine comme une variable, à passer à la page index.php comme ceci :
http://www.mon-site/com/index.php?so...om_utilisateur

Je dispose d'un serveur Privé Virtuel CentOS chez 1&1 et voici les configurations que j'ai effectué jusqu'à présent.

Page index.php :
Code :
1
2
3
4
$sousdomaine = !isset($_GET["sousdomaine"]) ? "" : $_GET["sousdomaine"];
if(!empty($sousdomaine)){
  echo "<p>Bienvenue sur la page ".$sousdomaine."</p>";
}
Fichier .htaccess :
Code :
1
2
3
RewriteCond %{HTTP_HOST} !^www\.mon-site\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9_-]+)\.mon-site\.com$ [NC]
RewriteRule ^(.*) index.php?sousdomaine=%1 [NC,L]
Quand je commente la première ligne du .htaccess et que je tape l'url
http://www.mon-site.com, je récupère correctement www dans la variable $sousdomaine

J'ai en plus un sous domaine, créé dans Plesk, qui dispose donc d'un sous-répertoire accessible via FTP dans lequel j'héberge un petit site web.

Je précise que mon paramétrage DNS est le suivant (je ne note pas toutes les lignes)
Code :
1
2
3
4
www.mon-site.com              CNAME      mon-site.com
mon-site.com                  A          IP du serveur
sous-domaine1.mon-site.com    A          IP du serveur
*.mon-site.com                A          IP du serveur
Je pense que ça bloque du coté du VirtualHost qui ne semble pas du tout pris en compte.

Via SSH, j'ai exploré le serveur, notamment dans le chemin suivant :
var/www/vhosts/mon-site.com/conf/
dans lequel se trouve un fichier httpd.conf. Des lignes au début du fichier indiquent qu'il ne faut surtout pas le modifier (donc, je ne l'ai pas modifié) Toute modification doit être faite dans le fichier vhost.conf du même répertoire, mais le problème, c'est que ce fichier n'existait pas.

J'ai donc créé ce fichier dans lequel j'ai placé les lignes suivantes, mais ce dernier semble ne pas être pris en compte, malgré un redémarrage Apache...
Code :
1
2
3
4
5
6
7
8
NameVirtualHost *:80

<VirtualHost *:80>
	ServerName mon-site.com:80
	ServerAlias *.mon-site.com
	DocumentRoot /var/www/vhosts/mon-site.com/httpdocs
</VirtualHost>
Pour les 2 premières ligne, j'ai aussi testé en remplaçant l'étoile par l'IP du serveur, mais sans succès.

J'ai l'impression d'être proche de la solution (enfin j'espère), mais qu'est ce qu'il manque à votre avis ? Une erreur dans l'existant ? Un manque ? Merci par avance de votre aide.
Benzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 23h51   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
Citation:
Envoyé par Benzz Voir le message
mais ce dernier semble ne pas être pris en compte
Qu'est-ce qui te fait penser ça ?
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 09h28   #3
Nouveau Membre du Club
 
Homme Benoit
Développeur Web
Inscription : janvier 2006
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2006
Messages : 69
Points : 30
Points : 30
Par défaut Merci

Merci pour le déplacement du message dans la section adaptée.

Pour ce qui est du VirtualHost, j'ai l'impression qu'il n'est pas pris en compte, parce que je n'ai constaté aucune différence de comportement, avec et sans ce fichier. J'ai fait plusieurs tests.

Mais peut être que je me trompe et que l'erreur se trouve ailleurs ?
Existe-t-il un module à activer par exemple pour que ce fichier soit pris en compte ? Est-ce qu'il est placé au bon endroit ? Est-ce le bon fichier à modifier ?

Déjà, à ton avis, est-ce que la procédure décrite te semble correcte (ainsi que les syntaxes) ?
Benzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 12h40   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 278
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 278
Points : 8 565
Points : 8 565
Oui, ça me paraît correct. Pour t'assurer que le fichier est bien pris en compte, tu as un moyen imparable : ajoute ceci dans ton VH et redémarre Apache :
Si tu as toujours accès à ton site, c'est qu'Apache n'utilise pas le fichier pour gérer l'accès au site. Il faut vérifier dans httpd.conf qu'il y a bien un include du fichier vhosts.conf, include qui est peut-être commenté par défaut.
__________________

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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h37   #5
Nouveau Membre du Club
 
Homme Benoit
Développeur Web
Inscription : janvier 2006
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2006
Messages : 69
Points : 30
Points : 30
Effectivement après ajout de la commande
dans le fichier vhost.conf et rédamarrage Apache, rien ne change. Le fichier n'est donc pas pris en compte.

J'ai dit dans mon message précédent qu'il y avait, dans le même répertoire un fichier httpd.conf, mais j'ai fait erreur, le fichier se nomme httpd.include. Il contient bien une mention spécifiant de ne surtout pas le modifier, ainsi que des virtualhost liés aux sous domaine que j'ai crée via plesk.

J'ai donc recherché le fichier réellement nommé httpd.conf dont le chemin est le suivant :
/etc/httpd/conf/httpd.conf

A la fin, il y a un exemple commenté de la création d'un virtualhost avec *:80.
J'ai ajouté juste en dessous de l'exemple mon propre code (exactement celui que j'ai ajouté dans le fichier vhost.conf).

Après rédamarrage d'Apache, le site continue de fonctionner, mais uniquement avec l'url contenant les www. Ni l'url sans les www ni aucun sous domaine ne fonctionne plus (même les sous domaines crées avec Plesk). Le FTP ne fonctionne plus non plus...

J'ai donc commenté le code ajouté, redémarré Apache, mais c'est toujours pareil. Impossible d'accéder au site sans les www, ni aucune sous domaine. Le FTP ne fonctionne plus non plus avec le domaine du site, j'ai du mettre l'IP du serveur...

J'ai également supprimé le .htaccess, le comportement est le même avec et sans ce fichier.

J'ai du mal à comprendre comment ça fonctionne...
Ca te parle ?
Benzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 18h41   #6
Nouveau Membre du Club
 
Homme Benoit
Développeur Web
Inscription : janvier 2006
Messages : 69
Détails du profil
Informations personnelles :
Nom : Homme Benoit
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : janvier 2006
Messages : 69
Points : 30
Points : 30
Après de nouveaux tests, j'ai modifié le code inséré dans le fichier httpd.conf
J'ai donc remplacé ce code :
Code :
1
2
3
NameVirtualHost *:80

<VirtualHost *:80>
Par ce code
Code :
1
2
3
NameVirtualHost xx.xx.xx.xx:80

<VirtualHost xx.xx.xx.xx:80>
J'ai juste remplacé * par l'IP du serveur.

Et maintenant, les sous domaines crées avec Plesk fonctionnent de nouveau, le site est accessible avec et sans les www. Par contre, quand je teste n'importe quel sous domaine, la dernière page affiché reste à l'écran me propose de télécharger le fichier d'index... lancement automatique du téléchargement dans Firefox et Internet Explorer (même résultat avec et sans le .htaccess).

Je sens que j'avance dans la bonne direction... mais il manque encore un truc.
Benzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h24.


 
 
 
 
Partenaires

Hébergement Web