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].confPonownie 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 reloadVirtualHost 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.htmlPrawie 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/hostsTeraz 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! 👋