Skip to content

nginx + php5-fpm: instalacja i konfiguracja serwera

Posted on:8 września 2012 at 11:00
Reading TIme:3 min czytania
Feature Image for  nginx + php5-fpm: instalacja i konfiguracja serwera

Za każdym razem, jak tylko stawiałem na nowo system operacyjny, to instalowałem i konfigurowałem apache2 + php. W końcu to najpopularniejsze rozwiązanie na linuksowych (i nie tylko) serwerach w sieci. Tym razem postanowiłem pójść dalej i przetestować  inne, wprawdzie mniej popularne (ale do czasu), z którym wiąże się trochę więcej zabawy z konfiguracją. Dzisiejszy wpis (z serii do zapamiętania) dotyczy instalacji i konfiguracji serwera HTTP NGINXPHP5-FPM oraz z bonusami (mysql+phpmyadmin) na Ubuntu.

Instalacja

Na sam początek należy odświeżyć repozytoria i zainstalować dostępne aktualizacje.

sudo apt-get update && sudo apt-get upgrade

Następnie instalujemy pakiet: nginx (czytaj engine x), php5-fpm, mysql i phpmyadmin:

sudo apt-get install nginx php5-fpm mysql phpmyadmin

Ubuntu odpowiednio dobierze brakujące pakiety i pojedzie z koksem. Kilka następujących uwag:

sudo apt-get install php5-*

 Konfiguracja

Kolejny etap to oczywiście konfiguracja nginx + php5-fpm, która początkowo może przerażać (mnie przeraziła, ale to z powodu niewystarczającej wiedzy) ale po czasie może okazać się trywialna.

Na początek krótkie komendy do restartowania usług nginx  i php5-fpm:

/etc/init.d/nginx restart

/etc/init.d/php5-fpm restart

Wszelkie konfiguracje dla nginx znajdują sie w katalogu /etc/nginx (warto sobie odpalic mc na prawach roota),  nas interesuje default w katalogu sites-available.  Gotowa konfiguracja domyślnego VH jest dostępna na githubie. Ogólnie całość konfiguracji, znajduje się na Githubie i możecie forkować/modyfikować/adaptować pod swoje wymagania. Oczywiście krytyka i uwagi mile widziane.

Pozwolę sobie wyjaśnić kilka spraw.  Po pierwsze, domyślny plik default w sites-available, nie jest uporządkowany i zostawiłem tak by każdy mógł zobaczyć jak wyglądał mój początkowy kod. Następnie, np. wp.local zawiera zdecydowanie ładniejszą i zrozumiałą strukturę, z dołączonymi (include) plikami z zewn.  Pozwoliłem sobie utworzyć katalog rules i tam umieścić powtarzajace reguły / fragmenty kodu, wspólne dla wszystkich konfiguracji - tutaj wielkie dzięki dla MatiPL za sugestie:).

Dalsze informacje na temat tworzenia samych konfiguracji i jak ich możliwości dalszej optymalizacji, znajdziecie u Marcina Kasperskiego w tym wpisie (ogólnie polecam cały cykl tworzenia VPS od podstaw).

Następnym krokiem jest tworzenie dowiązań symbolicznych configów, znajdujacych się w sites-available do katalogu sites-enabled:

sudo ln -s /etc/nginx/sites-available/sql.local /etc/nginx/sites-enabled/sql.local

Jak utworzyliśmy odpowiednie konfiguracje i utworzyliśmy dowiązania symboliczne, należy zrestartować nginx’a i zobaczyć, czy terminal wypluwa jakieś błędy. Gdyby nie było zrozumiałe, warto zajrzeć do logów (ścieżki są podane w konfiguracjach).  Gdy wszystko jest ok, następnym i ostatnim krokiem jest dopisanie lokalnych domen (odwołań do stron) w pliku /etc/hosts np:

127.0.0.1 localhost sql.local wp.local

Niczego nie trzeba restartować, wystarczy wpisać w przeglądarce adresy takie jak wp.local, żeby zobaczyć zawartość strony.

I po co to wszystko?

W warunkach domowych, do czystej developerki na własnym sprzęcie, wybór między nginx a apache2 nie ma znaczenia. W innych, bardziej otwartych warunkach (tj. praca zespołowa, testy publiczne) różnica jest już spora,  co doskonale opisał Marcin - poczytajcie, ja nie będę dublował wpisu, zwłaszcza tak fajnie opisującego różnice.

Co z tego mam? Po prostu kolejna ważna porcja wiedzy. :)

Przydatne linki



Możesz napisać do mnie e-mail lub wyszukać mnie na Mastodonie.
Loading...