Wirtualny host (vhost) to dyrektywa ustawiająca aliasy WWW do katalogów na serwerze Apache.
Przykład adresu URL bez ustawień vhosta:
1 |
http://localhost/website/public/index.php |
Tego typu adres jest Ci zapewne znany z pracy w środowisku developerskim na lokalnym komputerze. Z konfiguracją VirtualHosta może mieć postać zwykłej domeny internetowej:
1 |
http://test.local |
Nazwa domeny i sufiks mogą być dowolne a więc symulować stronę internetową w trybie online. I oto chodzi ;).
PRZYKŁAD
Testowane na Ubuntu 22.04 LTS i serwerze Apache2
Utwórz plik konfiguracyjny z nazwą domeny i rozszerzeniem .conf, np: test.local.conf:
1 |
$ sudo nano /etc/apache2/sites-available/test.local.conf |
Podstawowa konfiguracja:
1 2 3 4 5 6 7 |
<VirtualHost *:80> ServerName test.local ServerAdmin admin@test.local DocumentRoot /var/www/html/test.local ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
- <VirtualHost *:80> – wirtualny host nasłuchuje na domyślnym porcie HTTP 80. Dla każdego hosta można skonfigurować indywidualny port lub protokół IP, np: <VirtualHost 127.0.0.1> albo miks obu: <VirtualHost 127.0.0.1:80>,
- DocumentRoot – wskazuje adres do katalogu głównego witryny (zazwyczaj do katalogu z plikiem startowym index.php lub index.html). Domyślnie serwer Apache tworzy katalog WWW w lokalizacji /var/www/html,
- ErrorLog – logi z błędami,
- CustomLog – logi związane z dostępem do hosta.
Zapisz plik konfiguracyjny a następnie aktywuj hosta:
1 |
$ sudo a2ensite test.local.conf |
Zrestartuj serwer Apache:
1 |
$ sudo service apache2 restart |
lub:
1 |
sudo systemctl restart apache2 |
Teraz trzeba zmapować nazwę hosta z adresem IP serwera. W tym celu edytuj plik hosts:
1 |
$ sudo nano /etc/hosts |
1 2 3 4 |
# ... 127.0.0.1 localhost 127.0.1.1 test.local # ... |
Na koniec utwórz w katalogu test.local plik index.html z dowolną zawartością, np: „Hello World”.
1 |
$ sudo nano /var/www/html/test.local/index.html |
Odpal w przeglądarce internetowej link http://test.local i sprawdź czy vhost działa.
Obrazek wyróżniający do posta: Gerd Altmann