Jak skonfigurować VirtualHosty w Apache2

Poradniki społeczności
www, apache2
Axerr
Axerr

Cześć 👋

W tym poradniku przedstawię krótko, jak stworzyć VirtualHosta w apache2 na Ubuntu/Debianie.

Czym jest Virtual Host?

Virtualhost pozwala na uruchomienie więcej, niż jednej strony WWW na jednej maszynie. Przykład: example.com, store.example.com, discord.example.com mogą prowadzić rekordem A do jednego adresu IP, ale Apache będzie wyświetlał użytkownikowi stronę przydzieloną do danej domeny, mimo, że każda z tych subdomen przekierowuje na ten sam adres IP.

Zaczynajmy!

💬 Wszystkie operacje na plikach będę wykonywał jedynie za pomocą komend w SSH. Bez zbędnych programów pokroju WinSCP, Filezilla itp. 💬 Jeżeli nie korzystasz z konta root lub masz zablokowany dostęp do tego konta -- przed każdą komendą będziesz musiał dodać sudo.

Zacznijmy od utworzenia pliku w folderze, który będzie definiował naszego VirtualHosta. Tworzymy go w folderze /etc/apache2/sites-available.

touch /etc/apache2/sites-available/[x].conf

[x] zamień na nazwę swojej domeny, jeżeli Twoja domena to discord.example.com to plik będzie miał nazwę discord.example.com.conf.


Dobrze, plik utworzony, dobrze nam idzie! 👍 Teraz czas dodać do pliku informacje, które pokierują naszego Apache, aby "wiedział", co ma zrobić.

nano /etc/apache2/sites-available/[x].conf

Ponownie zamień [x] na nazwę swojej domeny, aby otworzyć poprawny plik. Gdy otworzysz już plik, wklej poprzez swoją aplikację obsługującą SSH taką treść:


	ServerAdmin webmaster@example.com
	ServerName discord.example.com
	DocumentRoot /var/www/discord.example.com
	ErrorLog ${APACHE_LOG_DIR}/error_discord.example.com.log
	CustomLog ${APACHE_LOG_DIR}/access_discord.example.com.log combined

Teraz czas nieco pozmieniać wartości... ServerAdmin - tutaj ustaw adres poczty elektronicznej (e-mail), która będzie się wyświetlała jako administrator strony. Adres ten wyświetlany jest jako metoda kontaktu z właścicielem strony w wypadku, gdy serwer napotka problem podczas generowania strony (błędy w kodzie PHP itp.).

ServerName - po prostu nazwa Twojego serwera, wklep tutaj nazwę swojej domeny. (np. discord.example.com).

DocumentRoot - gdzie znajdują się pliki strony? Zazwyczaj pliki stron apache2 znajdują się w /var/www/ także też tam przekierujemy naszego użytkownika. Podaj ścieżkę do folderu znajdującego się w /var/www/ np. /var/www/discord.example.com

ErrorLog - gdzie mają być zapisywane logi błędów?

CustomLog - tam będą zapisywały się logi osób, które odwiedziły naszą stronę.


Gdy zakończyłeś już konfigurowanie swojego nowego virtualhosta -- czas go aktywować.

Aby aktywować virtualhosta, użyj komendy

a2ensite [x]

gdzie [x] to nazwa pliku, w którym znajduje się Twoje konfiguracja (np. discord.example.com.conf)

Po aktywowaniu strony serwer poprosi nas o przeładowanie apache, tak też zrobimy:

service apache2 reload

VirtualHost został utworzony, ale nie ma gdzie nas odesłać, tak więc wypada utworzyć folder, o którym wyżej wspomniałem.

sudo mkdir [x]

Tym razem wartość [x] to to, co podałeś w DocumentRoot jako folder z zawartością Twojej strony.


Folder utworzony, przejdźmy do niego.

cd /var/www/[x]

Stwórzmy przykładową treść, rzućmy jakieś Witaj świecie

echo "Witaj swiecie!" > index.html

Prawie gotowe, teraz pozostało Ci dodanie przekierowania w /etc/hosts. Krótko mówiąc, serwer będzie wiedział, gdzie posłać użytkownika.

Otwórzmy plik /etc/hosts edytorem nano

sudo nano /etc/hosts

Teraz na koniec pliku dodaj następującą linijkę

127.0.0.1 [x]

Gdzie [x] to nazwa Twojego virtualhosta Np 127.0.0.1 discord.example.com


Dodaj jeszcze uprawnienia do folderu, gdzie trzymasz strony WWW (w moim wypadku jest to /var/www).

sudo chmod -R 755 /var/www

😃 Podsumowanie

Virtualhosty nie są skomplikowane (ba! wręcz banalne) do wykonania, a bardzo pomagają w zarządzaniu Treścią.

Jeżeli poradnik Ci się spodobał, pomógł Ci albo po prostu ci się nudzi, to możesz zostawić ❤️ oraz miły 🗨️ Miłego konfigurowania virtualhostów! 👋