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...
cp default newsite
- remplacer "/var/www" par "/var/www/newsite" dans newsite
- 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