Jak skonfigurować VirtualHosty w Apache2

Tagi: #<Tag:0x00007f8a331ec0e8> #<Tag:0x00007f8a3343bec0>

Cześć :wave:

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!

:speech_balloon: Wszystkie operacje na plikach będę wykonywał jedynie za pomocą komend w SSH. Bez zbędnych programów pokroju WinSCP, Filezilla itp.
:speech_balloon: 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! :+1:
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ść:

<VirtualHost *:80>
	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
</VirtualHost>

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

:smiley: 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ć :heart: oraz miły :left_speech_bubble:
Miłego konfigurowania virtualhostów! :wave:

2 polubienia