Skoro już zacząłem o tym Apache’u to dopowiem, że istnieje możliwość skonfigurowania czegoś takiego jak vhosty (czyt. virtual hosty). Dzięki vhostom na serwerze można umieścic kilka niezalerznych od siebie stron www, nadać im własne subdomeny i przygotować dla nich oddzielną konfigurację PHP. Kożyści z takiego rozwiązania sprawy są chyba oczywiste. Dzięki temu można podczepić kilka domen pod jeden serwer i do każdej z nich przypisać www obsługiwane przez tego samego httpd. W przypadku jednej domeny otrzymujemy prostrze adresy i trzymamy jako taki porządek. Oczywiste jest, że aby vhost działał najpierw należy dodać rekord A w konfigu domeny:
| kajtek IN A 79.12.135.179 |
gdzie “kajtek” to nazwa vhosta jaki chcesz utworzyć. Po takim zabiegu nalrzy przeładować bind’a i gotowe. Dla pewności możesz jeszcze sprawdzić czy dodany host jest widoczny wydając polecenie:
| $ host kajtek.mojadomena.pl |
Teraz nalerzy zabrać się za edycje httpd.conf, który w zalerzności od dystrybucje znajduje się w okolicach /etc/apache (np. Debian, Ubuntu), /etc/httpd (np Fedora, RedHat) bądź bezpośrednio w /etc (OS X). Sam vhost w konfiguracji Apache’a wygląda tak:
| <VirtualHost 79.12.135.179> ServerName kajtek.mojadomena.pl DocumentRoot /home/users/kajtek/public_html ServerAdmin admin@mojadomena.pl </VirtualHost> |
Ponadto należy pamiętać aby przed deklaracją vhostów zdefiniować adres dla którego będą one dodawane:
| NameVirtualHost 79.12.135.179 |
Zdaża się jednak, że sama deklaracja vhosta nie wystarcza. Może zaistnieć sytuacja, w której rozbudowane serwisy internetowe znajdujące się na tym samym serwerze będą potrzebować odmiennej konfiguracji PHP. W takim przypadku nalerzy dokonać pewnych drobnych modyfikacji:
| <VirtualHost 79.12.135.179> ServerName kajtek.mojadomena.pl DocumentRoot /home/users/kajtek/public_html Action php-script /usr/bin/php5/php –php-ini /etc/php5/kajtek.php.ini AddHandler php-script .php ServerAdmin admin@mojadomena.pl </VirtualHost> |
W ten sposób strona znajdująca się pod adresem kajtek.mojadomena.pl została zmuszona do kożystania z alternatywnego konfiga PHP, a raczje Apache, wie, że podczas interpretacji kodu znajdującego się pod danym adresem PHP musi użyć innego konfiga. O.
Jak widać powyżej nie jest to skomplikowane i nie wymaga od administratora szatańskiej wiedzy. Poprostu na szybkiego wystarczy dodać deklaracje do httpd.conf i utworzyć hosta dla domeny.