Apache - jedna instalace, více stránek

26. 08. 2013 | Jakub Kadlčík | CZ dev

Weby dnes vyvíjí hodně lidí a mnoho z nich nepracuje jen na jednom, ale hned na několika naráz. Nejedná se jen o profesionály, ale také o studenty, kteří během školního roku řeší řadu webových prezentací. Často jim nikdo neřekne, jak si nastavit webový server a jak k jednotlivým prezentacím přistupovat, aby to bylo alespoň trochu pohodlné. Proto bych rád ukázal, jak to řeším já.

Cílem bude přidělit každému webu jiný port a potom k němu přistupovat pomocí http://127.0.0.1:port. Není to nic složitého. Nejdříve potřebujete najít správný konfigurační soubor. V linuxových distribucích to nejspíš bude /etc/apache2/httpd.conf. Na windows můžete použít například software EasyPHP. V tom případě vás bude zajímat konfigurační soubor C:\Program Files\EasyPHP-DevServer-13.1VC9\binaries\apache\conf\httpd.conf (můžete se k němu doklikat pomocí ikony EasyPHP v tray liště, nebo pomocí hlavního okna aplikace).

Jdeme na to

Najděte řádku začínající slovem “Listen”. Asi vám došlo, že toto klíčové slovo říká, na kterém portu apache naslouchá. Další port přidáme jednoduše tak, že napíšeme další řádku začínající “Listen” následovanou číslem portu. Pokud se v číslech portů nevyznáte, raději se koukněte jestli vámi zvolený nepoužívá nějaká důležitá služba.

/etc/apache2/httpd.conf

# Apache bude naslouchat na portech 80, 8001, 8002 a 8003
Listen 80   # Výchozí port pro http
Listen 8001 # První projekt
Listen 8002 # Druhý projekt
Listen 8003 # Třetí projekt

Nyní jednotlivé weby nastavíme. Podívejte se, zda v konfiguračním souboru máte sekci týkající se VirtualHost. Pokud ne, pište na konec souboru. Teď k samotnému kódu - ukážu jen základní možnosti, které využije asi každý, ale pokud potřebujete, zvolte konfiguraci, jaká vám bude sedět nejlépe.

/etc/apache2/httpd.conf

# Ukázka VirtualHostu pro linux
<VirtualHost *:8001>
ServerName prvni-projekt
DocumentRoot "/var/www/prvni-projekt"
<Directory "/var/www/prvni-projekt">
Options Indexes FollowSymLinks
AllowOverride All

## V závislosti na verzi nainstalovaného apache ponechte jednu z možností:
# Apache 2.2
Order allow,deny
Allow from all

# Apache 2.4
Require all granted
</Directory>
</VirtualHost>

# Ukázka VirtualHostu pro EasyPHP (verze 13.1)
<VirtualHost *:8002>
ServerName druhy-projekt
DocumentRoot "${path}/binaries/apache/htdocs/druhy-projekt"
<Directory "${path}/binaries/apache/htdocs/druhy-projekt">
Options Indexes FollowSymLinks
AllowOverride All

## V závislosti na verzi nainstalovaného apache ponechte jednu z možností:
# Apache 2.2
Order allow,deny
Allow from all

# Apache 2.4
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:8003>
# ...
</VirtualHost>

A je to! Náš první projekt si můžeme prohlédnout na http://172.0.0.1:8001, druhý na http://172.0.0.1:8002, …

Odkazy

  1. http://httpd.apache.org/docs/2.4/upgrading.html
  2. http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
  3. http://www.easyphp.org/