Web Development na Ubuntu cz. 1 – Nginx

W tej części wpisu pokażę Ci w jaki sposób zainstalować środowisko deweloperskie pod kątem samego serwera lokalnego. Pokaże Ci również jak zainstalować i skonfigurować interpreter PHP oraz bazę danych.

W pierwszej kolejności zajmiemy się serwerem Nginx czyli tzw. web server. Moglibyśmy użyć Apache2, jednak ja preferuję Nginx i to własnie konfiguracje na podstawie nginx Ci pokażę.

Co chcę osiągnąć w tym poradniku

Przede wszystkim chciałbym mieć lokalne środowisko do pracy z Symfony lub WordPress. Natywnie zainstalowane całe środowisko czyli bazę danych, webserver oraz interpreter PHP, bo tyle będziemy potrzebować. Chcę aby wchodząc na stronę:

http://test.local

Otwierała się strona z wynikiem zmiennej wyprowadzonej na ekran w PHP. Wtedy będziemy mieć pewność, że WebServer oraz interpreter PHP działają prawidłowo. Połączenia PHP z MariaDB czyli bazą danych sprawdzać nie musimy, ponieważ z tym nie powinno być żadnego problemu. Oczywiście należy pamiętać, że do połączenia się PHP z bazą danych używamy klasy PDO. Nigdy nie korzystaj z mysqli_query lub co gorsza już wycofanej metody proceduralnej mysql.

Zaczynamy od aktualizacji pakietów

Zaczniemy od postawienia web servera. Uruchamiamy terminal:

Ikona terminala w Ubuntu 22.04 LTS

Następnie w konsoli terminala wpisujemy komendy:

sudo apt update
sudo apt -y upgrade
Aktualizacja pakietów Ubuntu 22.04 LTS

Co pozwoli nam zaktualizować informacje o pakietach oraz same pakiety. Poradnik ten piszę na wersji Ubuntu 22.04 LTS. Lecimy dalej.

Instalacja webserver nginx

Wpisujemy w terminalu komendę:

sudo apt install nginx

Powinien bez problemu zainstalować się nginx. Zweryfikujmy czy tak się stało. Jeśli się zainstalował, to gdy wejdziesz do przeglądarki internetowej na przykład Firefox i po wpisaniu w pasku adresu:

http://localhost

Powinieneś dostać takie okno:

Widok adresu localhost po zainstalowaniu nginx

Jeśli pojawił się napis jak na obrazku to oznacza, że Nginx mamy już zainstalowany. Kilka drobnych istotnych rzeczy:

Konfiguracja Nginx znajduje się w katalogu:

/etc/nginx

Natomiast domyślna strona dostępna pod adresem localhost znajduje się w katalogu:

/var/www/html
Zawartość katalogu /var/www/html

Dodatkowa konfiguracja

Chciałbym, aby wpisując domenę test.local w przeglądarce widniał konkretny adres z katalogu domowego i aby były poprawnie ustawione uprawnienia do plików. Otwieramy plik:

sudo nano /etc/hosts
Dodajemy hosta z test.local

Dodajemy to co widać w trzeciej linii czyli:

127.0.0.1 test.local

Następnie dodamy virtualhost w nginx. Wchodzimy do katalogu (z poziomu terminala komendą cd)

/etc/nginx/sites-available

Tworzymy nowy plik, musimy to zrobić z uprawnieniami root czyli konieczne będzie podanie hasła. Polecam przekopiować plik domyślny i po prostu zmienić jego zawartość

sudo cp default test.local

Następnie wpisujemy:

sudo nano test.local
Zawartość pliku test.local

Pamiętaj, żeby w linijce root, zmienić katalog w którym domyślnie będziesz mieć pliki projektu. u mnie to jest /home/dgdevpl, u Ciebie to może być /home/jan_kowalski.

Mój plik test.local wygląda tak jak wyżej. Specjalnie Ci go nie wklejam tutaj, abyś mógł go sobie przepisać uzupełniając swoją nazwę użytkownika.

Po zapisaniu pliku, aby działała domena http://test.local musimy utworzyć symlink (skrót) do tej strony i zrestartować nginx:

sudo ln -s /etc/nginx/sites-available/test.local /etc/nginx/sites-enabled/
sudo service nginx restart

Następnie chciałbym, aby nginx był tak skonfigurowany, żeby nie było później problemu z uprawnieniami do plików. W tym celu wejdziemy do pliku:

sudo nano /etc/nginx/nginx.conf
Zawartość pliku nginx.conf, którą trzeba zmienić (1 linijka)

Zmieniamy pierwszą linijke z user www-data i podmieniamy właśnie www-data na swojego użytkownika, w moim przypadku to dgdevpl. Teraz tylko:

sudo service nginx restart

Następnie w katalogu root projektu czyli: /home/dgdevpl/www/test.local tworzymy plik index.html i wklejamy do niego na razie jakąkolwiek zawartość. Sprawdzamy czy działa:

Domena lokalna test.local

I gotowe. Konfiguracja lokalnie nginx została zakończona wraz z VirtualHostem. W następnym wpisie pokażę jak podpiąć PHP 8.2, a zainstalujemy go jako FPM.

Jeśli jesteś zainteresowany poszerzeniem swojej wiedzy z samego Nginx, to zachęcam do zapoznania się z tym kursem Wideo

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *