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).
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.
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.
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
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
Poniższa komenda zaktualizuje pakiety, które masz zainstalowane na swoim serwerze VPS.
apt-get upgrade
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.
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
Po dokonaniu edycji pliku locale.gen należy jeszcze uruchomić locale-gen, by zmiany zostały wczytane do systemu.
/usr/sbin/locale-gen
Teraz już polskie znaki wyświetlają się poprawnie, co widać poniżej.
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]
Zanim zatwierdzisz rozpoczęcie instalacji sprawdź, czy właśnie o taką konfigurację Ci chodziło.
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.
…
…
…
nano /etc/ssh/sshd_config
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.
Zmieniamy port na dokładnie ten sam, który ustawiliśmy w pliku konfiguracji sshd_config.
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
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.
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.
Czy mógłbyś dodać rozwinięcie tutka jak zainstalować i uaktywnić php 5.6? Niektóre softy jeszcze na tym chodzą.
Z radością niemal rok temu pozbyłem się ostatniego softu, który chodził na starej wersji PHP 5.6 i dlatego nie będę rozwijać tutoriala o tę wersję.
„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.”
Jakie to pliki i gdzie je trzeba skopiować ?
Jeżeli zależy Ci na tym, żeby każdy użytkownik miał swój niezależny proces php-fpm to masz 2 opcje. Możesz ręcznie kopiować 1 plik, zmieniać mu nazwę i edytować 1 linię. Dla przykładu mając zainstalowane jedynie PHP 7.2 musisz wejść w folder /etc/php/7.2/fpm/pool.d/ i skopiować plik admin.conf tworząc mu taką nazwę jaką ma użytkownik systemu. Czyli jeśli stworzysz użytkownika szalony to kopiujesz plik admin.conf do szalony.conf i edytujesz jedynie 4 linię, która ma postać [admin] i zmieniasz to na [szalony]. Zapisujesz. Restartujesz proces php-fpm. To wszystko. Jeśli jednak chcesz to mieć zrobione automatem to musisz dokonać edycji plików /usr/local/vesta/bin/v-add-user oraz v-delete-user, które są odpowiedzialne za dodawanie i usuwanie użytkownika systemu.
piszesz żeby móc userów dodawać z automatu należy edytować /usr/local/vesta/bin/v-add-user oraz v-delete-user, możesz napisać co trzeba konkretnie edytować?
Cześć, dzięki za poradnik. Czy VESTA obsługuje coś w rodzaju resellera z Direct Admin. I drugie pytanie czy można do takiego serwera dorzucić LSCache/Redis. Nie znam się na tych technologiach, ale widzę, że wprowadzają je dynamicznie na usługach dedykowanych pod WordPress.
Witaj, nie ma nic takiego jak reseller. To jest uboższy panel niż DirectAdmin. Podejrzewam, że można do Vesty (a raczej serwera) dorzucić to, co się chce. Nie sądzę jednak, żebyś potrzebował tego. Instalacja Vesty z nginx+apache2 jest wystarczająca. Do tego dobry plugin do cache pod WordPress. Ja rozważałem Varnish, ale odpuściłem.
Co to za modyfikacje Vesty?
Rafał, wszystko jest opisane w tutorialu.
Cześć
DZięki wielkie za tutorial. Pierwszy raz stawiałem serwer VPS i dzięki temu chyba wszystko się udało.
W jaki sposób skonfigurować serwer FTP i dostęp do niego?
Witaj, serwer FTP jest instalowany wraz z panelem Vesta. Logujesz się na FTP przy pomocy danych użytkownika panelu. Jeśli chcesz skonfigurować dodatkowe konta FTP w ramach danego użytkownika to robisz to w sekcji WEB edytując dane konkretnej witryny.
Cześć! W jaki sposób uruchomić HTTPS dla domeny VPSa oraz innych, aktualnie po dodaniu subdomeny mam przekreślone wsparcie dla SSL, a gdy próbuję włączyć LetsE, to dostaję komunikat „Error: Let’s Encrypt validation status 400”?
Witaj, muszę to dokładnie sprawdzić, bo kilka/kilkanaście dni temu Let’s Encrypt coś u siebie zmieniło i nie dało się wygenerować certyfikatu nawet w komercyjnym panelu DirectAdmin. Dla DA już wyszła aktualizacja i da się generować certyfikaty Let’s Encrypt, ale w panelu Vesta chyba nie. Sprawdzę i dam znać.
Okej super, w takim razie czekam na info.
Cześć Krzysztof! Udało Ci się uporać z problemem wygenerowania certyfikatu LE? Niestety ten sam błąd (400) pojawia się także u mnie.
Łukasz, sprawdź, jak wygląda u Ciebie plik /usr/local/vesta/bin/v-add-letsencrypt-domain. Chodzi konkretnie o linię zaczynającą się od well_known.
Jeśli masz coś takiego
well_known="$HOMEDIR/$user/web/$rdomain/public_html/.well-known"
to zamień to na
well_known="$HOMEDIR/$user/web/$domain/public_html/.well-known"
Niestety, miałem już poprawną linijkę kodu. Czy masz może jeszcze jakiś pomysł?
Czy jesteś pewien, że konfiguracja DNS jest prawidłowa? LE potrafi walić błędami, jeśli domena jest błędnie skonfigurowana. Jest to o tyle dziwne, że w przeglądarce wszystko działa poprawnie, ale LE nie chce się wtedy wygenerować.
Domenę mam na innym serwerze, utworzyłem sobie subdomenę i w tej subdomenie wskazałem sobie rekord A na serwerze na którym jest Vesta. Czy jest to poprawny sposób?
No to już mam pewne podejrzenia. Czy
www.subdomena.domena.tld
również masz skierowane i skonfigurowane w panelu Vesta?Nie, jedynie subdomena.domena.ltd. I to samo jest dodane w panelu.
To spróbuj dodać www również. Zobacz, że jak dodajesz stronę, czyli domenę do Vesty to od razu panel konfiguruje też wersję z www i certyfikat LE chce się wygenerować dla domeny bez www oraz dla domeny z www i sprawdzana jest konfiguracja serwera DNS, która informuje LE, że wersja z www nie jest skonfigurowana. Alternatywnie możesz spróbować usunąć alias z www, który automatem tworzy Vesta. Wejdź w sekcję WEB i edytuj stronę usuwając alias tworzony z automatu.
Faktycznie, problem leżał w tym, że LE chciało wygenerować też SSL dla aliasu z WWW, który nie był dodany. Dzięki za pomoc! Mam jeszcze pytanie, w jaki sposób można by wykorzystać teraz ten certyfikat SSL żeby był także dostępny dla portu Vesta przy logowaniu do panelu?
A czy VPS masz od OVH? Jeśli tak to jest problem, bo LE ma limity na subdomeny, a w zasadzie na generowanie certyfikatów. Dlatego mając VPS w OVH masz adres VPSa z końcówką
ovh.net
i prawdopodobnie nie wygenerujesz certyfikatu dla swojego VPSa.Tak, mam VPS w OVH, ale nie używam subdomeny z OVH, tylko podpiąłem swoją, zewnętrzną domenę.
Dodatkowo udało mi się podpiąć ten cert wygenerowany w panelu za pomocą symlink:
Kopia obecnego certyfikatu
mv /usr/local/vesta/ssl/certificate.crt /usr/local/vesta/ssl/bkp.crt
mv /usr/local/vesta/ssl/certificate.key /usr/local/vesta/ssl/bkp.key
Stworzenie symlinka:
ln -s /home/admin/conf/web/ssl.subdomena.domena.ltd.crt /usr/local/vesta/ssl/certificate.crt
ln -s /home/admin/conf/web/ssl.subdomena.domena.ltd.key /usr/local/vesta/ssl/certificate.key
Restart Vesta:
service vesta restart