Wirtualne Hosty vhost apache2 w systemie Debian.

Wirtualne hosty (vhost) w apache to nic innego jak kilka domen, adresów www obsługiwanych przez jeden fizyczny serwer. Musimy oczywiście odpowiednio skonfigurować nasz serwer apache oraz domeny. Dzięki vhost można również pod jednym adresem utworzyć strony na różnych portach. Jest to przydatne jeżeli posiadamy jeden serwer www na którym znajduje się strona firmowa i chcemy dołożyć jakiś system działający na bazie danych np. zabbix. Przykład: adres strony http://www.pgkomp.pl, system do monitorowania zabbix może znajdować się pod adresem http://www.pgkomp.pl:81, inny system lub treści przeznaczone dla pracowników mogą znajdować się pod adresem http://www.pgkomp.pl:82.

W tym artykule przedstawię jak zrobić dwa różne vhosty na różnych portach. Logujemy się do naszego systemu jako root. Tworzymy nowego użytkownika:

useradd -m pgkomp81

Jeżeli dodajemy domenę, najlepiej żeby nazwą użytkownika była nazwa domeny. Ustawiamy hasło dla nowego użytkownika:

passwd pgkomp81

12_1

Następnie tworzymy trzy katalogi htdocs, cgi-bin oraz logs w katalogu domowym nowego użytkownika.

mkdir /home/pgkomp81/htdocs/
mkdir /home/pgkomp81/cgi-bin/
mkdir /home/pgkomp81/logs/

12_2

Następnie zmieniamy właściciela nowo utworzonych katalogów na pgkomp81:

chown pgkomp81:pgkomp81 /home/pgkomp81/htdocs/
chown pgkomp81:pgkomp81 /home/pgkomp81/cgi-bin/
chown pgkomp81:pgkomp81 /home/pgkomp81/logs/

Za pomocą komendy ls –l sprawdzamy kto jest właścicielem plików oraz jakie uprawnienia są pliką przyznane.

12_3

Następnie tworzymy prosty plik php i ustawiamy właściciela pgkomp81.

echo „<?php phpinfo(); ?>” > /home/pgkomp81/htdocs/index.php
chown pgkomp81:pgkomp81 /home/pgkomp81/htdocs/index.php

Instalujemy edytor tekstu, ja wybrałem mc. W tym celu wpisujemy:

apt-get update
apt-get install mc

Edytujemy plik vhosta poleceniem:

mcedit /etc/apache2/sites-available/pgkomp81

12_4

Zaznaczamy skrypt poniżej i wklejamy do naszego pliku, jeżeli korzystamy z mc przez putty żeby wkleić wciskamy Shift + Insert.

<VirtualHost *:81>
ServerAdmin adres@adres.pl
ServerName pgkomp81
ServerAlias www.pgkomp81
DocumentRoot /home/pgkomp81/htdocs
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/pgkomp81/htdocs/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /home/pgkomp81/cgi-bin/
<Directory „/home/pgkomp81/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /home/pgkomp81/logs/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/pgkomp81/logs/access.log combined
</VirtualHost>

Na początku skryptu podajemy port na którym nasz wirtualny host się zgłosi.

12_5

Włączamy vhosta oraz przeładowujemy konfiguracje apache2:

a2ensite pgkomp81

/etc/init.d/apache2 reload

Możemy sprawdzić czy nasz vhost zgłasza się pod wybranym portem poleceniem:

apachectl -t -D DUMP_VHOSTS

12_6

Jak widać główna strona serwera apache2 zgłasza się na porcie *80 a nasz nowo stworzony vhost na porcie *81. Została do zrobienia jeszcze jedna bardzo istotna rzecz, musimy odblokować port 81. W tym celu przechodzimy do katalogu /etc/apache2/ i edytujemy plik ports.conf:

mcedit ports.conf

12_7

Pod linijką Listen 80 dodajemy Listen 81 aby serwer nasłuchiwał na porcie 81.

12_8

Przeładowujemy konfiguracje apache2. Jak widać wszystko działa na adresie serwera 192.168.4.241 wyświetla się główna strona serwera apache2 a na 192.168.4.241:81 wyświetla się plik php który wcześniej stworzyliśmy.

12_10
12_9