15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
31.10.2024
1 +1

Instalacja i konfiguracja komponentów Ubuntu: Kompletny przewodnik

Ubuntu pozostaje jedną z najpopularniejszych dystrybucji Linux na świecie — i nie bez powodu. Jego elastyczność, solidny ekosystem pakietów i silne wsparcie społeczności czynią go idealną platformą dla programistów, administratorów systemów i firm. Niezależnie od tego, czy konfigurujesz lokalną maszynę deweloperską, czy aprowizujesz środowisko VPS Hosting w chmurze, umiejętność prawidłowej instalacji i konfiguracji komponentów Ubuntu jest podstawową umiejętnością, 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. Po zakończeniu Twój system Ubuntu będzie wzmocniony, wydajny i gotowy do obciążeń produkcyjnych.

Spis treści

  1. Aktualizacja Ubuntu przed instalacją czegokolwiek
  2. Instalacja niezbędnych komponentów
  3. Konfiguracja repozytoriów oprogramowania
  4. Instalacja i konfiguracja zapory sieciowej za pomocą UFW
  5. Instalacja i konfiguracja serwerów baz danych
  6. Instalacja dodatkowych narzędzi i programów
  7. Dostosowywanie ustawień systemu Ubuntu
  8. Konfiguracja automatycznych kopii zapasowych
  9. Monitorowanie systemu i optymalizacja wydajności
  10. Ostateczne wskazówki dotyczące systemu Ubuntu gotowego do produkcji

1. Aktualizacja Ubuntu przed instalacją czegokolwiek

Przed dotknięciem pojedynczego pakietu zawsze doprowadź 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 -y

Co 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.

> Wskazówka Pro: Na świeżo aprowizowanym serwerze — szczególnie jeśli uruchamiasz Ubuntu na Dedicated Server — ten krok jest niezbędny. Przestarzałe pakiety to jeden z najczęstszych wektorów naruszeń bezpieczeństwa.

Po uaktualnieniu uruchom ponownie, jeśli jądro zostało zaktualizowane:

sudo reboot

2. Instalacja niezbędnych komponentów

Moc Ubuntu tkwi w jego rozszerzalności. Poniższe podsekcje obejmują najkrytyczniejsze 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 -y

Zweryfikuj instalację:

gcc --version
make --version

Ten 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 narzędzie branżowe do zarządzania kodem źródłowym, wspólnego rozwoju i potoków wdrażania.

sudo apt install git -y

Po instalacji skonfiguruj swoją globalną tożsamość:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Zweryfikuj konfigurację:

git config --list

Opcjonalnie, ale zalecane: Ustaw domyślną nazwę gałęzi na main aby dostosować się do nowoczesnych konwencji:

git config --global init.defaultBranch main

2.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 -y

Szybkie przykłady użycia:

# Download a file with wget
wget https://example.com/file.tar.gz

# Test an API endpoint with curl
curl -I https://example.com

Dodatkowe przydatne narzędzia diagnostyczne sieci:

sudo apt install net-tools dnsutils traceroute -y
  • net-tools — Zapewnia ifconfig, netstat i powiązane polecenia.
  • dnsutils — Zawiera dig i nslookup do rozwiązywania problemów z DNS.
  • traceroute — Śledzi ścieżkę sieciową do zdalnego hosta.

2.4. Edytory tekstu

Każdy administrator systemu potrzebuje niezawodnego edytora tekstu z wiersza poleceń. Ubuntu obsługuje kilka opcji w zależności od preferencji i przepływu pracy.

Nano (przyjazny dla początkujących):

sudo apt install nano -y

Vim (potężny, wysoce konfigurowalny):

sudo apt install vim -y

Emacs (bogaty w funkcje, rozszerzalny):

sudo apt install emacs -y

> Rekomendacja: W środowiskach serwerowych Vim jest najbardziej uniwersalnie dostępną i zdolną opcją. Zainwestuj czas w naukę jego podstawowych poleceń — znacznie przyspieszy to Twój przepływ pracy.

2.5. Instalacja serwera WWW

Serwer WWW jest niezbędny do hostowania witryn internetowych, aplikacji internetowych i API. Dwa dominujące wybory na Ubuntu to Nginx i Apache.

#### Instalacja Nginx (Zalecane dla wysokiej wydajności)

sudo apt install nginx -y

Uruchom i włącz Nginx, aby uruchamiał się automatycznie przy starcie:

sudo systemctl start nginx
sudo systemctl enable nginx

Zweryfikuj, że działa:

sudo systemctl status nginx

