7 votes

Comment configurer des hôtes virtuels basés sur les noms avec Ubuntu 12.04 ?

Comment configurer des hôtes virtuels basés sur les noms avec Ubuntu 12.04 ?

J'ai suivi les instructions données à https://help.ubuntu.com/12.04/serverguide/httpd.html#http-configuration .

J'ai fait ce qui suit...

  1. cp default newsite
  2. remplacer "/var/www" par "/var/www/newsite" dans newsite
  3. ajouter "ServerName newsite.example.com" à newsite

Après quelques recherches, j'ai trouvé un article de blog qui indiquait que je devais désactiver le site par défaut à l'aide de a2dissite default . Après avoir fait cela, cela a fonctionné. Est-ce exact ? Cela n'est jamais mentionné dans le guide du serveur Ubuntu. Le guide contient également cette ligne...

"L'hôte virtuel par défaut n'a pas de directive ServerName spécifiée, il est donc répondra à toutes les requêtes qui ne correspondent pas à une directive ServerName. dans un autre hôte virtuel."

Ce qui semble impliquer que le site par défaut et d'autres sites peuvent coexister.

J'utilise une nouvelle installation du serveur 12.04 et j'ai rechargé la configuration d'Apache à chaque fois que j'ai fait un ajustement.

En résumé... après avoir ajouté un nouveau fichier sous /etc/apache2/sites-available (une copie modifiée du fichier "default" avec l'ajout de la directive ServerName) et le lien symbolique correspondant sous /etc/apache2/sites-enabled, est-il nécessaire de désactiver ou de renommer le lien symbolique du site par défaut pour que le nouveau site fonctionne ? La documentation et une réponse donnée ci-dessous semblent indiquer qu'il n'est pas nécessaire de le faire, mais si c'est le cas, qu'est-ce que j'ai fait de mal ? En utilisant la configuration ci-dessous, lorsque j'essaie d'accéder à newsite.example.com, j'obtiens le site par défaut.

/etc/apache2/sites-available$ cat default

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </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 ${APACHE_LOG_DIR}/error.log

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

        CustomLog ${APACHE_LOG_DIR}/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>

/etc/apache2/sites-available$ cat newsite

<VirtualHost *:80>

        DocumentRoot /var/www/newsite
        ServerName newsite.example.com
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/newsite/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

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

        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

/etc/apache2/sites-enabled# ls -l

root@sandbox:/etc/apache2/sites-enabled# ls -l
total 0
lrwxrwxrwx 1 root root 26 Mar 18 09:56 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 26 Mar  7 13:36 newsite -> ../sites-available/newsite

0voto

azerafati Points 1169

J'ai eu ce problème et j'ai fait ce que les autres réponses suggéraient, Dans mon cas, je veux exécuter plusieurs projets sur mon environnement de développement et accéder à chacun d'entre eux par un *.dev comme expliqué ici

Pour compléter les réponses ci-dessus, le problème pour moi était que foo.dev interférait avec bar.dev et l'ajout de l'élément suivant l'a résolu

<VirtualHost foo.dev:80> #<---- you can filter the requests here
ServerName foo.dev
ServerAlias *.foo.dev
DocumentRoot /home/dev/foo
</VirtualHost>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X