Kategoria: CyberPanel

  • Kluczowa Aktualizacja OpenLiteSpeed 1.8.4: Wzmocnienie Jądra Serwera

    Kluczowa Aktualizacja OpenLiteSpeed 1.8.4: Wzmocnienie Jądra Serwera

    1 sierpnia 2025 r. — Nowa wersja popularnego serwera WWW OpenLiteSpeed (OLS) oznaczona numerem 1.8.4 została opublikowana, przynosząc szereg istotnych poprawek. Aktualizacja skupia się na ulepszeniach w „Core” serwera, co oznacza, że zmiany dotyczą fundamentalnych, kluczowych komponentów, odpowiadających za jego bezpieczeństwo, stabilność i wydajność.


    Poprawki w Bezpieczeństwie i Stabilności

    Jedną z najważniejszych zmian jest usunięcie krytycznej luki w protokole HTTP/3, która powodowała wyciek pamięci. Błąd ten mógł prowadzić do stopniowego spowalniania, a nawet awarii serwera, co czyni jego naprawę priorytetem dla administratorów.

    Ponadto, deweloperzy wprowadzili ulepszoną walidację żądań HTTP/2. Ma to na celu lepsze blokowanie złośliwych i źle sformatowanych zapytań, które mogą być elementem ataków typu „denial of service” (DoS). Dzięki temu serwer staje się bardziej odporny na potencjalne zagrożenia i stabilniejszy w obsłudze dużego ruchu.


    Optymalizacja Wydajności

    Aktualizacja 1.8.4 to również szereg usprawnień, które bezpośrednio wpływają na wydajność. Wprowadzono poprawioną obsługę przestrzeni nazw, co jest szczególnie ważne w złożonych środowiskach serwerowych i ułatwia deweloperom zarządzanie kontenerami.

    Usunięto również błąd, który powodował uszkodzenie odpowiedzi serwera z powodu AIO (Asynchronous I/O). AIO jest kluczową techniką, która pozwala serwerowi na jednoczesne przetwarzanie wielu operacji, co jest niezbędne dla płynnego działania witryn o dużym ruchu. Naprawienie tego błędu gwarantuje, że OpenLiteSpeed będzie działał bardziej stabilnie i dostarczał poprawne dane użytkownikom, eliminując ryzyko błędów w ładowaniu treści.


    Jak zaktualizować OpenLiteSpeed?

    Dla administratorów systemów, proces aktualizacji do nowej wersji 1.8.4 jest prosty i zautomatyzowany. OpenLiteSpeed dostarcza skrypt lsup.sh, który zarządza procesem aktualizacji.

    Aby przeprowadzić aktualizację, wystarczy wykonać następujące kroki w terminalu:

    1. Przejdź do katalogu instalacyjnego OpenLiteSpeed:cd /usr/local/lsws
    2. Uruchom skrypt aktualizujący:./lsup.sh

    Skrypt automatycznie pobierze i zainstaluje najnowszą wersję, zachowując istniejące ustawienia serwera. Pełna dokumentacja dotycząca procesu aktualizacji jest dostępna na oficjalnej stronie projektu OpenLiteSpeed.


    Podsumowanie

    Wydanie OpenLiteSpeed 1.8.4 to sygnał, że deweloperzy koncentrują się na solidnych fundamentach swojego oprogramowania. Zmiany w „Core” serwera, skupione na bezpieczeństwie i optymalizacji, sprawiają, że aktualizacja jest niezbędna dla każdego, kto chce utrzymać swoje serwery w optymalnej kondycji.

  • Ubuntu Server 24.04 + ISPConfig (Nginx) + OpenLiteSpeed: Nowoczesny i Wydajny Serwer WWW i Email bez CyberPanel

    Ubuntu Server 24.04 + ISPConfig (Nginx) + OpenLiteSpeed: Nowoczesny i Wydajny Serwer WWW i Email bez CyberPanel

    Wstęp

    Witajcie, drodzy administratorzy serwerów, zapaleńcy linuksowych rozwiązań i wszyscy ci, którzy na hasło „reverse proxy” nie wybiegają z pokoju z krzykiem. Dziś podzielę się z Wami historią migracji, która – niczym dobre sci-fi – ma swoje zwroty akcji, niespodzianki i happy end (a przynajmniej na razie!).

    Przez ostatnie lata moim głównym narzędziem do zarządzania serwerem WWW i pocztą był zestaw OpenLiteSpeed z CyberPanel. Jednak życie (a konkretnie: autorzy CyberPanel) postanowili, że Ubuntu 24.04 LTS nie będzie im w głowie. I tak przez ponad 3 lata… Aktualizacja? Zapomnij! Support dla nowych wersji Ubuntu? Pomyliłeś adres! Tak oto w czerwcu 2025 roku, mimo licznych próśb i oczekiwań, CyberPanel wciąż nie wspiera najnowszego Ubuntu. I nie zapowiada się, by coś się w tej kwestii zmieniło.

    Ale nie ma tego złego… Postanowiłem więc wziąć sprawy w swoje ręce. W efekcie powstała hybryda na miarę XXI wieku: Ubuntu Server 24.04, ISPConfig z Nginx jako reverse proxy oraz OpenLiteSpeed bez CyberPanelowego balastu. Dlaczego taka kombinacja? Bo lubię mieć kontrolę, cenię sobie wydajność, elastyczność i – co tu kryć – nie chcę być zakładnikiem archaicznych paneli admina.

    Takie rozwiązanie daje:

    • Świeżutki, wspierany system operacyjny z długim wsparciem (a nie wykopaliska z 2022 roku)
    • Pełną kontrolę nad konfiguracją, bez ograniczeń narzucanych przez CyberPanel
    • Możliwość korzystania z wydajności OpenLiteSpeed i prostoty zarządzania przez ISPConfig
    • Bezproblemową obsługę zarówno stron WWW, jak i poczty (a kto próbował skonfigurować własną pocztę na OLS + CyberPanel ten wie, jak wygląda piekło)
    • Nowoczesność, elastyczność i gotowość na przyszłość – a przy okazji mniej siwych włosów na głowie

    Czy jest to rozwiązanie dla każdego? Pewnie nie – ale jeśli masz dość czekania na łaskę twórców panelu, szukasz czegoś wydajnego i lubisz mieć nad wszystkim kontrolę – zostań ze mną. W kolejnych częściach pokażę, jak skonfigurować taki serwer krok po kroku, bez zbędnych zaklęć i frustracji.

    Dlaczego warto tworzyć osobnych klientów dla każdej strony w ISPConfig?

    Konfigurując serwer w ISPConfig, bezpieczeństwo i porządek to podstawa. Dlatego jedną z najlepszych praktyk jest tworzenie osobnego klienta dla każdej strony internetowej, którą zamierzamy hostować. Takie podejście nie tylko upraszcza zarządzanie, ale przede wszystkim podnosi poziom bezpieczeństwa – nawet jeśli na pierwszy rzut oka wydaje się to bardziej czasochłonne.

    Zalety zakładania osobnego klienta dla każdej strony:

    1. Izolacja danych – Każdy klient (a więc i jego strony, maile, bazy danych) działa w swojej własnej „piaskownicy”. Gdyby doszło do włamania na jedną stronę, pozostałe są dużo lepiej chronione.
    2. Łatwiejsza administracja – Zarządzanie uprawnieniami, kopie zapasowe, limity zasobów – wszystko jest czytelne i można ustawiać indywidualnie dla każdego klienta.
    3. Przejrzystość rozliczeń – Jeśli świadczysz usługi hostingowe, łatwiej rozliczysz się z każdym klientem osobno.
    4. Bezpieczna poczta – Konta e-mail klientów są od siebie oddzielone. Spam lub włamanie do jednego konta nie wpływa na pozostałe.
    5. Prostsze przenosiny lub usuwanie – Usunięcie jednej strony (razem z klientem) nie wpłynie na inne witryny na serwerze.

    Pokażę teraz, jak – krok po kroku – stworzyć klienta pod nową stronę na przykładzie solutionsinc.co.uk.


    Limity i bezpieczeństwo w ISPConfig – dlaczego to takie ważne?

    Po utworzeniu klienta w ISPConfig, jednym z najważniejszych etapów konfiguracji jest ustawienie limitów oraz zadbanie o bezpieczeństwo konta. Dzięki ISPConfig możesz precyzyjnie określić, ile zasobów (stron, kont e-mail, baz danych itp.) może wykorzystać każdy klient – to świetne narzędzie do zarządzania zarówno komercyjnymi usługami hostingowymi, jak i własnymi projektami.

    Przykładowe limity, które możesz ustawić:

    • Maksymalna liczba domen i subdomen
    • Limit przestrzeni dyskowej (Web Quota)
    • Limit transferu (Traffic Quota)
    • Liczba kont FTP, użytkowników SSH
    • Możliwość korzystania z określonych technologii (np. PHP, Python, Ruby, SSL, Let’s Encrypt)
    • Limity dla e-maili, baz danych, zadań Cron i innych usług

    Ustawianie limitów pozwala utrzymać porządek, zapobiega przypadkowemu „przeciążeniu” serwera i chroni przed nadużyciami (np. przez błędną konfigurację aplikacji lub atak DDoS).

    Bezpieczne hasło – Twój pierwszy mur obronny

    Bardzo istotną sprawą podczas tworzenia konta klienta jest ustawienie silnego, długiego hasła – najlepiej losowego, wygenerowanego przez manager haseł. Proponuję wybrać hasło o długości nawet 64 znaków, składające się z małych i wielkich liter, cyfr oraz znaków specjalnych. Dzięki managerowi haseł nie musisz go pamiętać, a Twoje konto jest znacznie bezpieczniejsze przed atakami.

    Pamiętaj: Słabe, powtarzalne lub krótkie hasła to zaproszenie dla cyberprzestępców!

    Opis opcji sekcji „Web Limits” w ISPConfig

    • Webservers: Serwer WWW, na którym będą zakładane strony klienta. Zazwyczaj do wyboru masz zdefiniowane wcześniej serwery w panelu.
    • Max. number of web domains: Maksymalna liczba domen, które klient może dodać. Wartość -1 oznacza brak limitu.
    • Web Quota: Limit przestrzeni dyskowej na pliki stron WWW klienta (w MB). -1 = bez limitu.
    • Traffic Quota: Limit miesięcznego transferu danych (w MB) dla wszystkich stron klienta. -1 = brak limitu.
    • PHP Options: Możesz włączyć/wyłączyć PHP oraz wybrać tryb działania (np. PHP-FPM, Disabled). Ważne dla bezpieczeństwa i wydajności.
    • CGI available: Czy klient może uruchamiać skrypty CGI (zazwyczaj wyłączone ze względów bezpieczeństwa).
    • SSI available: Pozwala na używanie Server Side Includes.
    • Perl available / Ruby available / Python available: Dostępność tych języków dla stron klienta.
    • SuEXEC forced: Wymusza uruchamianie skryptów z uprawnieniami użytkownika domeny, zwiększa bezpieczeństwo.
    • Custom error docs available: Czy można definiować własne strony błędów (np. 404.html).
    • Wildcard subdomain available: Umożliwia obsługę subdomen typu *.twojadomena.pl.
    • SSL available: Czy klient może aktywować SSL na swoich stronach (https).
    • Let’s Encrypt available: Umożliwia generowanie darmowych certyfikatów SSL Let’s Encrypt dla stron klienta.
    • Max. number of web aliasdomains: Maksymalna liczba domen aliasów (np. dodatkowe domeny wskazujące na tę samą stronę).
    • Max. number of web subdomains: Maksymalna liczba subdomen na stronach klienta.
    • Max. number of FTP users: Limit liczby użytkowników FTP dla klienta.
    • Max. number of Shell users: Liczba użytkowników z dostępem do SSH (zazwyczaj 0 dla bezpieczeństwa).
    • SSH-Chroot Options: Określa, czy użytkownicy SSH są ograniczeni (chroot) do swojego katalogu domowego („Jailkit”).
    • Max. number of Webdav users: Limit liczby użytkowników WebDAV.
    • Backupfunction available: Czy klient może wykonywać własne kopie zapasowe z poziomu panelu.
    • Show web server config selection: Pozwala klientowi wybierać dodatkowe opcje konfiguracji serwera WWW (dla zaawansowanych).

    Opis opcji sekcji „Email Limits” w ISPConfig

    • Mailservers: Serwer poczty, na którym obsługiwane będą skrzynki i domeny pocztowe klienta.
    • Max. number of email domains: Maksymalna liczba domen e-mail, które może utworzyć klient (-1 = bez limitu).
    • Max. number of mailboxes: Maksymalna liczba skrzynek pocztowych dla klienta (-1 = bez limitu).
    • Max. number of email aliases: Limit aliasów e-mail (np. dodatkowych adresów przekierowujących do skrzynki).
    • Max. number of domain aliases: Liczba aliasów domeny e-mail (czyli dodatkowych domen przypisanych do tej samej poczty).
    • Max. number of mailing lists: Limit list mailingowych (grupowa wysyłka wiadomości).
    • Max. number of email forwarders: Maksymalna liczba przekierowań e-mail (forwardów).
    • Max. number of email catchall accounts: Liczba kont „catchall”, odbierających wszystkie wiadomości wysyłane na nieistniejące adresy w domenie.
    • Max. number of email routes: Liczba tras routingu e-maili (zaawansowane – przekierowywanie poczty na inne serwery według reguł).
    • Max. number of email white / blacklist entries: Maksymalna liczba pozycji na białej/czarnej liście dla danego klienta.
    • Max. number of email filters: Limit filtrów e-mail (np. do automatycznego sortowania lub oznaczania poczty).
    • Max. number of fetchmail accounts: Liczba zewnętrznych kont (fetchmail) – pobieranie poczty z innych serwerów.
    • Mailbox quota: Limit rozmiaru skrzynki pocztowej (w MB). -1 = bez limitu.
    • Max. number of spamfilter white / blacklist filters: Liczba reguł białej/czarnej listy w filtrze antyspamowym.
    • Max. number of spamfilter users: Liczba użytkowników mających własne ustawienia antyspamu.
    • Max. number of spamfilter policies: Liczba polityk (zestawów reguł) antyspamowych.
    • E-mail backup function available: Czy klient może samodzielnie tworzyć kopie zapasowe poczty przez panel.

    Tworzenie użytkownika bazy danych dla strony – ISPConfig

    Po utworzeniu klienta i ustaleniu limitów, kolejnym krokiem jest stworzenie osobnego użytkownika bazy danych dla nowej strony (np. solutionsinc.co.uk). W tym celu przechodzimy do zakładki Sites, a następnie do sekcji zarządzania bazami danych.

    1. Wybierz klienta z listy (np. SolutionsInc).
    2. Wprowadź nazwę użytkownika bazy danych – ISPConfig automatycznie sugeruje prefiks powiązany z klientem (np. c2_). Dzięki temu każdy użytkownik jest unikalny i łatwy do zidentyfikowania.
    3. Ustaw hasło do bazy danych. Skorzystaj z przycisku Generate Password i wybierz długie, losowe hasło (najlepiej przechowywane w menedżerze haseł). Silne hasło to podstawa bezpieczeństwa, nawet jeśli nie musisz go zapamiętywać.
    4. Powtórz hasło w polu „Repeat Password”.
    5. Kliknij Save, aby utworzyć użytkownika.

    Tworzenie oddzielnych użytkowników do każdej strony to ważny krok – jeśli dojdzie do wycieku hasła, atak ogranicza się tylko do jednej bazy. Dzięki temu nawet poważny błąd w aplikacji nie daje napastnikowi dostępu do innych danych na serwerze.

    Opis opcji zakładki „Domain” przy tworzeniu strony WWW w ISPConfig

    • Server: Serwer WWW, na którym będzie hostowana domena. Wybierz odpowiedni serwer z listy dostępnych.
    • Client: Klient, do którego przypisana będzie ta domena/strona.
    • IPv4-Address: Adres IPv4 przypisany do tej domeny (domyślnie *, czyli dowolny dostępny IP na serwerze).
    • IPv6-Address: Adres IPv6, jeśli jest używany (opcjonalnie).
    • Domain: Nazwa domeny, którą chcesz dodać (np. solutionsinc.co.uk).
    • Harddisk Quota: Limit przestrzeni dyskowej dla tej konkretnej strony (w MB). -1 oznacza brak limitu.
    • Traffic Quota: Limit transferu danych dla tej strony (w MB miesięcznie). -1 oznacza brak limitu.
    • CGI: Czy zezwolić na uruchamianie skryptów CGI na stronie (zazwyczaj wyłączone dla bezpieczeństwa).
    • SSI: Czy włączyć obsługę Server Side Includes.
    • Own Error-Documents: Pozwala na ustawianie własnych stron błędów (np. 404.html).
    • Auto-Subdomain: Domyślna subdomena, która zostanie automatycznie dodana (najczęściej www).
    • SSL: Zaznacz jeśli posiadasz własny certyfikat SSL i chcesz ręcznie wgrać certyfikaty do panelu.
    • Let’s Encrypt SSL: Wybierz tę opcję, jeśli chcesz, aby ISPConfig automatycznie wygenerował darmowy certyfikat SSL Let’s Encrypt dla tej domeny (nie musisz posiadać własnych certyfikatów).
    • PHP: Wybierz tryb działania PHP dla strony. Jeśli zamierzasz używać Nginx jako Reverse Proxy dla OpenLiteSpeed, wybierz koniecznie PHP-FPM oraz dokładnie tę wersję PHP, na której działa OLS. Pozostałe tryby (np. Disabled) nie będą poprawnie współpracować z takim rozwiązaniem.
    • Web server config: Dodatkowe opcje konfiguracyjne serwera WWW (zaawansowane, można zostawić domyślnie).
    • Active: Czy strona ma być aktywna (zaznaczona domyślnie – strona po zapisaniu będzie działać).

    Opis opcji zakładki „Redirect” w ISPConfig (Reverse Proxy)

    • Redirect Type: Określa rodzaj przekierowania dla danej domeny. Jeśli chcesz skonfigurować Nginx jako reverse proxy dla OpenLiteSpeed, koniecznie ustaw tutaj opcję proxy. Dzięki temu ruch HTTP/S będzie przekazywany do właściwego backendu (OLS).
    • Redirect Path: Adres docelowy (URL/backend), do którego ma być przekazywany ruch. W przypadku reverse proxy wpisz tutaj adres backendu (np. http://127.0.0.1:8088/ – pamiętaj, żeby nie używać portu 8080, ponieważ jest on zajęty przez ISPConfig!).
    • SEO Redirect: Opcjonalne przekierowania SEO (np. 301, 302, non-www→www). Najczęściej pozostawiamy jako „No redirect”, chyba że masz specyficzne wymagania SEO.
    • Rewrite Rules: Pole na własne reguły rewrite, zgodne z modułem nginx_http_rewrite_module. Możesz tu dodawać dodatkowe instrukcje modyfikujące ruch HTTP, np. break, if, return, rewrite, set (pełna lista na stronie nginx).
    • Rewrite HTTP to HTTPS: Po zaznaczeniu automatycznie przekierowuje cały ruch z HTTP na HTTPS. Zalecane przy stronach wymagających SSL.

    Uwaga: Pamiętaj, że w przypadku konfiguracji reverse proxy kluczowe jest ustawienie Redirect Type na proxy i prawidłowe podanie backendu w Redirect Path.

    Zakładka SSL w ISPConfig – co tutaj ustawić?

    • Jeśli w zakładce Domain zaznaczyłeś opcję Let’s Encrypt SSL, nie musisz tutaj nic wypełniać. Certyfikat zostanie wygenerowany automatycznie i pola pozostaną puste.
    • Jeśli korzystasz z własnych certyfikatów SSL, wklej je odpowiednio do poniższych pól:
      • SSL Key: Klucz prywatny (private key)
      • SSL Request: Żądanie podpisania certyfikatu (CSR) – opcjonalne, jeśli go używasz
      • SSL Certificate: Właściwy certyfikat SSL (publiczny)
      • SSL Bundle: Certyfikaty pośrednie/CA Bundle (jeśli wymaga tego Twój dostawca SSL)
    • SSL Domain: Domena, dla której generowany/instalowany jest certyfikat (wypełnia się automatycznie)
    • SSL Action: Domyślnie „Save certificate” – zachowuje wprowadzone dane

    Wskazówka: Jeśli zmieniasz typ certyfikatu (np. przechodzisz z własnego certyfikatu na Let’s Encrypt lub odwrotnie), pamiętaj, by odznaczyć zbędne opcje w zakładce Domain i zapisać zmiany.

    Zakładka Statistics w ISPConfig – własne statystyki dla Twojej strony

    Jeśli chcesz mieć niezależny system statystyk strony (poza tym, co oferuje np. WordPress czy Google Analytics), ta zakładka jest dla Ciebie. Tutaj możesz skonfigurować, jaki program będzie generował i prezentował szczegółowe statystyki ruchu na Twojej stronie. Oto krótkie opisy dostępnych opcji:

    • AWStats: Najpopularniejszy program do generowania szczegółowych statystyk www. Analizuje logi serwera i prezentuje czytelne wykresy, podsumowania ruchu, popularność stron, źródła odwiedzin, wyszukiwane frazy i inne dane. Interfejs webowy, obsługa wielu języków.
    • GoAccess: Nowoczesny analizator logów działający w czasie rzeczywistym, także z interfejsem webowym. Bardzo szybki, daje czytelne podsumowania najważniejszych danych (unikalni użytkownicy, najpopularniejsze strony, kody błędów itp.). Może być bardziej „techniczny” od AWStats.
    • Webalizer: Starszy, ale bardzo lekki i szybki program do analizy logów. Prezentuje podstawowe statystyki ruchu, wykresy godzinowe/dniowe, listę najczęściej odwiedzanych stron, ale z mniejszą ilością szczegółów niż AWStats.
    • None: Brak statystyk. Przydatne jeśli korzystasz wyłącznie z zewnętrznych rozwiązań lub chcesz ograniczyć zużycie zasobów.

    Wskazówka: Pamiętaj, by ustawić hasło do panelu statystyk, jeśli chcesz, by dostęp był chroniony!

    Zakładka Backup – Twoja sieć bezpieczeństwa (i spokój ducha)

    W tej zakładce możesz ustawić automatyczne kopie zapasowe strony i bazy danych lub wykonać backup ręcznie, gdy tylko masz na to ochotę (albo poczujesz przypływ zdrowego rozsądku).

    Dostępne opcje:

    • Backup interval: Jak często wykonywać kopie (np. codziennie, co tydzień, co miesiąc, lub wcale – nie polecam tej ostatniej opcji!).
    • Number of backup copies: Ile ostatnich backupów przechowywać na serwerze.
    • Excluded Directories: Katalogi, które mają być pomijane w backupie (np. cache lub katalogi z danymi tymczasowymi).
    • Compression options: Możesz skompresować swoje backupy, żeby nie zajmowały pół serwera – polecam!
    • Encryption options: Możesz zaszyfrować kopie zapasowe – dzięki temu nawet jeśli backup trafi w niepowołane ręce, Twoje dane pozostaną bezpieczne.

    Ręczny backup: Dwa magiczne przyciski – zrób backup bazy lub plików jednym kliknięciem.

    Anegdota: Są dwa typy ludzi: ci, którzy robią backupy, i ci, którzy dopiero będą je robić po pierwszym poważnym krachu. Szkoda, że ta lekcja zawsze przychodzi za późno!

    Zakładka Options – kluczowa dla Reverse Proxy (Nginx → OLS)

    Jeśli używasz Nginx jako Reverse Proxy dla OpenLiteSpeed (lub innego backendu), koniecznie skonfiguruj odpowiednie nagłówki w polu Proxy Directives. Wklej tam poniższe linie:

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    Dlaczego to ważne?

    • proxy_set_header Host $host;
      Przekazuje oryginalną nazwę hosta (domeny), pod jaką użytkownik wszedł na stronę. Dzięki temu backend (OLS) wie, dla jakiej domeny przetwarza żądanie i poprawnie rozpoznaje wirtualne hosty.
    • proxy_set_header X-Real-IP $remote_addr;
      Przekazuje prawdziwy adres IP klienta, a nie adres serwera proxy. Dzięki temu w logach, statystykach oraz przy mechanizmach bezpieczeństwa widoczny jest rzeczywisty użytkownik.
    • proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      Dodaje oryginalny adres IP klienta do specjalnego nagłówka X-Forwarded-For. Przydatne jeśli ruch przechodzi przez kilka proxy – można odtworzyć całą „trasę” zapytania.
    • proxy_set_header X-Forwarded-Proto $scheme;
      Informuje backend, czy oryginalne żądanie było po HTTPS czy HTTP. Dzięki temu aplikacje mogą generować poprawne linki zwrotne (np. z https:// zamiast http://).

    Podsumowanie:
    Bez tych nagłówków backend (OLS) nie będzie wiedział, kto naprawdę odwiedza Twoją stronę, pod jaką domeną, i czy używa HTTPS. Skutki mogą być poważne: błędne logi, niepoprawne generowanie linków, problemy z SSL, a nawet luki w bezpieczeństwie.

    Ostatni krok: konfiguracja OpenLiteSpeed pod Reverse Proxy

    Gdy wszystkie ustawienia po stronie ISPConfig są gotowe, przechodzimy do panelu OpenLiteSpeed, który znajdziesz pod adresem http://IP_SERWERA:7080.

    Co robimy:

    1. Przechodzimy do sekcji Listeners.
    2. Usuwamy wszystkie listenery poza Listener Default na porcie 8088 (to na nim OLS będzie „słuchał” żądań od Nginx Reverse Proxy).
    3. Klikamy w ikonkę lupki przy naszym Listenerze i przechodzimy do sekcji Virtual Host Mappings.
    4. Dodajemy mapping dla naszej strony, np. solutionsinc.co.uk (lub innej, którą podajesz w ISPConfig).

    Dlaczego tak?

    • Zarządzaniem SSL (wystawianiem, odnawianiem, przekierowaniami itp.) zajmuje się teraz Nginx wraz z ISPConfig, więc nie trzeba już konfigurować SSL w OLS.
    • Pozostałe zakładki listenery mogą zostać bez zmian – cała magia dzieje się teraz po stronie reverse proxy.

    Podsumowanie:
    Od tej pory Nginx przejmuje na siebie cały ruch (w tym HTTPS), a do OLS przekazuje już czyste żądania na lokalnym porcie (8088). To idealne połączenie wydajności, wygody i bezpieczeństwa.

    Virtual Hosts > Basic w OpenLiteSpeed – jak poprawnie uzupełnić?

    1. Virtual Host Name: Nazwa hosta wirtualnego – wpisz nazwę domeny, np. solutionsinc.co.uk.
    2. Virtual Host Root: Wpisz tu dokładnie taki adres, jak w polu Document Root w ISPConfig (np. /var/www/clients/client1/web1/), pamiętając o końcowym slashem /. Dzięki temu OLS będzie serwował pliki z właściwej lokalizacji.
    3. Config File: Wpisz bashKopiujEdytuj$SERVER_ROOT/conf/vhosts/$VH_NAME/vhost.conf Podczas próby zapisu OLS zgłosi, że taki plik nie istnieje – kliknij wtedy w link pod polem, aby ten plik utworzyć automatycznie. Po tej operacji będzie można zapisać ustawienia bez błędów.
    4. suEXEC User i suEXEC Group:
      Wybierz tutaj dokładnie tego użytkownika i grupę, jakie ISPConfig utworzył dla Twojej domeny. Możesz to sprawdzić w ISPConfig w zakładce Sites > Website > Options.
      To bardzo ważne – pozwala OLS uruchamiać skrypty PHP z prawidłowymi uprawnieniami, poprawia bezpieczeństwo i chroni przed dostępem do plików innych użytkowników.
    5. External App Set UID Mode: Wybierz opcję DocRoot UID. Dzięki temu zewnętrzne aplikacje (np. PHP) będą uruchamiane jako użytkownik powiązany z katalogiem domeny.
    6. W sekcji Security znajdują się opcje kluczowe dla bezpieczeństwa i poprawnego działania hosta wirtualnego. Każdą z tych opcji ustaw na Yes:
      • Follow Symbolic Link:
        Pozwala OLS na podążanie za linkami symbolicznymi w katalogu strony. Jest to wymagane np. przez niektóre aplikacje, frameworki lub podczas aktualizacji oprogramowania.
      • Enable Scripts/ExtApps:
        Umożliwia uruchamianie skryptów (np. PHP) oraz zewnętrznych aplikacji. Bez tej opcji Twoja strona nie będzie mogła przetwarzać PHP ani korzystać z dynamicznych funkcji.
      • Restrained:
        Włącza „tryb ograniczony” – zwiększa bezpieczeństwo, ograniczając możliwości wywoływania pewnych poleceń systemowych przez hosta wirtualnego.
      • Pamiętaj:
      • Ustawienie każdej z tych opcji na Yes jest niezbędne do poprawnej i bezpiecznej pracy Twojej strony przy współpracy z ISPConfig i reverse proxy.

    Zakładka General – OpenLiteSpeed Virtual Host

    Najważniejsze opcje:

    • Document Root:
      Katalog, w którym znajduje się Twoja strona. Tu wklejasz ścieżkę z ISPConfig (Sites → Website → Document Root) i na końcu dodajesz katalog strony, zazwyczaj /web/, czyli np. /var/www/clients/client1/web1/web/. Zawsze sprawdzaj tę ścieżkę w ISPConfig, bo może się różnić!

    Pozostałe opcje:

    • Domain Name:
      (Opcjonalnie) Możesz wpisać główną domenę tego vhosta.
    • Domain Aliases:
      Inne domeny, które mają wskazywać na tego vhosta (np. wersje z www i bez www).
    • Administrator Email:
      E-mail administratora tej strony (przydatny do powiadomień o błędach).
    • Enable GZIP Compression:
      Włącza kompresję GZIP na poziomie serwera – przyspiesza ładowanie strony.
    • Enable Brotli Compression:
      Alternatywna metoda kompresji (jeszcze wydajniejsza niż GZIP).
    • Enable GeoLocation Lookup:
      Pozwala serwerowi sprawdzać, z jakiego kraju pochodzi użytkownik (np. do statystyk).
    • cgroups:
      Opcjonalne ograniczenia zasobów dla vhosta – jeśli chcesz limity CPU/RAM.

    Sekcja Index Files:

    • Use Server Index Files:
      Powinno być ustawione na „No”, aby OLS używał plików indeksowych zdefiniowanych poniżej, a nie globalnych z serwera.
    • Index Files:
      Lista nazw plików, które mają być traktowane jako plik startowy strony (np. index.php, index.html). Jeśli oba istnieją, pierwszy z listy zostanie użyty.
    • Auto Index:
      Pozwala na automatyczne generowanie indeksu katalogu, jeśli nie ma pliku index (zalecane „Not Set”/wyłączone ze względów bezpieczeństwa).
    • Auto Index URI:
      Pozwala wskazać adres, pod którym wyświetli się automatyczny indeks katalogu.

    Customized Error Pages:

    • Tutaj możesz podać własne strony błędów (np. 404, 500).

    Expires Settings:

    • Enable Expires, Expires Default, Expires By Type:
      Kontrolują cache’owanie plików przez przeglądarki (możesz ustawić, jak długo przeglądarka ma trzymać pliki statyczne). Najczęściej zostawiamy domyślnie i konfigurujemy cache przez .htaccess lub w ustawieniach aplikacji.

    File Upload:

    • Temporary File Path, Temporary File Permission, Pass Upload Data by File Path:
      Zaawansowane ustawienia dot. przesyłania plików – gdzie zapisywane są pliki tymczasowe, jakie mają uprawnienia, i czy dane przesyłane są przez ścieżkę pliku (raczej zostaw domyślnie).

    php.ini Override:

    • Pozwala podać własne ustawienia PHP tylko dla tego vhosta – jeśli nie musisz zmieniać limitów (np. upload_max_filesize), zostaw puste.

    Zakładka Log – niezależne logi dla każdej witryny

    Dlaczego warto ustawić osobne logi?

    • Izolacja: Osobne logi dla każdej strony ułatwiają zarządzanie, rozwiązywanie problemów oraz audyt – nie musisz szukać swojej witryny w jednym wielkim pliku wspólnym dla całego serwera.
    • Bezpieczeństwo: Jeżeli masz kilka klientów lub projektów, osobne logi ograniczają dostęp tylko do niezbędnych danych i pomagają zachować porządek.
    • Łatwiejsza analiza: Szybciej wykryjesz, co dzieje się na danej stronie, np. ataki, błędy, czy nieprawidłowe żądania.

    Virtual Host Log (log błędów)

    • Use Server’s Log:
      Jeśli ustawisz na „No”, logi błędów będą prowadzone oddzielnie dla tej strony. Zalecane, bo błędy konkretnej witryny nie zginą wśród błędów innych projektów.
    • File Name:
      Ścieżka do pliku logu błędów tej strony (np. /var/www/clients/client1/solutionsinc.co.uk/log/error.log). Umieszczenie w katalogu domeny ułatwia zarządzanie backupem i dostępem.
    • Log Level:
      Poziom szczegółowości logów (DEBUG, INFO, NOTICE, WARN, ERROR, CRIT).
      DEBUG to najwięcej szczegółów – przydatne przy debugowaniu, ale do codziennego działania wystarczy WARN lub ERROR.
    • Rolling Size (bytes):
      Maksymalny rozmiar pliku logów, po przekroczeniu którego utworzony zostanie nowy plik (np. 10M). Chroni dysk przed zapchaniem.
    • Keep Days:
      Ile dni przechowywać stare logi – przydatne do audytu lub cofania się do przeszłych incydentów.
    • Compress Archive:
      Czy archiwizować i kompresować stare logi. Zalecane przy dużej liczbie logów, pozwala oszczędzić miejsce na dysku.

    Access Log (log dostępu)

    • Log Control:
      Wybierz „Own Log File”, by każdy vhost miał własny plik logu dostępu. Dzięki temu łatwiej analizować ruch na konkretnych stronach.
    • File Name:
      Ścieżka do logu dostępu (np. /var/www/clients/client1/solutionsinc.co.uk/log/access_log).
    • Piped Logger:
      Zaawansowana opcja – logi mogą być przetwarzane „w locie” przez zewnętrzne programy. Zostaw puste jeśli nie używasz.
    • Log Format:
      Format pojedynczego wpisu logu – domyślna opcja sprawdza się w większości przypadków, ale możesz dostosować pod potrzeby analizy.
    • Log Headers:
      Zaznacz „Referrer”, „UserAgent”, „Host” – dzięki temu logi będą zawierały kluczowe informacje o odwiedzających, źródłach wejść i typach urządzeń.
    • Rolling Size (bytes):
      Jak duży może być pojedynczy plik logu, zanim zacznie się tworzyć kolejny (np. 50M).
    • Keep Days:
      Ile dni przechowywać logi dostępu (np. 365 – pełen rok historii).
    • Compress Archive:
      Warto ustawić na „Yes”, by stare logi były automatycznie kompresowane.
    • Bytes log:
      Opcjonalnie: plik, w którym zapisywana jest statystyka przesłanych bajtów (raczej dla zaawansowanych analiz).

    Zalecane ustawienia:

    • Dla produkcji ustaw Log Level na WARN lub ERROR, a na czas uruchamiania i testów – DEBUG.
    • Zawsze kompresuj archiwalne logi.
    • Przechowuj logi co najmniej 30 dni – najlepiej 90 lub więcej, jeśli masz miejsce.
    • Dla Access Log: zawsze osobny plik per domena, zawsze z Referrer, UserAgent i Host.

    Zakładka Security – opis wszystkich opcji

    Uwaga:
    Nie musisz konfigurować tych ustawień, aby uruchomić stronę przez Nginx jako Reverse Proxy!
    Jeśli nie masz doświadczenia z zaawansowaną ochroną i kontenerami – najlepiej najpierw uruchomić stronę, upewnić się że wszystko działa, a dopiero potem wracać tutaj i testować poszczególne opcje.


    Sekcja: LS reCAPTCHA

    • Enable reCAPTCHA, Site Key, Secret Key, reCAPTCHA Type, Max Tries, Concurrent Request Limit
      Pozwala aktywować mechanizmy reCAPTCHA (ochrona przed botami i atakami brute force na poziomie serwera). Trzeba podać klucze z Google oraz ustawić limity prób.
      Praktyka: Tylko dla osób, które dokładnie wiedzą jak to działa – błędna konfiguracja może zablokować ruch na stronie.

    Sekcja: Containers

    • Bubblewrap Container
      Pozwala uruchomić vhost w odizolowanym kontenerze z użyciem narzędzia Bubblewrap (większe bezpieczeństwo – aplikacje są „odcięte” od systemu).
      Zaawansowana funkcja – nie zalecane dla początkujących.
    • Namespace Container, Additional Namespace Template File
      Umożliwiają izolację hosta w osobnej przestrzeni nazw (namespace), dodatkowo zwiększając bezpieczeństwo, ale wymagają wiedzy o konteneryzacji w Linuksie.

    Sekcja: Access Control

    • Allowed List
      Lista adresów IP, które mają mieć dostęp do tej strony.
    • Denied List
      Lista adresów IP, które mają być zablokowane. Uwaga: Jeśli źle to skonfigurujesz, możesz nieświadomie zablokować dostęp do własnej strony!

    Sekcja: Realm List

    • Tutaj możesz skonfigurować „realm” – czyli strefy z własnym uwierzytelnianiem (np. ochrona katalogu hasłem na poziomie serwera).

    Podsumowanie praktyczne

    • Dla działania strony przez Nginx jako Reverse Proxy, NIE musisz nic tu ustawiać.
    • Te opcje to narzędzia dla zaawansowanych administratorów – dla większości użytkowników najlepiej zostawić je domyślne, dopóki strona nie działa poprawnie.
    • Zalecenie: Najpierw uruchom stronę, sprawdź poprawność, potem (opcjonalnie) wracaj do tej zakładki, jeśli chcesz podnieść poziom bezpieczeństwa.

    Zakładka External App – opis i zalecenia

    Ta zakładka odpowiada za powiązanie serwera www z interpreterem PHP, dzięki czemu twoje aplikacje PHP działają poprawnie.

    Najważniejsze pola:

    • Name:
      Nazwa aplikacji zewnętrznej, np. solutionsinc.co.uk. Może być dowolna, ale najlepiej ustawić nazwę zgodną z domeną dla porządku.
    • Address:
      MUST HAVE!
      Gniazdo komunikacji z interpreterem PHP, np. UDS:///tmp/lshttpd/solutionsinc.co.uk.sock
      UDS (Unix Domain Socket) zawsze z dużej litery! Umożliwia szybszą i bezpieczniejszą komunikację niż połączenia sieciowe.
    • Notes:
      Dowolny opis, jeśli potrzebujesz (opcjonalne).
    • Max Connections:
      Maksymalna liczba równoczesnych połączeń do PHP. Zalecane 50, chyba że twoja strona obsługuje bardzo duży ruch – wtedy możesz zwiększyć.
    • Environment:
      Dodatkowe zmienne środowiskowe. Przykład: LSAPI_CHILDREN=50 – ustala liczbę procesów potomnych PHP dla tej aplikacji.
    • Initial Request Timeout (secs):
      Czas oczekiwania na odpowiedź przy pierwszym żądaniu (np. 600 sekund). Dłuższy czas jest bezpieczny przy wolniejszych serwerach lub długich skryptach.
    • Retry Timeout (secs):
      Ile sekund serwer ma czekać i ponawiać próbę w przypadku błędu połączenia z PHP.
    • Persistent Connection:
      Najlepiej zostawić „Yes” – pozwala na utrzymywanie otwartych połączeń i przyspiesza obsługę wielu żądań.
    • Connection Keep-Alive Timeout:
      Jak długo (w sekundach) połączenie z PHP pozostaje otwarte po obsłużeniu żądania (domyślnie 1).
    • Response Buffering:
      „No” oznacza natychmiastowe przekazywanie odpowiedzi do klienta. Zalecane dla stron dynamicznych.
    • Start By Server:
      „Yes (Through CGI Daemon)” – serwer sam uruchamia proces PHP, co jest bezpieczniejsze i wygodniejsze.
    • Command:
      KLUCZOWE!
      Ścieżka do interpretera PHP, np. /usr/local/lsws/lsphp83/bin/lsphp
      Upewnij się, że ten plik istnieje i jest to właściwa wersja PHP, której używasz. Jak sprawdzić:
      W konsoli serwera wpisz: bashKopiujEdytujls -l /usr/local/lsws/lsphp83/bin/lsphp Jeśli plik istnieje – ścieżka jest OK. Jeśli nie – sprawdź czy masz zainstalowaną wersję PHP 8.3 przez LiteSpeed (np. przez menadżer LiteSpeed lub polecenie lsphp).
    • Back Log:
      Maksymalna liczba żądań oczekujących na połączenie z PHP (zalecane 100).
    • Instances:
      Liczba instancji aplikacji (w praktyce: ilość niezależnych procesów). Zwykle 1 – jeśli nie masz bardzo wymagającej aplikacji.
    • Run As User / Run As Group:
      Muszą odpowiadać użytkownikowi i grupie zdefiniowanym w ISPConfig dla tej strony (np. web1/client1). Dzięki temu każdy vhost działa z uprawnieniami przypisanymi tylko do własnych plików, co znacznie podnosi bezpieczeństwo.
    • umask:
      Maska uprawnień dla tworzonych plików – najczęściej zostawiamy puste.
    • Run On Start Up, Max Idle Time, Priority:
      Zaawansowane opcje – zwykle nie wymagają zmiany.
    • Memory Soft Limit / Hard Limit:
      Miękki i twardy limit RAM dla procesu PHP (w bajtach).
      Zalecane: 2047M (2GB) – dostosuj do mocy serwera i potrzeb aplikacji.
    • Process Soft Limit / Hard Limit:
      Ograniczenie liczby procesów (soft/hard).
      Soft – ostrzeżenie, hard – blokada. Przykład: Soft 400, Hard 500.

    Zakładka Script Handler – do czego służy?

    Ta sekcja decyduje, jakie aplikacje mają obsługiwać określone typy plików skryptowych (np. PHP) na poziomie konkretnego Virtual Host. Bez poprawnego handlera, PHP nie zadziała!

    Kluczowe opcje:

    • Suffixes
      Tu wpisujesz rozszerzenia plików, które mają być obsługiwane przez danego handlera.
      W typowej konfiguracji wpisujesz po prostu: nginxKopiujEdytujphp Dzięki temu wszystkie pliki z rozszerzeniem .php będą analizowane przez PHP.

    Suffix – co to jest i jak go ustawić?

    Suffix określa, jakie rozszerzenia plików skryptowych będą obsługiwane przez dany Script Handler. Każdy suffix musi być unikalny w konfiguracji.

    Składnia:

    • Lista rozszerzeń oddzielona przecinkami, bez kropki („.” jest niedozwolona).
    • Przykład: KopiujEdytujphp,php83

    Ważne uwagi (na podstawie dokumentacji OLS):

    • Serwer automatycznie doda specjalny typ MIME (application/x-httpd-[suffix]) dla pierwszego sufiksu w tej liście.
      • Przykład: dla php83, zostanie dodany typ MIME application/x-httpd-php83.
    • Jeśli chcesz używać dodatkowych sufiksów (np. php53,php74), po pierwszym musisz dodać odpowiadające typy MIME ręcznie w ustawieniach MIME.
    • Choć pole „Suffix” wyświetla listę rozszerzeń, w praktyce handler korzysta z typów MIME, nie z samych sufiksów, aby zdecydować, które pliki obsłużyć.
    • Podawaj tylko te rozszerzenia, których rzeczywiście używasz – nie wpisuj niepotrzebnych lub nieużywanych, by nie zwiększać ryzyka błędów lub ataków.

    Przykład poprawnej konfiguracji:

    Jeśli chcesz obsługiwać tylko pliki .php:

    php

    Jeśli chcesz obsługiwać również .php83:

    php,php83

    Pamiętaj, aby dla dodatkowych sufiksów dodać odpowiedni typ MIME w ustawieniach serwera!

    • Handler Type
      Typ obsługiwacza skryptów.
      LiteSpeed SAPI to natywny, najwydajniejszy sposób obsługi PHP w OpenLiteSpeed – pozwala na bezpośrednią i szybką komunikację z interpreterem PHP, korzystając z ustawień z zakładki External App.
    • Handler Name
      Wybierasz tu powiązaną aplikację zdefiniowaną w zakładce External App.
      Jeśli masz kilku Virtual Hostów, możesz mieć kilka różnych wersji PHP lub różnych konfiguracji.
      Uwaga:
      Warto, żeby tu było [VHost Level]: solutionsinc.co.uk – czyli handler, który został utworzony dla tej konkretnej strony.

    Dlaczego to ważne?

    • Bez poprawnego powiązania PHP z właściwym handlerem, serwer nie będzie wiedział, jak uruchamiać twoje pliki .php (może pobierać je jako pliki tekstowe zamiast wykonywać kod!).
    • Wybór LiteSpeed SAPI gwarantuje najlepszą wydajność, bezpieczeństwo i obsługę nowoczesnych funkcji PHP.
    • Jeśli masz kilka stron i każda ma inne wymagania (np. jedna działa na PHP 8.3, druga na PHP 8.1), możesz tu przypisać do każdej Virtual Host odpowiednią wersję interpreter PHP.

    Zakładka Rewrite – do czego służy?

    Zakładka Rewrite pozwala na zarządzanie regułami przepisywania URL-i (tzw. „mod_rewrite”), dzięki którym możesz:

    • Tworzyć przyjazne adresy URL (np. w WordPress, Prestashop, Laravel).
    • Wymuszać przekierowania (np. http→https, non-www→www).
    • Realizować niestandardowe logiki przepisywania (np. maskowanie folderów, obsługa aliasów domen).

    Opis pól

    Rewrite Control

    • Enable Rewrite
      Włącza obsługę mechanizmu przepisywania (mod_rewrite) dla tego Virtual Host.
      Ważne: Bez tego żadne reguły z .htaccess ani wpisy w „Rewrite Rules” nie będą działać!
    • Auto Load from .htaccess
      Pozwala automatycznie ładować reguły rewrite z plików .htaccess znajdujących się w katalogach twojej strony.
      Ważne:
      • Dla WordPressa i większości popularnych CMS-ów koniecznie musi być „Yes”.
      • Jeśli chcesz mieć większą kontrolę nad wydajnością, możesz reguły rewrite wpisać bezpośrednio w „Rewrite Rules”, wtedy to pole można wyłączyć.
    • Log Level
      • Określa poziom szczegółowości logów debugowania mechanizmu rewrite.
      • Zakres wartości: 0–9
        • 0 – wyłącza logowanie rewrite (brak logów).
        • 9 – najbardziej szczegółowe logi debugowania.
      • Im wyższa liczba, tym więcej szczegółowych informacji o działaniach reguł rewrite pojawi się w logach serwera.
      • Aby opcja działała, logi błędów serwera i/lub Virtual Host muszą mieć poziom co najmniej INFO.
      • Przydatne przy testowaniu i rozwiązywaniu problemów z regułami rewrite.
      • Syntax: Liczba całkowita z zakresu 0–9.

    Rewrite Map
    Możliwość zdefiniowania map przepisywania (zaawansowane – np. do dynamicznych przekierowań na podstawie wzorców lub plików).

    • Dla większości użytkowników niewymagane.

    Rewrite Rules
    Miejsce na ręczne wpisanie reguł mod_rewrite (w stylu Apache).

    Przykład:

    RewriteEngine On

    RewriteCond %{HTTPS} !=on

    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    Reguły tutaj mają wyższy priorytet niż te z .htaccess.


    Dlaczego to ważne?

    • Bez rewrite wiele aplikacji nie będzie działać poprawnie (brak przyjaznych linków, błędy 404).
    • Automatyczne ładowanie z .htaccess pozwala korzystać z gotowych .htaccess od popularnych CMS-ów.
    • Ręczne reguły przydają się, gdy potrzebujesz pełnej kontroli lub lepszej wydajności.

    Zakładka Context – wszystkie pola

    1. URI

    • Opis: Ścieżka (URI) katalogu lub podkatalogu, dla którego tworzysz ten kontekst.
    • Kluczowe! Musi dokładnie odpowiadać folderowi, gdzie znajduje się Twoja strona (np. /web/ dla katalogu /var/www/clients/client1/web1/web/).
    • Uwaga: Jeśli URI kończy się na /, wszystkie podkatalogi są również objęte tym kontekstem. Jeśli twoja strona jest w katalogu głównym, wpisz po prostu /.

    2. LSAPI App

    • Opis: Wybierasz aplikację LiteSpeed SAPI (np. PHP) powiązaną z tym kontekstem. Lista rozwijana zawiera aplikacje zdefiniowane w External App.
    • Dlaczego ważne? To łączy obsługę PHP (lub innego języka) z Twoją stroną. Bez tego, PHP nie będzie działać w tym katalogu!

    3. Notes

    • Opis: Pole informacyjne, możesz tu wpisać własne notatki.
    • Wskazówka: Użyteczne przy większych instalacjach lub testach, ale pole nie jest obowiązkowe.

    4. Header Operations

    • Opis: Dodatkowe operacje na nagłówkach odpowiedzi HTTP (np. ustawianie, dodawanie, kasowanie nagłówków).
    • Składnia: Zbliżona do Apache mod_headers.
    • Przykład: pgsqlKopiujEdytujset Cache-control no-cache append Cache-control no-store
    • Wskazówka: Przydatne, gdy chcesz sterować cache’owaniem lub bezpieczeństwem na poziomie katalogu.

    5. Realm / Authentication Name / Require (Authorized Users/Groups) / Access Allowed / Access Denied / Authorizer

    • Opis: Opcje autoryzacji dostępu do danego katalogu (możesz tu ustawić prostą ochronę hasłem, dostęp tylko dla wybranych grup/użytkowników).
    • Wskazówka: Domyślnie zostawiasz puste. Stosujesz, jeśli chcesz ograniczyć dostęp do panelu admina, katalogu testowego itp.

    6. Add Default Charset

    • Opis: Określa, czy domyślny zestaw znaków ma być dodany do odpowiedzi HTTP.
    • Domyślnie: Off
    • Ustaw, jeśli: Masz stronę o nietypowym kodowaniu lub chcesz wymusić np. UTF-8.

    7. Customized Default Charset

    • Opis: Pozwala wskazać własny domyślny zestaw znaków (np. UTF-8, ISO-8859-2).
    • Ustaw, jeśli: Potrzebujesz specyficznego kodowania znaków.

    8. Enable GeoLocation Lookup

    • Opis: Pozwala włączyć sprawdzanie lokalizacji geograficznej użytkowników na podstawie IP.
    • Wskazówka: Zostaw domyślnie wyłączone, chyba że tworzysz stronę z personalizacją wg kraju.

    Dlaczego ta zakładka jest ważna?

    • Dzięki Context możesz precyzyjnie ustawić, jak serwer ma obsługiwać wybrane katalogi/podkatalogi, np. wybrać inną wersję PHP dla /admin/, zabezpieczyć panel logowania, zmienić nagłówki bezpieczeństwa tylko w jednym folderze.
    • URI to absolutna podstawa – błędne ustawienie tej ścieżki sprawi, że ustawienia nie zadziałają!
    • Dzięki temu masz elastyczność niedostępną w prostych hostingach.

    Podsumowanie

    Po wykonaniu wszystkich powyższych kroków – od konfiguracji ISPConfig, przez ustawienie Nginx jako reverse proxy, po precyzyjne dobranie opcji w OpenLiteSpeed – Twoja strona WordPress lub dowolna inna aplikacja powinna działać jak złoto. Oczywiście pod warunkiem, że nie zapomniałeś o poprawnych rekordach DNS (np. w CloudFlare) – bez nich nawet najpiękniej skonfigurowany serwer będzie świecił pustkami jak lodówka po sesji!

    Jeśli wszystko śmiga, gratulacje – możesz teraz spokojnie napić się herbaty, bo Twój serwer właśnie wszedł na wyższy poziom! Jeśli coś nie działa… cóż, sprawdź jeszcze raz DNS, logi oraz to, czy przypadkiem nie wpadłeś na pomysł zrobienia wszystkiego o 3 w nocy. Powodzenia!

  • CyberPanel i brak  miejsca na dysku. XCP-ng, LVM zwiększenie rozmiaru dysku.

    CyberPanel i brak miejsca na dysku. XCP-ng, LVM zwiększenie rozmiaru dysku.

    Czasami zdarza się, że przydzielona wcześniej przestrzeń dyskowa na nasze strony internetowe na naszym serwerze okazuje się w końcu zbyt mała. Jeśli nasz system operacyjny zainstalowany jest na LVM (Logical Volume Manager), to stosunkowo łatwo możemy rozszerzyć rozmiar dysku do potrzebnych nam rozmiarów. W niniejszym artykule pokażę jak to zrobić.

    Nasze środowisko robocze:

    • Maszyna wirtualna pracująca na XCP-ng
    • System operacyjny Ubuntu 20.04 Server Edition
    • Serwer www OpenLiteSpeed
    • Panel do zarządzania CyberPanel
    • Przestrzeń dyskowa oparta na LVM (Logical Volume Manager)

    Przydzielone jakiś czas temu 64GB na strony internetowe na naszym serwerze po pewnym czasie okazało się zbyt mało. Po przekroczeniu 80% zajętości dysku serwer zwolnił i otwieranie stron przestało być komfortowe.

    CyberPanel Low disk space

    Co to jest LVM (Logical Volume Manager)

    LVM to niezwykle elastyczne narzędzie pozwalające wygodnie zarządzać przestrzenią dyskową na naszych serwerach. LVM może znajdować na różnych dyskach twardych i różnych partycjach o różnej pojemności, a wielkość powierzchni dyskowej możemy zmieniać w locie nawet bez konieczności restartowania komputera lub maszyny wirtualnej.

    Sprawdzenie zajętości dysku twardego

    By sprawdzić zajętość naszego dysku twardego, skorzystaj z komendy df z parametrem -h, który pokazuje rozmiar dysków w formie przyjaznej człowiekowi.

    W przypadku naszego systemu rozmiar dysku LVM (/dev/mapper/ubuntu–vg-ubuntu–lv) to 62GB, a zajęte jest 56GB, co daje 95% zajętości powierzchni dysku. To zdecydowanie zbyt mało wolnego miejsca by serwer działał wydajnie. Czas by przydzielić serwerowi więcej miejsca.

    Zwiększamy rozmiar dysku w XCP-ng

    Dla naszej maszyny wirtualnej na której jest zainstalowany system Ubuntu z serwerem www przydzieliliśmy jedynie 64GB, więc pierwszym krokiem będzie zwiększenie wirtualnego dysku twardego dla naszej maszyny wirtualnej. Aby wykonać tę operację będziemy musieli wyłączyć na chwilę naszą maszynę wirtualną. W tym celu uruchamiamy aplikację XCP-ng center. Następnie wybieramy interesująca nas maszynę wirtualną, i wyłączamy ją. Przechodzimy do zakładki Storage, klikamy w nasz Storage który chcemy powiększyć i klikamy Properties. Wybieramy Size and Location i zwiększamy rozmiar wirtualnego dysku twardego. Następnie możemy ponownie uruchomić naszą maszynę wirtualną.

    Sprawdzenie wolnego miejsca w Grupie Woluminów

    Aby wyświetlić informacje o posiadanych przez nas grupach woluminów, wpisz vgs.

    Nasza grupa woluminów to ubuntu-vg o nowym rozmiarze 126.50GB i posiada ona 63.25GB wolnego miejsca. Aby wyświetlić więcej informacji o grupie woluminów, skorzystaj z polecenia vgdisplay.

    Widzimy tutaj, że przydzielone miejsce do naszej grupy woluminów to 63.25GB i mamy do dyspozycji jeszcze kolejne 63.25GB, które możemy dołączyć do naszej grupy woluminów.

    Wyświetlanie listy woluminów logicznych

    Aby wyświetlić nasze woluminy logiczne wpisz lvs.

    W naszym przypadku wolumin logiczny ubuntu -lv należy do grupy woluminów ubuntu-vg.

    UWAGA: Pamiętaj, żeby wpisując komendy zamieniać nasze nazwy woluminów, na swoje własne.

    Zwiększamy rozmiar naszego woluminu logicznego

    Aby przypisać więcej przestrzeni dyskowej naszej grupie woluminów skorzystamy z polecenia lvextend. Pamiętaj, aby zamienić ubuntu-vg, oraz ubuntu-lv na woluminy wykorzystywane w Twoim systemie.

    Parametr -L pozwala nam podać rozmiar o jaki chcemy zwiększyć nasz wolumen logiczny – w naszym przypadku zwiększamy o 63.25GB.

    Uwaga: Należy pamiętać, że nie podajemy jednostek TB, GB, MB itd, ale P dla Petabajtów, T dla Terabajtów, G dla Gigabajtów, M dla Megabajtów itd.

    Po ponownym wpisaniu komendy vgdisplay, widzimy w polu Alloc PE / Size, że zostało poprawnie przydzielone dodatkowe miejsce na dysku.

    Powiększenie systemu plików

    Nasze nowe miejsce na dysku nie jest jeszcze widoczne dla systemu. Musimy najpierw powiększyć system plików komendą resize2fs

    Podając komendę resize2fs musimy wskazać gdzie jest zamontowany nasz wolumin logiczny – w naszym przypadku jest to /dev/mapper/ubuntu–vg-ubuntu–lv

    Po tej operacji nasza nowa przestrzeń dyskowa jest już widoczna dla systemu operacyjnego i CyberPanel. 47% zajętości dysku to całkiem przyzwoity rezultat i powinno to wystarczyć na jakiś czas.

    CyberPanel Low disk usage

    Podsumowanie

    Jak widzicie, LVM ma wiele zalet. Gdybyście mieli zainstalowany system operacyjny na normalnych dyskach i partycjach, pewnie nie obyło by się bez formatowania dysków i instalacji systemu od nowa. Podczas gdy  LVM pozwala Wam na dołożenie nowego dysku do komputera, utworzenie na nim partycji i dodanie ich do już istniejącej grupy woluminów i woluminów logicznych. Łatwo, szybko i przyjemnie.

    Gdybyście mieli jakieś pytania odnośnie zwiększania pojemności woluminów LVM, to nie wahajcie się zadawać ich w komentarzach.

  • Serwer www LiteSpeed vs Apache vs Nginx. Który lepszy?

    Serwer www LiteSpeed vs Apache vs Nginx. Który lepszy?

    Szukając hostingu dla swojej strony internetowej musisz brać pod uwagę nie tylko powierzchnię dyskową, rodzaj dysków twardych (SSD, HDD, NVMe), miesięczny limit transferu, czy liczbę baz danych, ale także to, jaki serwer www będzie obsługiwał Twoją stronę. Na rynku jest wiele różnych serwerów www, jednak trzy najpopularniejsze: Apache, Nginx i LiteSpeed zgarniają ponad 78% rynku. Nie liczę tutaj serwera Cloudflare server, bo działa on na trochę innej zasadzie co wymienione trzy. Wszystkie z nich są bardzo stabilne, rozwojowe i bogate w funkcje, jednak istnieją pomiędzy nimi ogromne różnice które będą miały wpływ na działanie Twojej witryny i na wygodę użytkowania.

    Co to jest serwer www?

    Serwer www to oprogramowanie które obsługuje żądania które wysyłają odwiedzający stronę i wysyła do nich gotową stronę do wyświetlenia na ich przeglądarkach internetowych. Za każdym razem gdy wpisujesz adres strony internetowej w przeglądarce, wysyłasz żądanie do serwera http/https, który albo wyświetla plik http – w przypadku statycznych stron http, albo generuje dynamicznie stronę PHP która jest przechowywana w bazie danych, jak to się dzieje w przypadku stron stworzonych w WordPress, Joomla, czy Drupal.

    Porównamy trzy najpopularniejsze serwery www, byś mógł wybrać najlepsze rozwiązanie dla Twojej witryny internetowej. Od jakiegoś czasu najpopularniejszym serwerem www jest Nginx, który zdeklasował serwer Apache. Na trzecim miejscu szybko pnący się do góry plasuje się LiteSpeed.

    Apache

    Apache serwer www

    Zacznijmy prezentację od Apache, bo jest on najstarszym z prezentowanych tu serwerów www. Ten powstały w 1995 roku serwer Open Source, przez długi czas był niekwestionowanym liderem popularności. Praktycznie rządził na maszynach z systemem Linux, a i na komputerach Windows był często wybierany zamiast komercyjnego IIS od Microsoft.

    Nginx

    pngwing.com

    Nginx powstał, by usunąć istniejące wady serwera Apache i początkowo działał jedynie jako odwrotny serwer proxy i load balancer. Dopiero później przekształcono go w pełnoprawny serwer www. Jest kompatybilny z Apache, więc łatwo można przetransferować istniejące strony z Apache do Nginx.

    LiteSpeed

    LiteSpeed serwer www

    LiteSpeed to najmłodszy serwer www z całej trójki. Podobnie jak Nginx jest on również w pełni kompatybilny z Apache i obsługuje pliki .htaccess i mod_rewritemod_security.

    Główne różnice

    Architektura

    Apache

    Apache ma architekturę opartą na procesach. Każde żądanie HTTP jest obsługiwane przez osobny proces. Tymi wszystkimi procesami zarządza jeden główny proces nadrzędny.

    Jest to główną wadą Apache. Problem z architekturą opartą na procesach polega na tym, że mają one spory problem z ilością zużywanej pamięci RAM. O ile na nieobciążonych stronach nie jest to dużym problemem, o tyle w przypadku popularnych witryn ten problem jest zauważalny. W przypadku dużego obciążenia witryny, drastycznie spada wydajność i szybkość ładowania się stron.

    Nginx

    Serwer www Nginx działa zupełnie inaczej. Jego architektura oparta jest na zarządzaniu zdarzeniami. Jest jeden proces główny i kilka procesów pomocniczych zarządzających całym ruchem na stronie. Taka architektura jest znacznie wydajniejsza. W przypadku Nginx nie ma takiego spadku wydajności nawet dla znacznie obciążonych witryn internetowych.

    LiteSpeed

    Podobnie jak w Nginx, architektura LiteSpeed jest oparta na zarządzaniu zdarzeniami. Dlatego też podobnie jak w Nginx, spadek wydajności przy zwiększającej się liczbie odwiedzających jest dużo mniejszy niż w Apache.

    Szybkość

    W przypadku mało odwiedzanych witryn, prędkość wszystkich trzech serwerów www jest na podobnym poziomie. Lecz im więcej witryna posiada aktywnych użytkowników, tym bardziej Apache zaczyna odstawać od pozostałej dwójki. Co prawda po zainstalowaniu W3 Total Cache w Apache jest trochę lepiej, ale przy 100 odwiedzających jednocześnie i tak Nginx i LiteSpeed biją Apache na głowę.

    Ngnix z FastCGI Cache jest znacznie szybszy od Apache z W3 Total Cache, ale dopiero LiteSpeed z zainstalowanym LiteSpeed Cache dla WordPress pokazuje prawdziwą przewagę. Dla witryny opartej na WordPress serwer Apache był w stanie obsłużyć 826,5 żądań na sekundę, Nginx 6025 żądań na sekundę, natomiast LiteSpeed obsłużył aż 69618 żądań na sekundę.

    Środowisko testowe

    • Testowane serwery www:

      • LiteSpeed Web Server v5.4.1
      • nginx v1.16.1
      • Apache v2.4.41
    • WordPress:

      • WordPress wersja: 5.2.2
      • LiteSpeed cache: LiteSpeed Cache dla WordPress
      • nginx cache: FastCGI Cache
      • Apache cache: W3 Total Cache
    • Maszyna klienta:

      • RAM: 1GB
      • Procesory: 1
      • Wątki CPU: 1
      • Model procesora: Virtual CPU 6db7dc0e7704
      • Dysk: NVMe SSD
    • Serwer:

      • RAM: 1GB
      • Procesory: 1
      • Wątki CPU: 1
      • Model procesora: Virtual CPU 6db7dc0e7704
      • Dysk: NVMe SSD
    • Sieć:

      • Przepustowość: 9.02 Gbits/sek
      • Opóźnienie: 0.302 ms
    • Cloud VM:

      • Vultr High Frequency Compute 1GB VM

    Buforowanie – Cache

    Pamięć podręczna służy do tymczasowego przechowywania często używanych danych. Pamięć podręczna serwera www przechowuje często odwiedzane strony sieci web i inne zasoby. Oto jak działa typowy serwer www z włączonym buforowaniem:

    1. Przeglądarka wysyła żądanie HTTP do serwera www
    2. Jeśli żądane dane znajdują się w pamięci podręcznej, cache przechwytuje żądanie i odpowiada na nie wysyłają dane do przeglądarki klienta bez obciążania serwera www.
    3. Jeśli żądane dane nie znajdują się w pamięci podręcznej, serwer www przetwarza dane i wysyła do przeglądarki klienta, jednocześnie zapisując dane do pamięci podręcznej. Pamięć podręczna przechowuje dane zgodnie z zapisanymi ustawieniami serwera www.

    Zmniejsza to obciążenie serwera, zwiększa ogólną wydajność/przepustowość witryny i skraca czas ładowania strony internetowej.

     

    Apache

    Apache ma różne moduły buforowania, takie jak: 

    Możesz je zaimplementować na swoim serwerze Apache, by zwiększyć wydajność często dowiedzanych stron.

    Nginx

    Buforowanie na serwerze Nginx możesz włączyć przy pomocy cPanelPlesk jeśli masz je zainstalowane, lub bezpośrednio w plikach konfiguracyjnych Nginx.

    LiteSpeed

    Pamięć podręczna Cache w LiteSpeed możesz bardzo łatwo włączyć przy pomocy wtyczek do 

    Pamięć podręczna oferuje też kilka innych wyjątkowych funkcji, jak na przykład Cache Crawler. Cache Crawler skanuje Twoją witrynę internetową, gdy nie jest obciążona, wychwytuje najczęściej odwiedzane strony i przenosi je do pamięci podręcznej, by jeszcze bardziej przyspieszyć Twoją witrynę. LiteSpeed cache poprawia wydajność sklepów internetowych, przenosząc do pamięci podręcznej koszyki zakupowe klientów.

    Obsługiwane systemy operacyjne

    Apache

    Apache jako najstarszy serwer www z całej trójki, wspiera najwięcej systemów operacyjnych. Obsługuje wszystkie systemy Unix/Linux: CentOS, RedHat, Fedora, Ubuntu, OpenSuse itd. Jako jedyny jest w pełni wspierany przez systemy Microsoft Windows.

    Nginx

    Nginx również możesz zainstalować na wszystkich systemach Unix/Linux, jednak nie na systemach Windows działa poprawnie.

    LiteSpeed

    LiteSpeed możesz zainstalować na systemach CentOS 7+, Ubuntu 14.04+*, Debian 8+, FreeBSD 9+, Fedora 31+, Linux Kernel 3.0+

    *Na styczeń 2023 możesz zainstalować LiteSpeed na Ubuntu 22.04, jednak w tej wersji systemu nie działa CyberPanel. Jeśli chcesz używać CyberPanel z wygodnym GUI, pozostań na Ubuntu 20.04.

    Łatwość konfiguracji

    Jeśli dopiero zaczynasz przygodę z serwerami www, łatwość obsługi może być dla Ciebie istotna. O wiele przyjemniej obsługuje się serwer www z poziomu przeglądarki www z wygodnym interfejsem graficznym, niż przy pomocy CLI, lub edycję plików konfiguracyjnych.

    Apache

    Apache konfiguruje się najczęściej poprzez edycję pliku .htaccess. Ustawia się tam między innymi przekierowania, ochronę hasłem, niestandardowe komunikaty o błędach, indeksowanie i wiele więcej. Edycja tego pliku wymaga jednak trochę wiedzy z zakresu konfiguracji serwerów www, bez której można łatwo popełnić błąd i całkowicie unieruchomić naszą witrynę. Dlatego przed jakąkolwiek edycją tego pliku konieczne wykonaj kopię bezpieczeństwa.

    Nginx

    Serwer Nginx konfiguruje się przy pomocy plików konfiguracyjnych .conf. W standardzie Nginx nie ma żadnego panelu kontrolnego z interfejsem graficznym, ale możesz doinstalować jeden z kilku Paneli Kontrolnych. Część z nich jest bezpłatnych – jak na przykład Hestia Control Panel, za niektóre z nich trzeba będzie zapłacić.

    LiteSpeed

    Darmowy OpenLiteSpeed domyślnie instaluje się z Dashboard z wygodnym, graficznym interfejsem użytkownika.

    Dodatkowo możemy zainstalować jeden z kilku paneli kontrolnych , na przykład darmowy, doskonały CyberPanel, z poziomu którego możemy zarządzać całym serwerem. Możemy zainstalować nową stronę internetową, zainstalować WordPress wraz z LiteSpeed Cache, możemy jednym kliknięciem zainstalować certyfikaty SSL, zarówno darmowe przez Let’s Encrypt, jak i własne płatne certyfikaty. Możemy skonfigurować DNS, FTP, SSH, tworzyć kopie bezpieczeństwa, zmienić wersję PHP dla każdej strony oddzielnie, zainstalować serwer pocztowy i wiele więcej.

    Bezpieczeństwo

    Wszystkie trzy opisywane serwery www bardzo poważnie podchodzą do tematów bezpieczeństwa. Apache dodatkowo ma czujną i najliczniejszą społeczność programistów, która błyskawicznie reaguje na wszelkie wykryte luki bezpieczeństwa. Oferuje także różne parametry konfiguracyjne chroniące stronę przed atakami DDoS i eskalacją uprawnień, jednak ich wprowadzenie wymaga odrobinę wiedzy informatycznej.

    W Nginx oprócz społeczności o bezpieczeństwo dba firma F5, która wykupiła prawa do Nginx. Posiada obszerną dokumentację na temat bezpieczeństwa i możliwych zagrożeń.

    LiteSpeed jest również bardzo bezpieczny i cały czas sprawnie rozwijany. Wszelkie wykryte luki bezpieczeństwa są na bieżąco łatane.

     

    Panele kontrolne

    Apache

    • cPanel
    • Kloxo
    • Ajenti
    • OpenPanel
    • ZPanel

    Nginx

    • cPanel
    • aaPanel
    • Vesta
    • Hestia CP

    LiteSpeed

    • cPanel
    • Plesk
    • DirectAdmin
    • CyberPanel
    • CloudPages
    • Vitrualmin
    • WHM

    Wtyczki

    Wtyczki pozwalają rozszerzyć możliwości serwera www. Apache ma chyba najbardziej rozbudowaną listę wtyczek. Między innymi do zarządzania połączeniami SQL, kompresji danych, czy wykonywania skryptów CGI. Listę wtyczek znajdziesz na stronie Wikipedia.

    Do Nginx również istnieje wiele wtyczek, które są pisane przez społeczność programistów. Dzięki nim możesz na przykład zarządzać uwierzytelnianiem HTTPS SSL, czy na przykład dynamicznie blokować adresy IP.

    Pod względem ilości wtyczek na pierwszy rzut oka najsłabiej wypada LiteSpeed, ale tylko pozornie, bo wiele rzeczy które musisz instalować osobno w Apache, czy Nginx, w LiteSpeed dostajesz je w standardzie.

    Obsługa języków skryptowych

    Apache współpracuje z różnymi językami programowania, jak na przykład PHP, Python, czy Perl.

    Nginx obsługuje 6 języków: JavaScript, Go, Perl, PHP, Python, Ruby i eksperymentalnie serwlety Java.

    LiteSpeed obsługuje wszystkie języki skryptowe, w tym Perl, Java, Ruby, PHP, Python i inne.

    Obsługa HTTP/3

    Na dzień dzisiejszy Apache nie obsługuje HTTP/3.

    Nginx dopiero pracuje nad wprowadzeniem obsługi dla HTTPS/3.

    LiteSpeed w pełni obsługuje HTTP/3, HTTP/2 i QUIC.

    Obsługa systemów CMS

    Wszystkie trzy serwery bez problemu wspierają Systemy Zarządzania Treścią CMS:

    • Joomla
    • Drupal
    • Magento
    • OpenCart
    • PrestaShop
    • Shopware
    • MediaWiki
    • inne

    Podsumowanie

    Każdy serwer www ma pewne wady i zalety. Jednak najbardziej przyszłościowy na dzień dzisiejszy wydaje się LiteSpeed, choć Nginx jeszcze nie powiedział ostatniego słowa, zwłaszcza że jest wspierany przez dużą, amerykańską korporację F5. Apache z kolei ma najliczniejszą społeczność i jest najlepiej udokumentowany. Jednak jesteśmy zdania, że gdy spróbujesz wygodny graficzny interfejs użytkownika CyberPanel i dashboard LiteSpeed, nie będziesz już chciał wrócić do Apache.

  • Jak uruchomić zadanie CRON co godzinę

    Jak uruchomić zadanie CRON co godzinę

    Istnieją pewne zadania na komputerze, które musimy wykonywać regularnie – na przykład wykonywanie kopii bezpieczeństwa. Do wykonywaniu takich powtarzalnych zadań w systemie Linux służy polecenie Cron – jest nieoceniony w wykonywaniu zadań które wymagają planowania. W tym artykule pokażemy Ci, jak skonfigurować crontab, by uruchamiał zadanie cron co godzinę. 

    Co to jest cron?

    Cron, to narzędzie, aplikacja służąca do planowania zadań, uruchamiania aplikacji i skryptów w określonym czasie w systemach operacyjnych typu Unix. Umożliwia on planowanie zadań (cykliczne uruchamianie aplikacji, lub skryptów powłoki) które będą się automatycznie uruchamiać o określonej godzinie i dacie. Zadania te nazywane są zadaniami cron.

    Cron w systemach Linux i Unix jest powszechnie używany do zadań konserwacyjnych lub administracyjnych, jak uruchamianie kopii zapasowych (z możliwością wysłania ich później na przykład na serwer FTP), czy wysyłanie zautomatyzowanych wiadomości e-mail. Cron można również stosować na przykład do sprawdzania dostępności aktualizacji systemu i wielu innych rzeczy.

    Cron do pracy wykorzystuje plik konfiguracyjny o nazwie crontab. Crontab, to zwykły plik tekstowy którego możemy edytować dowolnym edytorem tekstu. Administrator systemu ma możliwość skonfigurować globalny plik crontab z uprawnieniami root, a ponadto każdy z użytkowników może mieć własne ustawienia, ograniczone jednak prawami użytkownika.

    Zadanie cron jest zwykle wykonywane w tle, a jeśli występują jakieś dane wyjściowe, to mogą być wysyłane do użytkownika pocztą e-mail, lub zapisywane do pliku. Cron to potężne narzędzie pozwalające zautomatyzować praktycznie każde zadanie, jednak dla początkujących użytkowników może być trudny w obsłudze, jeśli nie znają składni potrzebnych poleceń.

    Do czego przyda nam się cron?

    Przy pomocy cron, możemy zarządzać praktycznie każdą funkcją komputera, czy serwera i uruchamiać cykliczne zadania o określonej godzinie i dacie. Możemy go wykorzysta na przykład do:

    • Automatyzacja powtarzalnych zadań. Zadanie cron może być używane do automatyzacji zadań w regularnych odstępach czasu, takich jak na przykład uruchamianie kopii zapasowych, lub wysyłania cyklicznych wiadomości e-mail, na przykład z przypomnieniami.
    • Uruchamianie zadań systemowych zgodnie z harmonogramem. Zadanie cron może nam sprawdzać, czy są dostępne aktualizacje systemu operacyjnego, bądź aplikacji, albo na przykład może regularnie czyścić komputer z plików tymczasowych i niepotrzebnych  logów systemowych.
    • Automatyczne wykonywanie aktualizacji systemu, aktualizowanie zabezpieczeń i instalacja nowego oprogramowania. Może to pomóc w lepszym zabezpieczeniu systemu i dzięki temu mamy pewność, że na naszym komputerze, czy serwerze zawsze mamy zainstalowane najnowsze wersje aplikacji i bibliotek.
    • Poprawa wydajności. Dzięki cron, możemy tak skonfigurować uruchamianie zadań mocno obciążających komputer, aby uruchamiały się w godzinach gdy komputer jest najmniej używany, na przykład w nocy.

    Ogólnie rzecz biorąc, cron może nam znacznie usprawnić wykonywanie cyklicznych zadań poprzez ich automatyzację.

    Stwórz zadanie cron w terminalu Linux

    Do tworzenia zadań cron służy polecenie crontab. Aby utworzyć nowe zadanie cron:

    • Otwórz okno terminala
    • Wpisz polecenie crontab -e aby otworzyć plik konfiguracyjne cron.
    • Dodaj nowy wpis do pliku crontab, pamiętając, aby zachować odpowiedni format, gdyż inaczej zadanie nie uruchomi się:

    minuta godzina dzień-miesiąca miesiąc dzień-tygodnia polecenie-do-wykonania

    Gwiazdka zamiast minut, godzin, czy miesiąca oznacza, że to zadanie będzie się uruchamiać każdej godziny, minuty, czy każdego miesiąca. Na przykład, jeśli chcemy, by polecenie, lub skrypt uruchamiał się o każdej pełnej godzinie (czyli w minucie 0) każdego dnia każdego miesiąca, musimy wpisać:

    0 * * * * polecenie-do-wykonania

    • Zapisz plik crontab  i zamknij.
    • Użyj polecenia crontab -l aby wyświetlić listę zapisanych zadań cron do wykonania.

    UWAGA: Składnia poleceń zadań cron może się różnić w zależności od wersji systemu Linux. My bazujemy na systemie Ubuntu. Aby dowiedzieć się więcej o aplikacji cron, wpisz w terminalu man cron

    Jak utworzyć zadanie cron w CyberPanel

    Jeśli Twój serwer www oparty jest na LiteSpeed, to powinieneś zainstalować nakładkę CyberPanel. Tworzenie zadań cron w CyberPanel jest o wiele prostsze i przyjemniejsze niż w pliku crontab.

    • Zaloguj się do Dashboard swojego CyberPanel.
    • Kliknij po lewej stronie Websites, a następnie List Websites i wybierz swoją stronę internetową i kliknij Manage
    CyberPanel Website manage
    • Przewiń w dół i kliknij na Cron Jobs
    CyberPanel WordPress cron jobs
    • Aby dodać nowe zadanie cron, naciśnij ADD CRON. Aby zobaczyć listę istniejących zadań, kliknij FETCH CURRENT CRON JOBS
    CyberPanel Add cron job Fetch
    • Aby dane zadanie uruchamiało się co tydzień, wybierz z listy Every week. W poniższym przykładzie cron uruchomi napisany wcześniej skrypt do wykonywania kopii bezpieczeństwa co tydzień, każdej środy o godzinie 4:16 w nocy. W oknie Day of week wpisujemy cyfry od 0 do 7.
    • 0 i 7 oznacza niedzielę, 1 poniedziałek, 2 wtorek itd
    • Możemy również wpisać dni tygodnia słownie po angielsku: mon, tue, wed, thu, fri, sat, lub sun
    • Naciśnij Add cron aby zapisać utworzone zadanie
    CyberPanel WordPress cron weekly

    Prawda, że w CyberPanel konfiguruje się cron przyjemniej?