Server Apache2 HTTP
Jeden z najpopularniejszych serwerów HTTP do udostępniania stron internetowych. Utworzony w 1995 roku dla systemu Windows i Linux
Sprawdź
Sprawdź, czy nie masz już zainstalowanego servera Apache2 i czy nie pracuje w systemie. Najprawdopodobniej jeszcze nie masz uruchomionego - to zobaczysz taki komunikat:
$ sudo systemctl status apache2 Unit apache2.service could not be found.
Natomiast gdy ktoś wcześniej zainstalował ten serwer i jest uruchomiony to zobaczysz:
$ sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-01-23 12:09:05 GMT; 9min ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 6682 (apache2) Tasks: 55 (limit: 4407) Memory: 5.3M CGroup: /system.slice/apache2.service ├─6682 /usr/sbin/apache2 -k start ├─6683 /usr/sbin/apache2 -k start └─6684 /usr/sbin/apache2 -k start Jan 23 12:09:05 server systemd[1]: Starting The Apache HTTP Server... Jan 23 12:09:05 server apachectl[6681]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to> Jan 23 12:09:05 server systemd[1]: Started The Apache HTTP Server.
Aby przerwać wyświetlanie informacje - wciśnij [Q] lub [CTRL]+[C]. W tym przypadku możesz przejść dalej. W przeciwnym musisz zainstalować server Apache 2.
Zainstaluj
Wystarczy odświeżyć źródła i zainstalować najnowszą wersję serwera Apache2. Proponuję też doinstalować programy użytkowe dla tego servera.
$ sudo apt update $ sudo apt install -y apache2 apache2-utils
Ustaw Firewall
Najpierw sprawdź jakie serwery można odblokować na firewall'u.
$ sudo ufw app list Available applications: Apache Apache Full Apache Secure OpenSSH
- Apache
- Standartowy port :80
- Apache Secure
- Standartowy port :443
- Apache Full
- Obydwa porty :80 i :433
Na początek proponuję wybierz pierwszą opcję, dopuki nie skonfigurujesz bezpiecznego serwera SSL
$ sudo ufw allow Apache
Polecam upewnić się, czy reguły zostały dopisane. Port :80 powinien zostać otwarty na cały śwat dla TCP v4 i v6
$ sudo ufw status Status: active To Action From -- ------ ---- Apache ALLOW Anywhere Apache (v6) ALLOW Anywhere (v6)
Uprawnienia
Zaraz po instalacji Serwera Ubuntu właścicielem wszystkich plików i folderów jest root z grupy root i mają uprawnienia ustawione na: rwxr-xr-x. Natomiast po instalacji serwera Apache2 tworzona jest grupa www-data i użytkownik o takiej samej nazwie. Dlatego musisz zmienić użytkownika i grupę dla wszystkich folderów gdzie będziesz zapisywał swoje strony internetowe. Na początek odbierzemy też większość uprawnień - dla bezpieczeństwa.
$ sudo chown www-data:www-data /var/www/ -R $ sudo chmod 500 /var/www/ -R $ sudo ls -l /var/www total 4 dr-x------ 2 www-data www-data 4096 Jan 24 14:26 html
Test
Po tych wszystkich zabiegach - będziemy mogli zobaczyć domyślną stronę serwera Apche2. Wystrczy, że na dowolnym komputerze w tej samej sieci wpiszesz adres IP swojego serwera. W moim przypadku to 192.168.0.100
Strona ogólnie dostępna
Na koniec zostawiłem najtrudniejsze - chciałbyś pochwalić się swoją stroną koledze. Idziesz do niego domu - wpisujesz adres swojego serwera i jednym słowem kupa. Niestety aby strona była widoczna "z zewnątrz" musisz ustawić to na swoim routerze. Jak dostać się do ustawień routera musisz poczytać w instrukcji. Instrukcję znajdziesz w pudełku lub w internecie na stronie producenta. Niestety nie napiszę tobie jak masz to wykonać. Oprogramowanie każdego producenta, każdego routera różni się detalami. Musisz szukać opcji najczęściej zwanych Forwarding. Na moim routerze musiałem wejść w opcje zaawansowane i tam jest opcja Port Forwanding. Musisz tam podać dwie ważne rzeczy: port do przekierowania - w twoim przypadku strona czeka na wyświetlenie na porcie 80 i numer ip twojego serwera. W moim przypadku to jest 192.168.0.100. Od tej pory wszystkie zapytania na port 80 będą przekierowane przez router na twój serwer Ubuntu.
Sprawdź swój zewnętrzny numer IP i po wpisaniu go w przeglądarkę powinna się pokazać twoja domyślna strona. Najłatwiej sprawdzić swoje zewnętrzne ip wchodząc na stronę:
Domena serwera.
Chciałbym pokazać jeszcze jak zmieniać ustawienia serwera, poprzez tworzenie dodatkowych plików konfiguracyjnych. Po utorzeniu takiego pliku musisz go przypisać do serwera i zrestartować serwer.
$ sudo nano /etc/apache2/conf-available/servername.conf
[ctrl]+[Q] - zapisz
[ctrl]+[W] - wyjdź
$ sudo a2enconf servername.conf $ sudo systemctl reload apache2 $ sudo apache2ctl -t
Podsumowanie
Wszystkie pliki konfiguracyjne serwera Apache2 znajdują się w folderze:
~$ ls /etc/apache2/ apache2.conf conf-enabled magic mods-enabled sites-available conf-available envvars mods-available ports.conf sites-enabled
Po każdej dokonanej zmianie należy serwer Apache2 zrestartować
$ sudo systemctl restart apache2
Pozostałe komendy:
- start
- uruchamia serwer
- stop
- zatrzymuje serwer
- restart
- zatrzymuje i uruchamia serwer
- reload
- przeładowuje, bez zatrzymania serwera
- status
- wyświetla informacje o serwer