W końcu udało mi się zmotywować do skończenia tutoriala o konfiguracji serwera VPS z systemem Debian 9 (Stretch), panelem Vesta oraz wieloma wersjami PHP. Pewnie nigdy by to nie nastało, gdyby nie liczne prośby internautów, którzy natrafili na poprzednią wersję tutoriala sprzed półtora roku.

Jeśli by ktoś chciał rzucić okiem na poprzednią wersję to jest ona dostępna tutaj, choć tak naprawdę aktualna wersja systemu Debian to 9.7, więc nie widzę sensu, by instalować starego już Debiana 8.

Dlaczego akurat ten tutorial?

Śmiało możesz skorzystać ze strony oficjalnej panelu Vesta. Jeżeli jednak chcesz mieć do wyboru kilka wersji PHP (7.0, 7.1, 7.2, 7.3) działających zarówno jako fcgid jak i PHP-FPM to może Cię mój poradnik zainteresować. Do wyboru jest też Percona Server (fork MySQL) w najnowszej, czyli 8 wersji. Ponadto wszystko jest zrozumiale i prosto wytłumaczone oraz okraszone zrzutami ekranu, przez co nawet niedoświadczony użytkownik poradzi sobie z konfiguracją serwera VPS od A do Z.

Poradnik dotyczy dowolnego serwera VPS, jednak ja skorzystałem z oferty OVH. Nie ma to znaczenia, ale pierwsze 2 zrzuty ekranu są zrobione z panelu klienta OVH. Wykonując reinstalację systemu wybierz system Debian 9 (Stretch).

OVH VPS system operacyjny

Wybór systemu operacyjnego w panelu OVH podczas instalacji/reinstalacji serwera VPS

Jako język instalacji zawsze wybieram polski, ale nie jestem pewien, czy to cokolwiek zmienia, gdyż później i tak jest problem z polskimi znakami. Oczywiście poradzimy sobie z tym problemem w kolejnych krokach.

OVH VPS język instalacji

Wybór języka instalacji w panelu OVH podczas instalacji/reinstalacji serwera VPS

Po zakończonej reinstalacji systemu Debian 9 (Stretch) otrzymasz na swój adres e-mail wygenerowane hasło roota. Możesz też skorzystać z klucza, dzięki któremu będziesz logować się do VPSa bez podawania hasła.

Debian zalogowano jako root

Pierwsze logowanie przez SSH jako root do świeżo zainstalowanego systemu Debian 9 (Stretch)

Warto upewnić się, że posiadamy najnowszą wersję systemu operacyjnego Debian 9 (Stretch). W przypadku OVH nie powinno z tym być problemu, ale nie wiem, czy wszędzie dostępne są najnowsze wersje systemów operacyjnych. W moim przypadku jest to wersja 9.7, czyli najnowsza.

cat /etc/debian_version
Debian sprawdzenie wersji

Sprawdzenie dokładnej wersji systemu Debian – w dniu publikacji artykułu 9.7 to najnowsza wersja

Po czystej instalacji systemu wszystkie pakiety powinny być aktualne. Jeśli jednak korzystasz z VPSa, na którym system był instalowany jakiś czas temu i nie masz zamiaru reinstalować go ponownie, by mieć świeżą wersję, warto zaktualizować już zainstalowane pakiety.

apt-get update
Debian apt-get update

Aktualizacja informacji o pakietach w oficjalnych repozytoriach Debiana

Poniższa komenda zaktualizuje pakiety, które masz zainstalowane na swoim serwerze VPS.

apt-get upgrade
Debian apt-get upgrade

Aktualizacja zainstalowanych pakietów – przy świeżej instalacji brak pakietów do aktualizacji

Krzaki zamiast polskich znaków pomimo wybrania polskiej instalacji to rzecz normalna. Nie wiem, czy tylko w OVH, ale tutaj tak jest. Nic strasznego, szybko to naprawimy.

Debian polskie znaki krzaki

Pomimo wybrania polskiej instalacji systemu w panelu OVH widoczne są krzaki zamiast polskich znaków

Przy użyciu bardzo przyjemnego (jak na Linux) edytora nano należy usunąć # (hash) znajdujący się przed linią przed linią pl_PL.UTF-8 UTF-8. Zmiany zapisujemy przy użyciu kombinacji klawiszy ctrl+o, następnie wychodzimy przy pomocy ctrl+x.

nano /etc/locale.gen
Debian edycja pliku locale.gen

Należy dokonać edycji pliku locale.gen, aby poprawnie wyświetlały się polskie znaki

Po dokonaniu edycji pliku locale.gen należy jeszcze uruchomić locale-gen, by zmiany zostały wczytane do systemu.

/usr/sbin/locale-gen
Debian uruchomienie locale-gen

Po edycji pliku locale.gen, należy jeszcze wygenerować obsługę nowo-dodanych polskich znaków

Teraz już polskie znaki wyświetlają się poprawnie, co widać poniżej.

Debian polskie znaki poprawne

Teraz polskie znaki wyświetlają się poprawnie, co widać w dolnej części zrzutu ekranu

Wszystkie powyższe kroki nie są wymagane, jednak warto je wykonać, by system był aktualny i nie wyświetlał krzaków, jeśli zdecydujesz się na „zaprzyjaźnienie się” z SSH i systemem Debian.

