Ubuntu Server – Serwer stron WWW

article-thumbnail

Jednym z najczęstszych zastosowań dla wszystkich serwerów jest hostowanie stron internetowych. Na Windowsie Server służy do tego rola IIS, a na Ubuntu jest to, chociażby oprogramowanie dostarczane przez Apache. W tym wpisie pokażę jak zainstalować i skonfigurować serwer stron i aplikacji internetowych Apache2 pod obsługe baz danych MySQL oraz języka PHP.

Instalacja

Pierwszym krokiem jest aktualizacja repozytorium menadżera pakietów apt. Używamy więc polecenia

sudo apt update
sudo apt upgrade

Następnie używając poniższego polecenia, instalujemy potrzebne składniki.

sudo apt install apache2 php mysql-server php-mysql

Sprawdzenie poprawności instalacji.

Zanim przejdziemy dalej, upewnijmy się, że wszystko działa poprawnie. Najpierw zrestartujmy usługą a następnie wyświetlmy jej status. Polecenia, których użyłem to:

sudo systemctl restart apache2
sudo systemctl status apache2

U mnie działa.

Teraz przejdźmy do przeglądrki internetowej i wpiszmy adres IP naszego serwera w takiej formule

http://<ip serwera>

Strona podstawowa Apache’a.

Teraz sprawdźmy, czy usługi związane z MySQL i PHP działają. Użyjmy do tego poleceń.

php -v
sudo systemctl restart mysql
sudo systemctl status mysql

Obsługa stron dodanych przez użytkowników.

No dobrze, serwer HTTP działa, ale przecież gdy wykupujemy hosting, nie mamy dostępu do głównego katalogu, a wszystkie pliki naszych stron są składowane w miejscu niedostępnym dla innych wynajmujących. Sprawmy, żeby u nas też tak to działało.

Na początek użyjmy polecenia

sudo a2enmod userdir
sudo systemctl restart apache2

Teraz dodajmy nowego użytkownika, który nie będzie mógł logować się do systemu, a jedynie będzie służył jako „kontener” na pliki stron. W tym celu wykonajmy polecenie

sudo adduser –shell /usr/sbin/nologin <nazwa>

Teraz utwórzmy w katalogu domowym nowego użytkownika katalog public_html. To w nim w przyszłości znajdą się pliki stron internetowych tego user’a. Używamy do tego poleceń

sudo mkdir /home/<nazwa użytkowinka>/public_html

Kolejnym krokiem jest zmiana właściciela katalogu poleceniem

sudo chown <grupa>:<użytkownik> /ścieżka

Następnie umieśćmy w tak utworzonym katalogu plik, za pomoca którego przetestujemy, czy wszystko działa jak chcemy. Ja użyję do tego polecenia

sudo nano /home/<nazwa użytkownika>/public_html/index.php

Teraz skonfigurujmy jeszcze interpreter PHP, tak aby działał poza katalogiem /var/www/html. Użyjemy do tego polecenia

sudo nano /etc/apache2/mods-available/php<wersja>.conf

Zmieniamy zapis php_admin_flag engine Off na php_admin_flag engine On. Następnie resetujemy poleceniem

sudo systemctl restart apache2

Na koniec przetestujmy, czy nasz serwer działa poprawnie. Wchodzimy w naszą przeglądarkę internetową i wpisujemy w pasku adres

http://<IP serwera>/~<nazwa użytkownika>

Jak widać wszystko działa

Aby zamiast /~<nazwa użytkownika>/ użyć nazwy domenowej, będziemy potrzebować systemu hostów wirtualnych, jednak to nie jest tematem tego wpisu.