- Wprowadzenie do laboratorium
Serwer HTTP pozwala na uruchamianie stron internetowych. Można zainstalować własny serwer WAMP (Windows, Apache, MySQL, PHP) na lokalnym komputerze.
Przykładem serwera typu WAMP jest XAMPP. Strona główna każdego serwisu posiada nazwę index.htm, index.html, lub index.php. Strona taka zostanie uruchomiona domyślnie po
wpisaniu słowa localhost w polu adresu przeglądarki po instalacji serwera apache2.
Więcej informacji na temat protokołu HTTP znajduje się w moich materiałach odnośnie sieci komputerowych a odnośnie serwera WAMP w materiałach dotyczących programowania w języku PHP.
Na chwilę obecną powiem tylko najważniejszą z naszego punktu widzenia informację, mianowicie, że protokół HTTP domyślnie pracuje na porcie nr 80. Uruchamiając dowolną stronę
internetową nie trzeba jednak ręcznie wpisywać numeru portu po adresie strony, serwer i przeglądarka korzystają z niego bowiem automatycznie.
Celem tego ćwiczenia będzie:
- uruchomienie serwera Apache,
- zmiana domyślnego portu dla uruchamianych stron głównych,
- zmiana domyślnego folderu dla przechowywanych stron,
- zmiana domyślnej nazwy dla pliku strony głównej.
- Czynności wstępne
Na początku aktualizujemy repozytoria i pakiety poleceniami sudo apt update oraz sudo apt upgrade.
- Instalacja serwera Apache
Serwer Apache instalujemy poniższym poleceniem po czym sprawdzamy jego status i wersję:
$ sudo apt install apache2
$ sudo systemctl status apache2
$ sudo apache2 -version

