Instalacja i konfiguracja komponentów Ubuntu: Kompletny przewodnik
Ubuntu pozostaje jedną z najpopularniejszych dystrybucji Linuksa na świecie — i to z dobrego powodu. Jego elastyczność, solidny ekosystem pakietów i silne wsparcie społeczności czynią go idealną platformą dla deweloperów, administratorów systemów i firm. Niezależnie od tego, czy konfigurujesz lokalną maszynę deweloperską, czy aprowizujesz środowisko VPS Hosting w chmurze, wiedza na temat prawidłowej instalacji i konfiguracji komponentów Ubuntu jest umiejętnością fundamentalną, która przynosi korzyści na każdym poziomie infrastruktury.
Ten kompleksowy przewodnik przeprowadzi Cię przez każdy krytyczny krok: aktualizację systemu, instalację niezbędnych pakietów, konfigurację zapór sieciowych, konfigurację serwerów baz danych, optymalizację wydajności i wiele więcej. Na koniec Twój system Ubuntu będzie wzmocniony, wydajny i gotowy do obciążeń produkcyjnych.
1. Aktualizacja Ubuntu przed zainstalowaniem czegokolwiek
Przed dotknięciem jakiegokolwiek pakietu zawsze doprowadź swój system do pełnej aktualności. Zapewnia to pracę z najnowszymi poprawkami bezpieczeństwa, poprawkami błędów i ulepszeniami kompatybilności oprogramowania.
sudo apt update && sudo apt upgrade -yCo to robi:
apt update— Odświeża lokalny indeks pakietów ze wszystkich skonfigurowanych repozytoriów.apt upgrade -y— Uaktualnia wszystkie zainstalowane pakiety do ich najnowszych dostępnych wersji, automatycznie potwierdzając monity.
> Pro Tip: Na nowo aprowizowanym serwerze — szczególnie jeśli uruchamiasz Ubuntu na Dedicated Server — ten krok jest obowiązkowy. Nieaktualne pakiety to jeden z najczęstszych wektorów naruszeń bezpieczeństwa.
Po uaktualnieniu uruchom ponownie, jeśli jądro zostało zaktualizowane:
sudo reboot2. Instalacja niezbędnych komponentów
Siła Ubuntu tkwi w jego rozszerzalności. Poniższe podsekcje obejmują najważniejsze pakiety dla każdego poważnego wdrożenia Ubuntu.
2.1. Build Essentials
Pakiet build-essential instaluje wyselekcjonowany zestaw narzędzi wymaganych do kompilacji oprogramowania ze źródła, w tym GCC (GNU Compiler Collection), Make i standardowe biblioteki C/C++.
sudo apt install build-essential -yZweryfikuj instalację:
gcc --version
make --versionTen pakiet jest warunkiem wstępnym dla wielu innych narzędzi i środowisk uruchomieniowych języków (np. rozszerzenia Python, Ruby gems, moduły natywne Node.js).
2.2. Git — System kontroli wersji
Git to branżowy standard narzędzia do zarządzania kodem źródłowym, wspólpracy nad rozwojem i pipelinów wdrażania.
sudo apt install git -yPo instalacji skonfiguruj swoją globalną tożsamość:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"Zweryfikuj swoją konfigurację:
git config --listOpcjonalnie, ale zalecane: Ustaw domyślną nazwę gałęzi na main aby dostosować się do nowoczesnych konwencji:
git config --global init.defaultBranch main2.3. Narzędzia sieciowe: curl i wget
Te narzędzia są niezbędne do pobierania plików, testowania API i debugowania łączności sieciowej bezpośrednio z wiersza poleceń.
sudo apt install curl wget -yPrzykłady szybkiego użycia:
# Download a file with wget
wget https://example.com/file.tar.gz
# Test an API endpoint with curl
curl -I https://example.comDodatkowe przydatne narzędzia diagnostyki sieciowej:
sudo apt install net-tools dnsutils traceroute -ynet-tools— Zapewniaifconfig,netstati powiązane polecenia.dnsutils— Zawieradiginslookupdo rozwiązywania problemów DNS.traceroute— Śledzi ścieżkę sieciową do zdalnego hosta.
2.4. Edytory tekstu
Każdy administrator systemu potrzebuje niezawodnego edytora tekstu wiersza poleceń. Ubuntu obsługuje kilka opcji w zależności od Twoich preferencji i przepływu pracy.
Nano (przyjazny dla początkujących):
sudo apt install nano -yVim (potężny, wysoce konfigurowalny):
sudo apt install vim -yEmacs (bogaty w funkcje, rozszerzalny):
sudo apt install emacs -y> Rekomendacja: W środowiskach serwerowych Vim jest najbardziej powszechnie dostępną i zdolną opcją. Poświęć czas na naukę jego podstawowych poleceń — znacznie przyspieszy to Twój przepływ pracy.
2.5. Instalacja serwera WWW
Serwer WWW jest niezbędny do hostowania stron internetowych, aplikacji internetowych i API. Dwie dominujące opcje na Ubuntu to Nginx i Apache.
Instalacja Nginx (Zalecane dla wysokiej wydajności)
sudo apt install nginx -yUruchom i włącz Nginx, aby uruchamiał się automatycznie przy starcie:
sudo systemctl start nginx
sudo systemctl enable nginxZweryfikuj, że działa:
sudo systemctl status nginxPrzetestuj konfigurację przed przeładowaniem:
sudo nginx -tInstalacja Apache
sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2Nginx vs. Apache — Który wybrać?
| Funkcja | Nginx | Apache |
|---|---|---|
| Wydajność pod obciążeniem | Doskonała (sterowana zdarzeniami) | Dobra (oparta na procesach/wątkach) |
| Serwowanie plików statycznych | Bardzo szybkie | Szybkie |
| Obsługa .htaccess | Nie | Tak |
| Ekosystem modułów | Rosnący | Rozległy |
| Użycie pamięci | Niższe | Wyższe |
W przypadku większości nowoczesnych wdrożeń — szczególnie w środowiskach VPS Hosting w chmurze — Nginx jest preferowanym wyborem ze względu na jego doskonałą obsługę równoczesnych połączeń i niższy ślad pamięci.
3. Konfigurowanie repozytoriów oprogramowania
Domyślna instalacja Ubuntu włącza tylko repozytoria Main i Restricted. Aby uzyskać dostęp do znacznie szerszej gamy oprogramowania, należy włączyć repozytoria Universe i Multiverse.
Metoda 1: Korzystanie z GUI (Desktop Ubuntu)
- Otwórz Software & Updates z menu aplikacji.
- Na karcie Ubuntu Software zaznacz pola wyboru dla Universe i Multiverse.
- Kliknij Close i przeładuj listę pakietów po wyświetleniu monitu.
Metoda 2: Korzystanie z wiersza poleceń (Zalecane dla serwerów)
sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt updatePrzegląd repozytoriów:
| Repozytorium | Zawartość |
|---|---|
| Main | Oficjalnie wspierane oprogramowanie open-source |
| Restricted | Sterowniki własnościowe z oficjalnym wsparciem |
| Universe | Oprogramowanie open-source utrzymywane przez społeczność |
| Multiverse | Oprogramowanie z ograniczeniami licencyjnymi |
Dodawanie PPA innych firm
Dla oprogramowania niedostępnego w oficjalnych repozytoriach możesz dodać Personal Package Archives (PPAs):
sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name> Uwaga bezpieczeństwa: Dodawaj tylko PPAs z zaufanych, dobrze znanych źródeł. Repozytoria innych firm mogą wprowadzić niezweryfikowane oprogramowanie do Twojego systemu.
4. Instalacja i konfiguracja zapory ogniowej za pomocą UFW
Ubuntu jest wyposażony w UFW (Uncomplicated Firewall), przyjazny dla użytkownika interfejs dla iptables. Prawidłowa konfiguracja zapory ogniowej to jeden z najważniejszych kroków bezpieczeństwa dla każdego serwera dostępnego w Internecie.
Włączenie UFW
sudo ufw enableZezwolenie na niezbędne usługi
Zawsze zezwól na SSH przed włączeniem zapory ogniowej, aby uniknąć zablokowania się:
sudo ufw allow sshLub określ port jawnie:
sudo ufw allow 22/tcpZezwól na ruch HTTP i HTTPS dla serwerów WWW:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpZezwól na określone profile aplikacji:
sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'Sprawdzenie statusu zapory ogniowej
sudo ufw status verboseDodatkowe polecenia UFW
# Deny a specific port
sudo ufw deny 8080/tcp
# Delete a rule
sudo ufw delete allow 8080/tcp
# Reset all rules
sudo ufw reset
# Disable UFW
sudo ufw disable> Najlepsza praktyka: Postępuj zgodnie z zasadą najmniejszych uprawnień — otwieraj tylko porty, które są wyraźnie wymagane dla twoich usług. Każdy niepotrzebny otwarty port to potencjalna powierzchnia ataku.
5. Instalacja i konfiguracja serwerów baz danych
Bazy danych są fundamentem praktycznie każdej aplikacji internetowej. Ubuntu obsługuje wszystkie główne relacyjne i NoSQL systemy baz danych poprzez swoje repozytoria pakietów.
5.1. Instalacja MySQL
MySQL jest najszerzej wdrażaną na świecie otwartą relacyjną bazą danych.
sudo apt install mysql-server -yPo instalacji uruchom skrypt wzmacniania bezpieczeństwa:
sudo mysql_secure_installationTen interaktywny skrypt będzie:
- Ustawiać hasło root (lub sprawdzać siłę hasła)
- Usuwać użytkowników anonimowych
- Zabraniać zdalnego logowania root
- Usuwać testową bazę danych
- Przeładowywać tabele uprawnień
Uruchom i włącz MySQL:
sudo systemctl start mysql
sudo systemctl enable mysqlSprawdź, czy usługa jest uruchomiona:
sudo systemctl status mysqlPołącz się z powłoką MySQL:
sudo mysql -u root -p5.2. Instalacja MariaDB (alternatywa kompatybilna z MySQL)
MariaDB jest rozwidleniem MySQL opracowywanym przez społeczność, z ulepszoną wydajnością i dodatkowymi funkcjami:
sudo apt install mariadb-server mariadb-client -y
sudo mysql_secure_installation
sudo systemctl enable --now mariadb5.3. Instalacja PostgreSQL
PostgreSQL to potężny, klasy enterprise obiektowo-relacyjny system baz danych znany z zgodności ze standardami i rozszerzalności.
sudo apt install postgresql postgresql-contrib -yUruchom i włącz PostgreSQL:
sudo systemctl start postgresql
sudo systemctl enable postgresqlPrzełącz się na administratora PostgreSQL i otwórz powłokę:
sudo -i -u postgres
psqlUtwórz nową bazę danych i użytkownika:
CREATE DATABASE myapp_db;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strong_password';
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp_user;
q6. Instalowanie dodatkowych narzędzi i programów
Poza podstawami, następujące narzędzia dramatycznie poprawiają produktywność, widoczność systemu i możliwości wdrażania.
Docker — Container Runtime
Docker umożliwia pakowanie aplikacji i ich zależności w przenośne kontenery, zapewniając spójność w środowiskach development, staging i production.
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable dockerDodaj swojego użytkownika do grupy Docker, aby uruchamiać polecenia bez sudo:
sudo usermod -aG docker $USER
newgrp dockerSprawdź, czy Docker działa:
docker run hello-worldW przypadku wdrożeń produkcyjnych rozważ również zainstalowanie Docker Compose:
sudo apt install docker-compose -yhtop — Interaktywna przeglądarka procesów
htop zapewnia widok procesów systemu w czasie rzeczywistym z kodowaniem kolorów, użycie CPU, zużycie pamięci i wiele więcej — znacznie lepsze niż standardowe polecenie top.
sudo apt install htop -y
htopKluczowe skróty htop:
F6— Sortuj procesy według kolumnyF9— Zabij procesF10— Wyjdź/— Wyszukaj proces
Tmux — Multiplekser terminala
Tmux umożliwia tworzenie, zarządzanie i utrwalanie wielu sesji terminalowych w ramach jednego połączenia SSH — nieocenione dla długotrwałych zadań na serwerach zdalnych.
sudo apt install tmux -yPodstawowe polecenia Tmux:
# Start a new session
tmux new -s mysession
# Detach from session (keeps it running)
Ctrl+B, then D
# List all sessions
tmux ls
# Reattach to a session
tmux attach -t mysessionDodatkowe rekomendowane narzędzia
# fail2ban — Intrusion prevention system
sudo apt install fail2ban -y
# unzip — Extract ZIP archives
sudo apt install unzip -y
# tree — Display directory structure
sudo apt install tree -y
# ncdu — Disk usage analyzer
sudo apt install ncdu -y
# jq — JSON processor for the command line
sudo apt install jq -y7. Dostosowywanie ustawień systemu Ubuntu
7.1. Włączanie automatycznych aktualizacji bezpieczeństwa
Utrzymywanie systemu zaaktualizowanego jest krytyczne — szczególnie na serwerach dostępnych publicznie. Pakiet unattended-upgrades Ubuntu automatyzuje ten proces.
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgradesAby dostosować zachowanie, edytuj plik konfiguracyjny:
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesKluczowe ustawienia do przejrzenia:
Unattended-Upgrade::Allowed-Origins— Określ, które repozytoria wyzwalają automatyczne aktualizacje.Unattended-Upgrade::Automatic-Reboot— Ustaw natrue, aby zezwolić na automatyczne ponowne uruchomienia po aktualizacjach jądra.Unattended-Upgrade::Mail— Skonfiguruj powiadomienia e-mail dla aktywności aktualizacji.
7.2. Zarządzanie aplikacjami uruchamianymi przy starcie (Desktop Ubuntu)
Kontrolowanie, które aplikacje uruchamiają się przy logowaniu, pomaga zmniejszyć czas rozruchu i zaoszczędzić zasoby systemowe.
- Wyszukaj Aplikacje uruchamiane przy starcie w menu aplikacji GNOME.
- Przejrzyj listę włączonych programów uruchamianych przy starcie.
- Wyłącz wszystkie aplikacje, których nie potrzebujesz przy logowaniu.
- Użyj przycisku Dodaj, aby zarejestrować nowe skrypty uruchamiania lub aplikacje.
W środowiskach serwerowych zarządzaj usługami za pomocą systemd:
# Disable a service from starting at boot
sudo systemctl disable service-name
# Enable a service at boot
sudo systemctl enable service-name
# List all enabled services
sudo systemctl list-unit-files --state=enabled7.3. Konfigurowanie strefy czasowej systemu
Prawidłowa konfiguracja strefy czasowej jest niezbędna dla dokładności dzienników, zaplanowanych zadań i walidacji certyfikatów SSL.
# Check current timezone
timedatectl
# List available timezones
timedatectl list-timezones
# Set timezone
sudo timedatectl set-timezone Europe/London7.4. Konfigurowanie SSH do bezpiecznego dostępu zdalnego
Jeśli zarządzasz serwerem zdalnym, wzmacnianie konfiguracji SSH jest najważniejsze.
sudo nano /etc/ssh/sshd_configZalecane ustawienia bezpieczeństwa:
# Disable root login
PermitRootLogin no
# Disable password authentication (use SSH keys instead)
PasswordAuthentication no
# Change default SSH port (optional but reduces automated scanning)
Port 2222
# Limit login attempts
MaxAuthTries 3Po wprowadzeniu zmian uruchom ponownie SSH:
sudo systemctl restart sshd> Ważne: Zawsze testuj nową konfigurację SSH w osobnej sesji terminala przed zamknięciem bieżącego połączenia, aby uniknąć zablokowania.
8. Konfigurowanie Automatycznych Kopii Zapasowych
Utrata danych jest katastrofalna. Niezależnie od tego, czy prowadzisz projekt osobisty, czy aplikację krytyczną dla biznesu, automatyczne kopie zapasowe są obowiązkowe.
Korzystanie z Wbudowanego Narzędzia Kopii Zapasowych Ubuntu (Desktop)
- Wyszukaj Backups (Déjà Dup) w menu aplikacji.
- Skonfiguruj miejsce docelowe kopii zapasowej: dysk zewnętrzny, udział sieciowy lub magazyn w chmurze.
- Ustaw harmonogram kopii zapasowych na karcie Scheduling.
- Włącz Automatic Backup i skonfiguruj okresy przechowywania.
Kopia Zapasowa z Wiersza Poleceń za Pomocą rsync (Rekomendowane dla Serwerów)
rsync jest standardem złota dla wydajnych, przyrostowych kopii zapasowych plików na serwerach Linux.
# Basic local backup
rsync -avz /source/directory/ /backup/destination/
# Remote backup over SSH
rsync -avz -e ssh /local/directory/ user@remote-server:/backup/path/
# Exclude specific directories
rsync -avz --exclude='*.log' --exclude='tmp/' /source/ /destination/Automatyzacja Kopii Zapasowych za Pomocą Cron
crontab -eDodaj codzienne zadanie kopii zapasowej o godzinie 2:00 AM:
0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1Najlepsze Praktyki Kopii Zapasowych
- Postępuj zgodnie z regułą 3-2-1: 3 kopie danych, na 2 różnych typach nośników, z 1 kopią poza siedzibą.
- Regularnie testuj kopie zapasowe, przeprowadzając ćwiczenia przywracania.
- Szyfruj wrażliwe dane kopii zapasowych.
- Monitoruj dzienniki kopii zapasowych pod kątem błędów.
9. Monitorowanie systemu i optymalizacja wydajności
Wbudowane narzędzia monitorowania
GNOME System Monitor (Desktop):
Zapewnia graficzny przegląd użycia CPU, pamięci, I/O dysku i sieci. Uruchom go z menu aplikacji lub za pomocą:
gnome-system-monitorhtop (Command Line):
htopvmstat — Virtual Memory Statistics:
vmstat 1 10iostat — CPU and I/O Statistics:
sudo apt install sysstat -y
iostat -x 1 5free — Memory Usage:
free -hdf — Disk Space Usage:
df -hnetstat / ss — Network Connections:
ss -tuln9.1. Konfiguracja monitorowania systemu za pomocą Prometheus i Node Exporter
W środowiskach produkcyjnych odpowiedni stos monitorowania zapewnia dane historyczne, alerty i pulpity nawigacyjne.
# Install Node Exporter for system metrics
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz
tar xvfz node_exporter-*.tar.gz
sudo cp node_exporter-*/node_exporter /usr/local/bin/
sudo systemctl enable --now node_exporter10. Optymalizacja wydajności systemu
10.1. Wyłączanie niepotrzebnych usług startowych
Zidentyfikuj i wyłącz usługi, których nie potrzebujesz:
# List all running services
sudo systemctl list-units --type=service --state=running
# Disable a specific service
sudo systemctl disable --now bluetooth.service
sudo systemctl disable --now cups.service10.2. Konfiguracja i włączenie przestrzeni wymiany
Przestrzeń wymiany działa jako pamięć przepełnienia, gdy RAM jest wyczerpany. Na serwerach z ograniczoną pamięcią RAM, prawidłowo skonfigurowana przestrzeń wymiany może zapobiec awariom z powodu braku pamięci.
# Create a 2GB swap file
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Make swap permanent across reboots
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabDostrojenie swappiness (niższa wartość = mniej agresywna wymiana):
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf10.3. Usuwanie nieużywanych pakietów i czyszczenie pamięci podręcznej pakietów
Z czasem osierocone pakiety i pobrane pliki z pamięci podręcznej zajmują znaczną przestrzeń dyskową:
# Remove automatically installed packages no longer needed
sudo apt autoremove -y
# Remove cached package files
sudo apt autoclean
# Full clean of the package cache
sudo apt clean10.4. Optymalizacja I/O dysku za pomocą harmonogramu Deadline
W przypadku dysków SSD, harmonogram none (noop) często zapewnia lepszą wydajność:
# Check current scheduler
cat /sys/block/sda/queue/scheduler
# Set scheduler temporarily
echo none | sudo tee /sys/block/sda/queue/scheduler10.5. Włączanie i konfiguracja Fail2Ban
Fail2Ban monitoruje pliki dziennika i automatycznie blokuje adresy IP, które wykazują złośliwe zachowanie (np. ataki brute-force SSH):
sudo apt install fail2ban -y
sudo systemctl enable --now fail2banUtwórz lokalny plik konfiguracji zastępczej:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.localKluczowe ustawienia:
[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 3600
findtime = 600Uruchom ponownie Fail2Ban, aby zastosować zmiany:
sudo systemctl restart fail2ban
sudo fail2ban-client status sshdHosting Twojego serwera Ubuntu w AlexHost
Prawidłowo skonfigurowany system Ubuntu jest tak dobry, jak infrastruktura, na której działa. Niezależnie od tego, czy wdrażasz projekt osobisty, aplikację biznesową czy złożoną architekturę wielowarstwową, niezawodny hosting jest fundamentem wszystkiego.
AlexHost oferuje pełne spektrum rozwiązań hostingowych zaprojektowanych do uzupełnienia Twojej konfiguracji Ubuntu:
- Hosting VPS — Pełny dostęp root, magazyn SSD i skalowalne zasoby. Idealny do wdrażania serwerów Ubuntu z pełną kontrolą nad Twoim środowiskiem.
- Serwery dedykowane — Wydajność bare-metal dla wymagających obciążeń. Idealny, gdy potrzebujesz maksymalnego CPU, RAM i przepustowości I/O bez dzielenia zasobów.
- VPS z cPanel — Łączy moc VPS z łatwością interfejsu zarządzania opartego na sieci web cPanel — świetna opcja, jeśli wolisz GUI zamiast wiersza poleceń.
- Certyfikaty SSL — Zabezpiecz swoje aplikacje internetowe zaufanymi certyfikatami SSL/TLS. Niezbędne dla każdego produkcyjnego serwera internetowego.
- Hosting współdzielony — Przystępny punkt wejścia dla mniejszych projektów, które nie wymagają jeszcze pełnego VPS.
Wszystkie serwery AlexHost obsługują Ubuntu i mogą być udostępniane w ciągu minut, dając Ci czystą, aktualną bazę do zastosowania wszystkiego, co opisano w tym przewodniku.
Podsumowanie
Instalacja i konfiguracja komponentów Ubuntu to nie jednorazowe zadanie — to ciągła praktyka, która ewoluuje wraz z potrzebami Twojej infrastruktury. Poprzez systematyczną pracę nad aktualizacjami systemu, instalacją niezbędnych pakietów, konfiguracją repozytoriów, ustawieniem zapory, wdrożeniem bazy danych, dostrajaniem wydajności i automatycznymi kopiami zapasowymi budujesz solidne, bezpieczne i wysoce wydajne środowisko Ubuntu.
Niezależnie od tego, czy jesteś deweloperem konfigurującym lokalną stację roboczą, administratorem systemu zarządzającym flotą serwerów w chmurze, czy firmą wdrażającą aplikacje produkcyjne, zasady i polecenia omówione w tym przewodniku stanowią solidną, powtarzalną podstawę.
Kluczowe wnioski:
- Zawsze aktualizuj system przed zainstalowaniem nowego oprogramowania.
- Stosuj zasadę najmniejszych uprawnień dla użytkowników, usług i reguł zapory.
- Zautomatyzuj aktualizacje bezpieczeństwa i kopie zapasowe — nie polegaj na procesach ręcznych.
- Monitoruj swój system proaktywnie, a nie reaktywnie.
- Mądrze wybieraj infrastrukturę hostingową — wszystko inne na niej się opiera.
Konsekwentnie stosując te praktyki, Twój system Ubuntu pozostanie bezpieczny, wydajny i gotowy na wszystko, co go czeka.
na wszystkich usługach hostingowych