Instalacja panelu Vesta z moją modyfikacją

Jeśli zdecydujesz się na skorzystanie z mojej, zmodyfikowanej wersji skryptu instalatora panelu Vesta dla systemu Debian 9 (Stretch) to masz 2 opcje do wyboru – ręczne uruchomienie komendy podanej poniżej z naniesionymi przez siebie zmianami lub użycie przyjaznego generatora komendy instalacji panelu Vesta, co polecam.

[shell]curl -O https://www.lesiu.eu/vesta/vst-install-debian-lesiu.sh
bash vst-install-debian-lesiu.sh –nginx yes –apache yes –phpfpm yes –vsftpd yes –proftpd no –exim yes –dovecot yes –spamassassin yes –clamav yes –named yes –iptables yes –fail2ban yes –softaculous no –quota yes –mysql no –percona yes –postgresql no –hostname vps123456.ovh.net –email vesta@lesiu.eu –password z3N2rsQJWsb5d7rW[/shell]

Vesta skrypt i komenda instalacji

Instrukcja instalacji panelu Vesta dla systemu Debian 9 (Stretch) z moimi modyfikacjami

Zanim zatwierdzisz rozpoczęcie instalacji sprawdź, czy właśnie o taką konfigurację Ci chodziło.

Vesta instalacja potwierdzenie

Lista usług oraz aplikacji które zostaną zainstalowane wraz z panelem Vesta na systemie Debian 9 (Stretch)

Jeśli masz odrobinę szczęścia to po kilku lub kilkunastu minutach otrzymasz komunikat informujący, że instalacja panelu Vesta wraz z wybranymi usługami oraz aplikacjami dobiegła końca.

Vesta instalacja sukces i podsumowanie

Gdy proces instalacji panelu Vesta oraz wybranych usług dobiegnie końca otrzymasz taki komunikat

Vesta panel logowanie

Formularz logowania do panelu Vesta

Vesta ustawienia użytkownika

Edycja domyślnego użytkownika admin pozwoli Ci zmienić podstawowe ustawienia, w tym hasło wybrane podczas instalacji

nano /etc/ssh/sshd_config
Debian zmiana portu SSH

Domyślny port SSH, czyli 22 warto zmienić na coś innego z uwagi na kwestie bezpieczeństwa

Zmiany zapisujemy przy użyciu kombinacji klawiszy ctrl+o, następnie wychodzimy przy pomocy ctrl+x. Należy jeszcze zrestartować usługę SSH.

service sshd restart

Teraz należy jeszcze zmienić port przypisany do SSH w konfiguracji firewalla dostępnej w panelu Vesta.

Vesta domyślne reguły firewalla

W sekcji firewall można zmienić domyślne ustawienia panelu Vesta

Zmieniamy port na dokładnie ten sam, który ustawiliśmy w pliku konfiguracji sshd_config.

Vesta zmiana portu SSH

Po zmianie portu SSH w konfiguracji systemu Debian 9 (Stretch) należy jeszcze zmienić port dla SSH w panelu Vesta

Jeżeli masz VPS w OVH i chcesz korzystać z ich DNS (sdns2.ovh.net) jako swojego drugiego serwera DNS to należy dokonać delikatnej zmiany w pliku konfiguracji BIND (serwera DNS).

nano /etc/bind/named.conf.options
Debian secondary DNS od OVH

Modyfikacja konfiguracji serwera BIND w celu korzystania z secondary DNS od OVH

Teraz jeszcze tylko restart BIND (serwera DNS), który wykonujemy przy pomocy poniższej komendy.

service bind9 restart

Teraz już możesz śmiało korzystać z serwera DNS udostępnionego klientom OVH.

Wybór wersji PHP dla każdej strony

Teraz dla każdej ze strony możesz wybrać wersję PHP, która Cię interesuje.

Vesta wybór wersji PHP

Dla każdej ze stron można wybrać wersję PHP 7.0, 7.1, 7.2 oraz 7.3 – wszystkie działają jako fcgid lub PHP-FPM – do wyboru

Instalator automatycznie konfiguruje PHP-FPM dla domyślnego użytkownika admin. Jeżeli natomiast chcesz korzystać z wielu użytkowników to musisz po dodaniu użytkownika skopiować 4 pliki i dodać w nich nazwę tego użytkownika. Nie jest to wymagane, o ile korzystasz z PHP w wersji fcgid. Jeśli zaś potrzebujesz PHP-FPM to delikatna zmiana będzie konieczna. Skąd to utrudnienie?

Domyślnie PHP-FPM dla każdej z wersji PHP działa jako użytkownik www-data. Jest to z jednej strony wygodne, ale bywa też problematyczne. Mając uruchomione osobne procesy dla osobnych użytkowników masz możliwość szybszego sprawdzenia, u którego użytkownika leży problem. Jeśli np. masz stronę A należącą do użytkownika A oraz adekwatnie stronę B użytkownika B i któryś z użytkowników spowoduje całkowite zawieszenie procesu PHP-FPM to strona drugiego użytkownika powinna nadal działać.

Piszcie w komentarzach, jeżeli cokolwiek jest niejasne lub wymaga doprecyzowania.