facebook-ictlaboratory.com

Wybierz swój język

Server Apache2 HTTP

Jeden z najpopularniejszych serwerów HTTP do udostępniania stron internetowych. Utworzony w 1995 roku dla systemu Windows i Linux


https://httpd.apache.org

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

Default-Page-It-works

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.

Super-Hub-GUI

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ę:

https://www.myip.com/

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