Home > computers > linux > httpd > VirtualHost | About

  1. Ajoutez une entrée dans /etc/hosts
  2. Voyez comment c'est foutu dans votre distro :
    • sur OpenSuse, vous pouvez ajouter un fichier dans /etc/apache2/vhosts.d/
    • sur Ubuntu, c'est dans /etc/apache2/sites-available/ (il y a une commande à appeler pour "activer" le site. Un lien sera crée dans /etc/apache2/sites-enabled/, cette commande est a2ensite -apache2 enable site-)
  3. Vous devriez trouver des fichiers exemples en .template. Vous n'avez qu'à faire pareil. Votre fichier pourrait ressembler à
<VirtualHost  *:80>
  ServerName phpmyadmin.localhost
  DocumentRoot "/srv/www/htdocs/phpMyAdmin"
  ErrorLog /var/log/apache2/errors/phpmyadmin.log
  CustomLog /var/log/apache2/access/phpmyadmin.log combined
  <Directory /srv/www/htdocs/phpMyAdmin>
    Options FollowSymLinks
    AllowOverride None
    <IfModule mod_php5.c>
      php_admin_flag register_globals off
      [...]
      php_admin_value suhosin.request.max_vars 2048
    </IfModule>
  </Directory>
  <Directory /srv/www/htdocs/phpMyAdmin/libraries>
    Order allow,deny
    Deny from all
  </Directory>
</VirtualHost>

4. Sur les anciennes versions de httpd, n'oubliez pas de vérifier que vous avez au moins une directive NameVirtualHost en place, sinon créez-là

fictive chaouche # grep NameVirtualHost  -r /etc/apache2/
/etc/apache2/listen.conf:#NameVirtualHost 12.34.56.78:80
/etc/apache2/listen.conf:#NameVirtualHost  *:80
/etc/apache2/listen.conf:#NameVirtualHost  *
/etc/apache2/vhosts.d/dokuwiku.conf.disable:# NameVirtualHost statements can be added to /etc/apache2/listen.conf.
/etc/apache2/vhosts.d/vhost-ssl.template:# NameVirtualHost statements should be added to /etc/apache2/listen.conf.
/etc/apache2/vhosts.d/vhost.template:# NameVirtualHost statements can be added to /etc/apache2/listen.conf.

Ah bah merde, donc il fallait décommenter celle dans listen.conf.

1) Si vous oubliez cette étape, quelque soit le nom d'hôte que vous tapperez dans l'URL vous vous retrouvez sur le même document

2) Cette directive est obsolète dans les récentes versions de httpd, vous aurez un warning si vous l'ajoutez.

5. Enfin, après vous être assuré que les fichiers de confs sont conformes avec un /etc/init.d/apache reload, redémarrez. Apache andouille, pas la machine.

/etc/init.d/apache restart

Vous devriez être bon.

Retenez bien

  1. Utilisez l'étoile (joker) dans NameVirtualHost *:80, si vous avez une ancienne version de httpd.
  2. Utilisez aussi l'étoile (joker) dans <VirtualHost *:80>, sinon cette balise ne sera pas matchée avec le NameVirtualHost et vous aurez de stupides warnings.
  3. Utilisez un ServerName à l'interieur de votre <VirtualHost *:80>, comme ça vous pourrez y accéder par un nom.
  4. N'oubliez pas d'ajouter ce même ServerName dans votre /etc/hosts et/ou dans votre DNS si d'autres personnes veulent y accéder.

contact : @ychaouche yacinechaouche at yahoocom


QR Code
QR Code 1) Si vous oubliez cette étape, quelque soit le nom d&#039;hôte que vous tapperez dans l&#039;URL vous vous retrouvez sur le même document (generated for current page)