- Uruchamianie strony z poziomu klienta
Teraz uruchamiamy system klienta Lubuntu i wpisujemy w pasku adresu przeglądarki adres IP serwera (u ciebie 172.16.X.5, gdzie X to twój numer w dzienniku).
Jak już wspomniałem we wprowadzeniu do tego ćwiczenia, dla domyślnego portu (80) nie musimy wpisywać pełnego gniazda (socket'u), tzn. adresu IP połączonego dwukropkiem z numerem portu, ale wystarczy sam adres IP.
Uruchomi się strona domyślna serwera Apache.
Zawiera ona w tekście frazę ze ścieżką informującą o lokalizacji pliku HTML tej strony głównej, mianowicie /var/www/html/index.html.
Kod HTML tego pliku można edytować w dowolnym edytorze tekstowym, jednak nie będziemy tego robić, bowiem dodamy swoją własną, spersonalizowaną stronę w następnych krokach. Ten zrzut ekranu należy włączyć do sprawozdania

- Zmiana domyślnego numeru portu
Pliki konfiguracyjne serwera Apache znajdują się w katalogu /etc/apache2. Pierwszą rzeczą jaką zrobimy będzie zmiana domyślnego portu (80)
z poziomu którego uruchamiana jest strona główna na całkowicie inny port.
Ja wybrałem port 5010, u ciebie natomiast będzie to 5010+X, gdzie X to twój numer w dzienniku. Aby zmienić domyślny port należy edytować dwa pliki konfiguracyjne
serwera, znajdujące się w różnych folderach. Najpierw wylistujemy
zawartość tych katalogów konfiguracyjnych. Pierwszym będzie /etc/apache2/ (ls -l /etc/apache2/), drugim zaś jego podfolder sites-available/ (ls -l /etc/apache2/sites-available/). UWAGA: na zrzucie przedstawiłem najpierw niepełne polecenie (sudo nano /etc/ap), które po naciśnięciu klawisza tabulatora pokazuje co znajduje się w danym folderze. Tego polecenia nie trzeba więc wykonywać.

Edytujemy plik 000-default.conf drugiego katalogu poleceniem sudo nano /etc/apache2/sites-available/000-default.conf (można również użyć polecenia
sudo nano /etc/apache2/sites-enabled/000-default.conf gdyż w tym katalogu znajduje się
dowiązanie symboliczne do pliku w sites-available/). Mam nadzieję, że wiesz, czym jest dowiązanie symboliczne. Dla przypomnienia dodam, że jest to odpowiednik windowsowego skrótu w Linuksie.
W pliku tym zmieniamy tylko numer portu z 80 na 5010+X w sekcji <VirtualHost *:80>:

Następnie edytujemy kolejny plik - ports.conf - tym razem w pierwszym z wylistowanych wyżej katalogów, poleceniem sudo nano /etc/apache2/ports.conf.
Ten plik zawiera informacje o portach, na których serwer
Apache nasłuchuje na połączenia przychodzące. Domyślnie jest to port 80 dla HTTP i port 443 dla HTTPS.
W pliku tym dodajemy numer portu 5010+X, wpisując Listen 5010+X:

Następnie restartujemy serwer, sprawdzamy jego status oraz restartujemy usługę DNS:
$ sudo systemctl restart apache2
$ sudo systemctl status apache2
$ sudo service bind9 restart

W kolejnym kroku sprawdzamy w Lubuntu czy strona działa na domyślnym porcie. Jak widać, nie działa a jest to oczywiście wynikiem dokonanych zmian domyślnego portu na nowy. Zwróć uwagę na fakt, że dotyczy
to również strony pod adresem serwer.imienazwisko.local, która też działała na domyślnym porcie o numerze 80.

W takim razie teraz sprawdzamy adres IP w połączeniu z nowym portem. Wpisujemy w pasku adresu przeglądarki adres IP 172.16.X.5 w połączeniu z dwukropkiem i nowym numerem portu, tj. 172.16.X.5:5010+X, u mnie 172.16.0.5:5010.
Jak widać strona domyślna Apache'a uruchamia się teraz pod nowym adresem. Ten zrzut ekranu należy włączyć do sprawozdania

- Zmiana katalogu dla strony głównej i dodanie spersonalizowanej
W tym punkcie postaramy się zmienić z kolei domyślny katalog dla przechowywanych stron. Domyślnym katalogiem w Apache'u jest /var/www/html/. To w nim właśnie znajduje się plik index.html
strony głównej serwera. Wykonamy więc czynności zmierzające do tego, aby katalogiem głównym nie był wspomniany, ale całkowicie inny. Utworzymy w tym celu katalog /page a w nim umieścimy nowy plik index.html.
$ sudo mkdir /page
$ cd /page/
$ sudo nano index.html

Edytujemy plik wypełniając go przykładowym kodem HTML. Wstaw w odpowiednie miejsca swoje imię i nazwisko.
<!DOCTYPE html>
<html>
<head>
<title>Strona główna - Adrian Zapała</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Laboratorium - serwer HTTP w Ubuntu Server</h1>
</body>
</html>

Musimy teraz zmienić katalog z domyślnego /var/www/html/ na nowy, a więc na nasz /page/. Chcemy bowiem aby to z niego Apache wczytywał plik strony głównej.
Zmieniamy więc odpowiednią sekcję w pliku 000-default.conf wydając polecenie sudo nano /etc/apache2/sites-available/000-default.conf
i zamiast katalogu /var/www/html wpisujemy /page w sekcji DocumentRoot.

Następnie w pliku /etc/apache2/apache2.conf zmieniamy jedną z sekcji Directory tak, aby znalazł się tam nasz nowy katalog /page zamiast /var/www/.
Edytujemy plik poleceniem sudo nano /etc/apache2/apache2.conf.

Następnie restartujemy serwer i sprawdzamy jego status:
$ sudo systemctl restart apache2
$ sudo systemctl status apache2

W systemie natomiast Lubuntu sprawdzamy czy na porcie 5010+X zmieniła się strona - z domyślnej Apache'a - na tą, którą utworzyliśmy w katalogu /page. Jak widać rzeczywiście tak jest. Ta strona
która widnieje na zrzucie ekranu jest więc nową stroną index.html, znajdującą się w nowym katalogu /page i dodatkowo uruchamianą na porcie 5010+X. Ten zrzut ekranu należy włączyć do sprawozdania

- Dodanie nowej nazwy do listy nazw stron głównych
W końcowym etapie tego ćwiczenia dodamy do listy dozwolonych nazw dla stron głównych, naszą prywatną nazwę - default.html. Dzięki temu serwer będzie traktował nazwę default.html jako pełnoprawną nazwę
dla stron głównych serwisów (oprócz index.html czy index.php). Odpowiednich zmian dokonamy w pliku /etc/apache2/mods-available/dir.conf. Edytujemy więc wspomniany plik poleceniem sudo nano /etc/apache2/mods-available/dir.conf
dopisując do znajdującej się tam listy dopuszczalnych nazw wspomnianą default.html. Ten zrzut ekranu należy włączyć do sprawozdania

Następnie, przechodzimy do katalogu /page i zmieniamy nazwę index.html na default.html (polecniem mv) po czym edytujemy stronę default.html w edytorze nano po to, aby po odświeżeniu strony
na kliencie móc przekonać się czy zobaczymy zmiany. Będzie to bowiem oznaczać, że wczytana została strona o nowej nazwie ze zmianami kodu które w niej wprowadziliśmy.

W pliku dodajemy dwa nagłówki, a jego obecny kod wygląda jak na poniższym listingu. Wstaw w odpowiednie miejsca swoje imię i nazwisko.
<!DOCTYPE html>
<html>
<head>
<title>Strona główna - Adrian Zapała</title>
<meta charset="UTF-8">
</head>
<body>
<h1>Laboratorium - serwer HTTP w Ubuntu Server</h1>
<h2>Strona startowa - default.html</h2>
<h3>Wykonał: Adrian Zapała</h3>
</body>
</html>

Następnie restartujemy serwer i tradycyjnie sprawdzamy jego status. Ten zrzut ekranu należy włączyć do sprawozdania
$ sudo systemctl restart apache2
$ sudo systemctl status apache2

Odświeżamy stronę na kliencie, a jej zawartość powinna się zmienić. Teraz wczytywana jest więc strona default.html z katalogu /page. Ten zrzut ekranu należy włączyć do sprawozdania
