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 27/02/2014, à 12:05

SirSeto

Virtual Host / Apache - Débutant

Bonjour à tous,

Avant tout sachez que je débute dans le monde du serveur, j'ai souscrit il y a peu à un serveur Kimsufi, avec Ubuntu 12.04.

J'ai déjà lu un peu la doc Apache et le man, mais je préfère être au clair et bien comprendre ce que je fais smile
Je possède également un nom de domaine (disons siteweb.net), où, chez mon register j'ai fait pointé *.siteweb.net et siteweb.net vers l'IP de mon serveur (IP fixe donc).

Mon objectif est d'héberger un certain nombre de site web provenant de plusieurs domaines différents (pour le moment j'en possède qu'un seul).
Si je comprends bien, configurer le fichier /etc/hosts ne sera pas utile dans mon cas, car tous les sites que je veux héberger sont en local sur le serveur et le DNS de mon register s'occupe de diriger le nom de domaine vers mon serveur (Tout du moins c'est ce que j'ai constaté).

Par contre, à l'opposé, la configuration Apache de mes sites est primordiale. Voici la configuration que j'utilise :

<VirtualHost *:80>
        ServerAdmin admin@localhost
        ServerName test1.siteweb.net
        DocumentRoot /var/www/test1
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/test1>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                #Require all granted - For apache v. 2.4 (I think)

        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Pour faire quelques tests, j'ai également fait des test2.siteweb.net et test3.siteweb.net, où tout fonctionne à merveille. De plus, si je veux un alias, j'ai "juste" à ajouter une ligne ServerAlias alias.siteweb.net par exemple.

Ma question est la suivante :
Est-il possible de créer un host (ou un alias) du type : siteweb.net/test1 ? J'ai fait quelques essais, et visiblement pas. Je sais qu'il ne s'agit pas d'un nom de domaine en soi, mais je pensais possible pour le serveur de reconnaître une telle URL pour la diriger où je veux.

Deuxième question :
Si je tape simplement website.net ou nimportequoi.website.net (donc un sous-domaine que j'ai défini nul part), par défaut il va m'afficher le contenu de /var/www/test1/. Comment changer ceci ? (par exemple par défaut m'afficher soit une autre page soit une erreur 404).

Troisième question :
Lorsque je vais faire pointer d'autres noms de domaines sur ce serveur, est-ce que dans la configuration Apache du site un ServerName siteweb2.net suffit ?

Est-ce que j'ai bien comprit la chose ? Il y a t'il des points essentiels que j'aurais oublié ?
Merci d'avance pour votre aide

Dernière modification par SirSeto (Le 27/02/2014, à 12:06)

Hors ligne

#2 Le 27/02/2014, à 13:45

mazarini

Re : Virtual Host / Apache - Débutant

Pour la question 1, tu peux t'inspirer de /etc/phpmyadmin/apache.conf pour voir comment ob dait le lien entre un répertoire du site et un répertoire qui n'est pas dans l'arborescence du site. C'est la même chose que pour /cgi-bin dans le code que tu montres.

Pour la question 2, il faut faire un site sans ServerName et sans ServerAlias. Ce sera le site par défaut. A toi de gérer l'erreur 404 dans ce site.

Pour la question 4, il faire faire des virtualhost dans le répertoire /etc/apache2/sites_availaible avec des liens vers /etc/apache2/sites_enable. Prends comme exemple le fichier default et le lien 000-default dans ces répertoires. Tu adaptes le ServerName et de documentroot pour chacun. Default  restera sans ServerName pour être le site par défaut.
Il doit falloir indiquer que tu utilises des serveurs virtuels dans le fichier /etc/apache2/http.conf (NameVirtualHost *:80) pas sur du nom, mais la ligne doit être en commentaire.

Pour info, tu peux supprimer les ligne ScriptAlias et le bloc correspondant au répertoire si tu ne les utilises pas (cgi-bin et doc).


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#3 Le 27/02/2014, à 22:12

tiramiseb

Re : Virtual Host / Apache - Débutant

Salut,

Est-il possible de créer un host (ou un alias) du type : siteweb.net/test1 ?

Non, un hôte, ça doit être un hôte, pas un chemin... smile

Si tu veux une configuration particulière pour un chemin particulier, il faut mettre une directive <Location [...]> dans un virtualhost :
http://httpd.apache.org/docs/current/mo … l#location

par défaut il va m'afficher le contenu de /var/www/test1/. Comment changer ceci ?

Lorsqu'Apache n'arrive pas à faire une association entre une requête et un virtual host, il utilise le premier virtual host configuré. Il faut donc placer une configuration par défaut en tout premier parmi les virtualhosts.

Lorsque je vais faire pointer d'autres noms de domaines sur ce serveur, est-ce que dans la configuration Apache du site un ServerName siteweb2.net suffit ?

Oui, c'est le principe des virtualhosts.

Hors ligne

#4 Le 28/02/2014, à 09:03

SirSeto

Re : Virtual Host / Apache - Débutant

Super, merci pour vos réponses !
J'essaierai ceci d'ici à dimanche, si je ne découvre pas d'autres interrogations, je placerais le topic en [RESOLU] smile

Hors ligne