Toto je starší verze dokumentu!
Apache umí virtuální hosty jmenné nebo definované přímo pomocí ip adresy.
Abychom mohli mít pro každou virtuální doménu svůj konfigurační soubor, je třeba nadefinovat default hosta, na kterém další virtuální hosti budou. U default hosta budou jako u jediného klausule NameVirtualHost. U virtuálních hostů už toto nebude:
cat /etc/apache2/sites-available/default NameVirtualHost *:80 <VirtualHost *:80> ServerName example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options 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 /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>
Zde máme příklad prvního virtuálního hosta
cat /etc/apache2/sites-available/01vhost <VirtualHost *:80>
ServerAdmin 01vhost@example.com DocumentRoot /home/01vhost/www ServerName 01vhost.example.com ErrorLog /var/log/apache2/01vhost-error.log CustomLog /var/log/apache2/01vhost-access.log common
</VirtualHost>
Zde máme příklad druhého virtuálního hosta
cat /etc/apache2/sites-available/02vhost <VirtualHost *:80> ServerAdmin 02vhost@example.com DocumentRoot /home/02vhost/www ServerName 02vhost.example.com ErrorLog /var/log/apache2/02vhost-error.log CustomLog /var/log/apache2/02vhost-access.log common </VirtualHost>
Ostatní domény se už tvoří analogicky. Pak už jen přidáme default hosta a virtuály do povolených domén a apache zrestartujeme.
ln -s /etc/apache2/sites-available/default /etc/apache2/sites-enabled/default ln -s /etc/apache2/sites-available/01vhost /etc/apache2/sites-enabled/01vhost ln -s /etc/apache2/sites-available/02vhost /etc/apache2/sites-enabled/02vhost /etc/init.d/apache2 restart