Przetestuj konfigurację przed przeładowaniem:

sudo nginx -t

#### Instalacja Apache

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2

Nginx vs. Apache — Który wybrać?

FunkcjaNginxApache
Wydajność pod obciążeniemDoskonała (sterowana zdarzeniami)Dobra (oparta na procesach/wątkach)
Serwowanie plików statycznychBardzo szybkieSzybkie
Obsługa .htaccessNieTak
Ekosystem modułówRosnącyRozległy
Użycie pamięciNiższeWyższe

W przypadku większości nowoczesnych wdrożeń — szczególnie w środowiskach chmurowych VPS Hosting — Nginx jest preferowanym wyborem ze względu na lepszą obsługę równoczesnych połączeń i niższe zużycie pamięci.

3. Konfiguracja repozytoriów oprogramowania

Instalacja domyślna Ubuntu włącza tylko repozytoria Main i Restricted. Aby uzyskać dostęp do znacznie szerszego zakresu oprogramowania, powinieneś włączyć repozytoria Universe i Multiverse.

Metoda 1: Korzystanie z GUI (Desktop Ubuntu)

  1. Otwórz Software & Updates z menu aplikacji.
  2. Na karcie Ubuntu Software zaznacz pola dla Universe i Multiverse.
  3. 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 update

Przegląd repozytoriów:

RepozytoriumZawartość
MainOficjalnie wspierane oprogramowanie open-source
RestrictedSterowniki własnościowe z oficjalnym wsparciem
UniverseOprogramowanie open-source utrzymywane przez społeczność
MultiverseOprogramowanie z ograniczeniami licencyjnymi

Dodawanie PPA innych firm

W przypadku oprogramowania niedostępnego w oficjalnych repozytoriach możesz dodać Personal Package Archives (PPA):

sudo add-apt-repository ppa:repository-name/ppa
sudo apt update
sudo apt install package-name

> Uwaga bezpieczeństwa: Dodawaj tylko PPA ze zaufanych, dobrze znanych źródeł. Repozytoria innych firm mogą wprowadzić niezweryfikowane oprogramowanie do systemu.

4. Instalacja i konfiguracja zapory sieciowej za pomocą UFW

Ubuntu jest wyposażone w UFW (Uncomplicated Firewall), przyjazny dla użytkownika interfejs dla iptables. Prawidłowa konfiguracja zapory sieciowej to jeden z najważniejszych kroków bezpieczeństwa dla każdego serwera dostępnego w Internecie.

Włącz UFW

sudo ufw enable

Zezwól na niezbędne usługi

Zawsze zezwól na SSH przed włączeniem zapory, aby uniknąć zablokowania się:

sudo ufw allow ssh

Lub określ port jawnie:

sudo ufw allow 22/tcp

Zezwól na ruch HTTP i HTTPS dla serwerów WWW:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Zezwól na określone profile aplikacji:

sudo ufw allow 'Nginx Full'
# or
sudo ufw allow 'Apache Full'

Sprawdź status zapory

sudo ufw status verbose

Dodatkowe 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ą kręgosłupem praktycznie każdej aplikacji internetowej. Ubuntu obsługuje wszystkie główne systemy baz danych relacyjnych i NoSQL za pośrednictwem repozytoriów pakietów.

5.1. Instalacja MySQL

MySQL to najszerzej wdrażana na świecie relacyjna baza danych open-source.

sudo apt install mysql-server -y

Po instalacji uruchom skrypt wzmacniania bezpieczeństwa:

sudo mysql_secure_installation

