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

Apache Discussion :

Sous-domaines virtuels dynamiques


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sousdomaine = !isset($_GET["sousdomaine"]) ? "" : $_GET["sousdomaine"];
    if(!empty($sousdomaine)){
      echo "<p>Bienvenue sur la page ".$sousdomaine."</p>";
    }
    Fichier .htaccess :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    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 ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    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) ?

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    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.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut
    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 ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 75
    Par défaut
    Après de nouveaux tests, j'ai modifié le code inséré dans le fichier httpd.conf
    J'ai donc remplacé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NameVirtualHost *:80
     
    <VirtualHost *:80>
    Par ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2008, 15h27
  2. [URL Rewriting] Sous-domaines virtuels ?
    Par Ikonic dans le forum Apache
    Réponses: 2
    Dernier message: 10/04/2008, 11h42
  3. sous domaines virtuels ?
    Par AsQuel dans le forum Domaines
    Réponses: 3
    Dernier message: 07/08/2007, 18h13
  4. Sous domaine virtuel par Htaccess
    Par Nicolas N. dans le forum Apache
    Réponses: 2
    Dernier message: 16/07/2007, 13h06
  5. Sous domaines virtuels
    Par Kael dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 06/01/2007, 17h59

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