Przedwczoraj z HitMe.pl dotarła do mnie informacja, że matka serwera VPS na którym działa(ł) Webinsider.pl powoli zmierza na emeryturę (choć może dostanie pewnie jakieś zajęcie, by się nie nudziła ;-)), w związku z tym dostałem propozycję nowego serwera VPS. Oprócz tego, że oznacza to więcej mocy (więcej RAMu, więcej CPU, i dysk SSD do tego) to również przy tej okazji zmienił się typ wirtualizacji –  z XEN na KVM. W związku z tym uznałem, że choć mógłbym spróbować dokonać migracji za pomocą SSH i Rsync, to postanowiłem, że skonfiguruję środowisko (web) serwera ręcznie, przy okazji robiąc notatki do nowej wersji artykułu na ten temat…

Serwer WWW (LEMP) na przykładzie systemu Debian 9

Od razu zaznaczam, że będzie to poradnik mniej typowy (jak na Webinsider.pl), bo nie będzie w stylu „krok po kroku” (step-by-step), a sama esencja. Dlatego (zwłaszcza) osoby mniej doświadczone zachęcam do zapoznania się ze starszą wersją, która nie tylko jest nadal aktualna (aktualizowana na bieżąco), to dużo bardziej szczegółowo prowadzi przez cały proces instalacji i konfiguracji webserwera…

Kolejną zmianą jest to, że wprawdzie nadal będziemy pracować na Debianie, to jednak tym razem nie będziemy korzystać z wbudowanych źródeł pakietów (oprogramowania), a serwer WWW (Nginx), obsługę PHP i bazę danych (MySQL) zainstalujemy z zewnętrznych źródeł, dzięki czemu uzyskamy nowsze wersje oprogramowania, niż te znajdujące się w repozytorium Debiana (tak dla odmiany ;-)).

Nginx, czyli serwer WWW

Jako podstawy użyjemy (web)serwer, z którego zazwyczaj korzystam już do dłuższego czasu, i ogólnie jestem zadowolony, choć brakuje kilku elementów znanych np. z Apache2 (dynamiczne dodawanie modułów, czy obsługa pliku .htaccess).

Do pliku \etc\apt\source.list dodajemy:

deb http://nginx.org/packages/mainline/debian/ stretch nginx
deb-src http://nginx.org/packages/mainline/debian/ stretch nginx

Do tego odpowiednie kluczyki:

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

I na koniec odświeżamy listę pakietów:

sudo apt-get update

Z powyższego polecenia korzystamy po każdej modyfikacji źródeł pakietów…

Powyższe dotyczy Debiana 9 Stretch. Jeśli korzystacie z Debiana 8 Jessie, i nie macie możliwości aktualizacji systemu do nowszej wersji, to możecie skorzystać z takich źródeł pakietów:

deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

Ew. wersja alternatywna, dającą m.in. obsługę HTTP/2 i ALPN:

deb http://httpredir.debian.org/debian/ jessie-backports main contrib non-free
deb-src http://httpredir.debian.org/debian/ jessie-backports main contrib non-free
deb http://packages.dotdeb.org jessie-nginx-http2 all
deb-src http://packages.dotdeb.org jessie-nginx-http2 all

Dalej instalacja nowszej wersji OpenSSL:

sudo apt-get install -t jessie-backports openssl

Dodanie odpowiednich kluczy do systemu:

wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg

I na koniec sama instalacja Nginx:

sudo apt-get install -t jessie-nginx-http2 nginx

Dzięki temu nawet w systemie Debian 8 możecie cieszyć się obsługą HTTP/2 i ALPN…

Nginx dostępny w repozytoriach Debiana pliki konfiguracyjne trzyma w katalogu:

/etc/nginx/sites-enabled/

Natomiast Nginx instalowany „od producenta” trzyma je w katalogu:

/etc/nginx/conf.d var click_object = {"ajax_url":"https:\/\/webinsider.pl\/wp-admin\/admin-ajax.php"};