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! 👋