Ten interaktywny skrypt będzie:

  • Ustawiać hasło root (lub weryfikować 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 mysql

Zweryfikuj, że usługa działa:

sudo systemctl status mysql

Połącz się z powłoką MySQL:

sudo mysql -u root -p

5.2. Instalacja MariaDB (alternatywa kompatybilna z MySQL)

MariaDB to rozwidlenie MySQL opracowane 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 mariadb

5.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 -y

Uruchom i włącz PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

Przełącz się na użytkownika administracyjnego PostgreSQL i otwórz powłokę:

sudo -i -u postgres
psql

Utwó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;
q

6. Instalacja dodatkowych narzędzi i programów

Poza podstawami, następujące narzędzia dramatycznie poprawiają Twoją 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 deweloperskim, przejściowym i produkcyjnym.

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

Dodaj swojego użytkownika do grupy Docker, aby uruchamiać polecenia bez sudo:

sudo usermod -aG docker $USER
newgrp docker

Zweryfikuj, że Docker działa:

docker run hello-world

W przypadku wdrożeń produkcyjnych rozważ również zainstalowanie Docker Compose:

sudo apt install docker-compose -y

htop — Interaktywna przeglądarka procesów

htop zapewnia widok procesów systemowych w czasie rzeczywistym, kolorowy, użycia CPU, zużycia pamięci i więcej — znacznie lepszy niż standardowe polecenie top.

sudo apt install htop -y
htop

Kluczowe skróty htop:

  • F6 — Sortuj procesy według kolumny
  • F9 — Zabij proces
  • F10 — Wyjdź
  • / — Wyszukaj proces

Tmux — Terminal Multiplexer

Tmux pozwala tworzyć, zarządzać i utrwalać wiele sesji terminalowych w ramach jednego połączenia SSH — nieocenione dla długotrwałych zadań na serwerach zdalnych.

sudo apt install tmux -y

Niezbędne 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 mysession

Dodatkowe zalecane 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 -y

7. Dostosowywanie ustawień systemu Ubuntu

7.1. Włączanie automatycznych aktualizacji bezpieczeństwa

Utrzymywanie systemu w łatach jest krytyczne — szczególnie na publicznie dostępnych serwerach. Pakiet unattended-upgrades Ubuntu automatyzuje ten proces.

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Aby dostosować zachowanie, edytuj plik konfiguracyjny:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Kluczowe ustawienia do przejrzenia:

  • Unattended-Upgrade::Allowed-Origins — Zdefiniuj, które repozytoria wyzwalają automatyczne aktualizacje.
  • Unattended-Upgrade::Automatic-Reboot — Ustaw na true aby zezwolić na automatyczne ponowne uruchomienia po aktualizacjach jądra.
  • Unattended-Upgrade::Mail — Skonfiguruj powiadomienia e-mail dotyczące aktywności aktualizacji.

7.2. Zarządzanie aplikacjami startowymi (Desktop Ubuntu)

Kontrolowanie, które aplikacje uruchamiają się przy logowaniu, pomaga zmniejszyć czas rozruchu i zaoszczędzić zasoby systemowe.

  1. Wyszukaj Startup Applications w menu aplikacji GNOME.
  2. Przejrzyj listę włączonych programów startowych.
  3. Wyłącz wszystkie aplikacje, których nie potrzebujesz przy logowaniu.
  4. Użyj przycisku Add, aby zarejestrować nowe skrypty startowe 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=enabled

7.3. Konfiguracja 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/London

7.4. Konfiguracja SSH dla bezpiecznego dostępu zdalnego

Jeśli zarządzasz serwerem zdalnym, wzmacnianie konfiguracji SSH jest najważniejsze.

sudo nano /etc/ssh/sshd_config

Zalecane 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 3

Po 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 się.

8. Konfiguracja automatycznych kopii zapasowych

Utrata danych jest katastrofalna. Niezależnie od tego, czy uruchamiasz projekt osobisty, czy aplikację krytyczną dla biznesu, automatyczne kopie zapasowe są niezbędne.

Korzystanie z wbudowanego narzędzia kopii zapasowej Ubuntu (Desktop)

  1. Wyszukaj Backups (Déjà Dup) w menu aplikacji.
  2. Skonfiguruj miejsce docelowe kopii zapasowej: dysk zewnętrzny, udział sieciowy lub magazyn w chmurze.
  3. Ustaw harmonogram kopii zapasowych na karcie Scheduling.
  4. Włącz Automatic Backup i skonfiguruj okresy przechowywania.

Kopie zapasowe z wiersza poleceń za pomocą rsync (Zalecane dla serwerów)

rsync to złoty standard 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 -e

Dodaj codzienne zadanie kopii zapasowej o 2:00 AM:

0 2 * * * rsync -avz /var/www/ /backup/www/ >> /var/log/backup.log 2>&1

Najlepsze 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, wykonują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 pośrednictwem:

gnome-system-monitor

htop (Command Line):

htop

vmstat — Virtual Memory Statistics:

vmstat 1 10

iostat — CPU and I/O Statistics:

sudo apt install sysstat -y
iostat -x 1 5

free — Memory Usage:

free -h

df — Disk Space Usage:

df -h

netstat / ss — Network Connections:

ss -tuln

9.1. Konfiguracja monitorowania systemu za pomocą Prometheus i Node Exporter

W środowiskach produkcyjnych prawidłowy stos monitorowania zapewnia dane historyczne, alerty i pulpity nawigacyjne.

###PPT_

15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij