🚀 Kompletny przewodnik: Instalacja Nginx, MariaDB i PHP-FPM na Fedora 40
Szczegółowy, krok po kroku przewodnik instalacji i konfiguracji nowoczesnego stosu technologicznego LEMP (Linux, Nginx, MariaDB, PHP) na najnowszej dystrybucji Fedora 40. Ten kompletny tutorial przeprowadzi Cię przez cały proces - od czystej instalacji systemu po w pełni zoptymalizowane środowisko hostingowe gotowe do uruchomienia Twoich aplikacji webowych.
⚡ Ekspresowe Podsumowanie:
- Przygotowanie systemu Fedora 40: Aktualizacja i instalacja niezbędnych pakietów.
- Instalacja i konfiguracja Nginx: Wydajny serwer WWW z obsługą HTTP/2 i optymalnymi ustawieniami bezpieczeństwa.
- Wdrożenie MariaDB: Konfiguracja stabilnej, wydajnej bazy danych z odpowiednim zabezpieczeniem.
- Instalacja PHP-FPM: Optymalnie skonfigurowany PHP z obsługą najpopularniejszych rozszerzeń.
🗺️ Spis Treści - Twoja Mapa Drogowa
📋 Przygotowanie systemu Fedora 40
Zanim przystąpimy do instalacji stosu LEMP, należy odpowiednio przygotować system Fedora 40, aby zapewnić stabilną i bezpieczną bazę dla naszego środowiska serwerowego.
Aktualizacja systemu
Pierwszym krokiem jest zawsze aktualizacja systemu do najnowszej wersji. Fedora 40 wykorzystuje menedżer pakietów DNF, który jest następcą tradycyjnego YUM:
sudo dnf update -y
sudo dnf upgrade -y
Po zakończeniu aktualizacji zalecane jest ponowne uruchomienie systemu:
sudo systemctl reboot
Instalacja podstawowych narzędzi
Następnie zainstalujmy podstawowe narzędzia, które będą przydatne podczas konfiguracji i zarządzania naszym serwerem:
sudo dnf install -y wget curl nano vim-enhanced htop net-tools git dnf-utils
Konfiguracja zapory sieciowej
Fedora domyślnie korzysta z firewalld jako zapory sieciowej. Musimy otworzyć porty dla usług webowych:
# Włączenie zapory sieciowej i uruchomienie jej podczas startu systemu
sudo systemctl enable firewalld
sudo systemctl start firewalld
# Otwarcie portów dla HTTP i HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# Zastosowanie zmian
sudo firewall-cmd --reload
Konfiguracja SELinux
Fedora korzysta z SELinux (Security-Enhanced Linux) do dodatkowego zabezpieczenia systemu. Zamiast wyłączać SELinux (co jest często sugerowane, ale nie zalecane z punktu widzenia bezpieczeństwa), skonfigurujemy go poprawnie:
# Instalacja narzędzi SELinux
sudo dnf install -y policycoreutils-python-utils setroubleshoot
# Ustawienie odpowiednich kontekstów SELinux dla WWW
sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_network_connect_db 1
✨ Pro Tip: Utrzymanie SELinux w trybie enforcing (wymuszającym) znacząco zwiększa bezpieczeństwo serwera, choć może wymagać dodatkowej konfiguracji. Warto poświęcić czas na zrozumienie podstaw działania SELinux zamiast go wyłączać.
💨 Instalacja i konfiguracja Nginx
Nginx to wydajny serwer WWW, często wybierany jako alternatywa dla Apache ze względu na lepszą wydajność, szczególnie przy dużym obciążeniu.
Instalacja Nginx
Fedora zawiera Nginx w swoich domyślnych repozytoriach, więc instalacja jest prosta:
sudo dnf install -y nginx
Konfiguracja podstawowa Nginx
Po instalacji Nginx, uruchommy usługę i skonfigurujmy ją do automatycznego startu przy uruchamianiu systemu:
sudo systemctl enable nginx
sudo systemctl start nginx
Sprawdźmy, czy Nginx działa poprawnie:
sudo systemctl status nginx
Powinieneś zobaczyć komunikat, że usługa jest aktywna (running).
Dostosowanie głównego pliku konfiguracyjnego
Otwórz główny plik konfiguracyjny Nginx:
sudo nano /etc/nginx/nginx.conf
Zalecam wprowadzenie następujących zmian dla optymalizacji wydajności:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
# Otwarcie odpowiedniej liczby plików
worker_rlimit_nofile 65535;
events {
worker_connections 1024;
multi_accept on;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
# Gzip Settings
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
# SSL Settings
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_session_tickets off;
# Includes for virtual hosts, etc.
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;
}
Po wprowadzeniu zmian, zapisz plik i utwórz katalog dla konfiguracji wirtualnych hostów:
sudo mkdir -p /etc/nginx/sites-available /etc/nginx/sites-enabled
Zmodyfikuj główny plik konfiguracyjny, aby uwzględnić te katalogi (jeśli nie dodałeś już tej linii):
sudo nano /etc/nginx/nginx.conf
Upewnij się, że na końcu sekcji http
znajduje się:
include /etc/nginx/sites-enabled/*.conf;
Konfiguracja domyślnej strony
Utwórz konfigurację domyślnej strony w katalogu sites-available:
sudo nano /etc/nginx/sites-available/default.conf
Wklej następującą konfigurację:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# Konfiguracja dla PHP (dodamy później)
# Ukrycie plików .htaccess i innych ukrytych plików
location ~ /\.ht {
deny all;
}
}
Utwórz link symboliczny, aby aktywować konfigurację:
sudo ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/
Sprawdź, czy konfiguracja Nginx jest poprawna:
sudo nginx -t
Jeśli wszystko jest w porządku, zrestartuj Nginx:
sudo systemctl restart nginx
Utworzenie katalogu dla strony
Utwórz katalog dla plików WWW i ustaw odpowiednie uprawnienia:
sudo mkdir -p /var/www/html
sudo chown -R nginx:nginx /var/www/html
Utwórz prostą stronę testową:
echo '<html><body><h1>Witaj na serwerze Nginx na Fedora 40!</h1></body></html>' | sudo tee /var/www/html/index.html
Teraz, gdy otworzysz przeglądarkę i przejdziesz do adresu IP serwera, powinieneś zobaczyć komunikat powitalny.
🗃️ Instalacja i konfiguracja MariaDB
MariaDB to fork MySQL, który oferuje lepszą wydajność i dodatkowe funkcje. Jest to doskonały wybór dla aplikacji webowych wymagających relacyjnej bazy danych.
Instalacja MariaDB
Zainstaluj MariaDB z repozytoriów Fedora:
sudo dnf install -y mariadb-server
Uruchomienie i wstępna konfiguracja
Uruchom usługę MariaDB i włącz jej automatyczne uruchamianie podczas startu systemu:
sudo systemctl enable mariadb
sudo systemctl start mariadb
Uruchom skrypt zabezpieczający instalację MariaDB:
sudo mysql_secure_installation
Podczas wykonywania skryptu, odpowiedz na pytania:
- Wprowadź aktualne hasło root (domyślnie brak): naciśnij Enter
- Ustaw hasło dla użytkownika root: Y, a następnie wprowadź silne hasło
- Usuń anonimowych użytkowników: Y
- Wyłącz logowanie roota z zewnątrz: Y
- Usuń testową bazę danych: Y
- Przeładuj tabele uprawnień: Y
Optymalizacja wydajności MariaDB
Dla lepszej wydajności MariaDB, możemy dostosować jej konfigurację. Utwórz nowy plik konfiguracyjny:
sudo nano /etc/my.cnf.d/server-tuning.cnf
Wklej następującą konfigurację, dostosowując parametry do specyfikacji Twojego serwera:
[mysqld]
# Podstawowe ustawienia
innodb_buffer_pool_size = 256M # Około 70% całkowitej pamięci RAM dla serwerów dedykowanych MariaDB
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
# Optymalizacja zapytań
query_cache_size = 64M
query_cache_limit = 2M
query_cache_type = 1
# Ustawienia połączeń
max_connections = 150
thread_cache_size = 8
table_open_cache = 4000
# Ustawienia bezpieczeństwa
local-infile = 0
Uwaga: Powyższe ustawienia są przykładowe i zakładają serwer z około 1GB RAM. Dla serwerów z większą ilością pamięci, wartości powinny być odpowiednio zwiększone.
Po zapisaniu pliku, zrestartuj MariaDB:
sudo systemctl restart mariadb
Tworzenie bazy danych i użytkownika
Teraz utwórzmy bazę danych i użytkownika dla naszej aplikacji:
sudo mysql -u root -p
Po zalogowaniu do MariaDB, wykonaj następujące polecenia SQL:
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
🔒 Ważne: Zastąp 'secure_password' własnym, silnym hasłem. Używaj kombinacji wielkich i małych liter, cyfr oraz znaków specjalnych.
🔧 Instalacja i konfiguracja PHP-FPM
PHP-FPM (FastCGI Process Manager) jest alternatywą dla standardowego PHP, oferującą lepszą wydajność, szczególnie w połączeniu z Nginx.
Instalacja PHP-FPM i modułów
Fedora 40 domyślnie zawiera PHP 8.2. Zainstalujmy PHP-FPM i najpopularniejsze moduły:
sudo dnf install -y php-fpm php-cli php-common php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-json php-intl
Podstawowa konfiguracja PHP-FPM
Otwórz główny plik konfiguracyjny PHP:
sudo nano /etc/php.ini
Wprowadź następujące optymalizacje:
; Ogólne ustawienia
memory_limit = 128M
max_execution_time = 60
max_input_time = 60
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Europe/Warsaw
expose_php = Off
; Ustawienia błędów
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php-fpm/error.log
; Ustawienia sesji
session.gc_maxlifetime = 1440
session.save_path = "/var/lib/php/session"
Uwaga: Ustaw
date.timezone
zgodnie z Twoją lokalizacją.
Następnie skonfigurujmy PHP-FPM. Otwórz plik konfiguracyjny:
sudo nano /etc/php-fpm.d/www.conf
Dokonaj następujących zmian:
; Zmień użytkownika i grupę na nginx
user = nginx
group = nginx
; Ustawienia procesów
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
; Zmień socket na Unix socket zamiast TCP
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Utwórz katalog na logi PHP-FPM:
sudo mkdir -p /var/log/php-fpm
sudo chown -R nginx:nginx /var/log/php-fpm
Uruchom PHP-FPM i włącz automatyczne uruchamianie:
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
Integracja PHP-FPM z Nginx
Teraz zaktualizujmy konfigurację Nginx, aby obsługiwał pliki PHP poprzez PHP-FPM. Otwórz plik konfiguracyjny domyślnej strony:
sudo nano /etc/nginx/sites-available/default.conf
Zaktualizuj konfigurację, dodając obsługę PHP:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
# Konfiguracja PHP-FPM
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
# Ukrycie plików .htaccess i innych ukrytych plików
location ~ /\.ht {
deny all;
}
}
Sprawdź konfigurację Nginx i zrestartuj usługę:
sudo nginx -t
sudo systemctl restart nginx
Testowanie PHP
Utwórz plik testowy PHP:
echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/info.php
Zmień właściciela pliku:
sudo chown nginx:nginx /var/www/html/info.php
Teraz otwórz przeglądarkę i przejdź do adresu:
http://twój_serwer_lub_localhost/info.php
Powinieneś zobaczyć stronę z informacjami o konfiguracji PHP. Jeśli strona się wyświetla, Nginx poprawnie przekazuje żądania PHP do PHP-FPM.
🔒 Ważne: Po przetestowaniu instalacji, usuń plik info.php ze względów bezpieczeństwa:
sudo rm /var/www/html/info.php
🔐 Zabezpieczanie stosu LEMP na Fedora 40
Teraz, gdy mamy działający stos LEMP, warto poświęcić czas na dodatkowe zabezpieczenia naszego serwera.
Dodatkowe zabezpieczenia Nginx
Utwórz plik z dodatkowymi zabezpieczeniami dla Nginx:
sudo nano /etc/nginx/conf.d/security.conf
Wklej następującą konfigurację:
# Zabezpieczenia nagłówków HTTP
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), interest-cohort=()" always;
# Ogranicz metody HTTP
if ($request_method !~ ^(GET|HEAD|POST|PUT|DELETE)$) {
return 444;
}
# Blokuj dostęp do plików ukrytych
location ~ /\.(?!well-known) {
deny all;
}
Sprawdź konfigurację i zrestartuj Nginx:
sudo nginx -t
sudo systemctl restart nginx
Konfiguracja SELinux dla stosu LEMP
SELinux może czasami blokować standardowe operacje stosu LEMP. Ustaw odpowiednie konteksty:
# Dla Nginx
sudo chcon -R -t httpd_sys_content_t /var/www/html
sudo setsebool -P httpd_can_network_connect 1
# Dla PHP-FPM
sudo setsebool -P httpd_can_network_connect_db 1
# Dla MariaDB
sudo restorecon -v /var/lib/mysql/mysql.sock
Jeśli napotkasz problemy z SELinux, możesz sprawdzić logi:
sudo grep "SELinux is preventing" /var/log/audit/audit.log | audit2why
Automatyczne aktualizacje bezpieczeństwa
Skonfiguruj automatyczne aktualizacje bezpieczeństwa, aby system był zawsze aktualny:
sudo dnf install -y dnf-automatic
Edytuj plik konfiguracyjny:
sudo nano /etc/dnf/automatic.conf
Zmień następujące parametry:
[commands]
upgrade_type = security
random_sleep = 0
[emitters]
system_name = Fedora40_LEMP_Server
[email]
email_from = root@localhost
email_to = twój_email@domena.pl
email_host = localhost
[base]
debuglevel = 1
Włącz i uruchom usługę:
sudo systemctl enable --now dnf-automatic.timer
Monitoring serwera
Warto zainstalować podstawowe narzędzia monitorujące:
sudo dnf install -y fail2ban logwatch
Skonfiguruj Fail2ban dla ochrony przed atakami bruteforce:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Dostosuj sekcję [DEFAULT]
:
[DEFAULT]
bantime = 86400
findtime = 600
maxretry = 5
Włącz ochronę SSH:
[sshd]
enabled = true
Uruchom Fail2ban:
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
📊 Optymalizacja wydajności stosu LEMP
Ostatnim krokiem jest optymalizacja wydajności naszego stosu LEMP, aby zapewnić płynne działanie aplikacji webowych.
Włączenie buforowania opcode PHP
Buforowanie opcode znacząco przyspiesza działanie aplikacji PHP:
sudo nano /etc/php.d/10-opcache.ini
Ustaw następujące parametry:
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.save_comments=1
opcache.fast_shutdown=1
Optymalizacja pamięci podręcznej Nginx
Dodaj konfigurację cache w Nginx:
sudo mkdir -p /var/cache/nginx/{fastcgi_cache,proxy_cache}
sudo chown -R nginx:nginx /var/cache/nginx/
Edytuj główny plik konfiguracyjny Nginx:
sudo nano /etc/nginx/nginx.conf
Dodaj w sekcji http:
# Fastcgi Cache
fastcgi_cache_path /var/cache/nginx/fastcgi_cache levels=1:2 keys_zone=PHPFPM:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
# Proxy Cache
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:2 keys_zone=PROXY:100m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
Następnie w konfiguracji domyślnej strony dodaj:
sudo nano /etc/nginx/sites-available/default.conf
W sekcji lokalizacji PHP:
# Cache dla PHP
set $skip_cache 0;
# Pomiń cache dla pewnych stron
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
# Pomiń cache dla logowania i komentarzy
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
fastcgi_cache PHPFPM;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
Konfiguracja limitów systemowych
Dla lepszej wydajności, dostosuj limity systemowe:
sudo nano /etc/security/limits.conf
Dodaj następujące linie:
nginx soft nofile 65535
nginx hard nofile 65535
mysql soft nofile 65535
mysql hard nofile 65535
Zaktualizuj też systemd:
sudo mkdir -p /etc/systemd/system/nginx.service.d/
sudo nano /etc/systemd/system/nginx.service.d/limits.conf
Dodaj:
[Service]
LimitNOFILE=65535
To samo dla MariaDB:
sudo mkdir -p /etc/systemd/system/mariadb.service.d/
sudo nano /etc/systemd/system/mariadb.service.d/limits.conf
Z tą samą zawartością.
Przeładuj konfigurację systemd i zrestartuj usługi:
sudo systemctl daemon-reload
sudo systemctl restart nginx mariadb php-fpm
🧪 Testowanie i walidacja instalacji
Po zakończeniu instalacji i konfiguracji, warto przetestować nasz stos LEMP, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami.
Sprawdzenie statusu usług
sudo systemctl status nginx
sudo systemctl status mariadb
sudo systemctl status php-fpm
Wszystkie usługi powinny być w stanie "active (running)".
Test funkcjonalności PHP i MariaDB
Utwórz prosty plik PHP do testowania połączenia z bazą danych:
sudo nano /var/www/html/db-test.php
Zawartość pliku (pamiętaj, aby zastąpić dane logowania własnymi):
<?php
$host = 'localhost';
$user = 'myapp_user';
$pass = 'secure_password';
$db = 'myapp';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die('Błąd połączenia: ' . $conn->connect_error);
}
echo 'Połączenie z bazą danych MariaDB działa poprawnie!';
$conn->close();
?>
Zmień właściciela pliku:
sudo chown nginx:nginx /var/www/html/db-test.php
Otwórz przeglądarkę i przejdź do:
http://twój_serwer_lub_localhost/db-test.php
Powinieneś zobaczyć komunikat o poprawnym połączeniu z bazą danych.
🔒 Ważne: Po testach, usuń plik testowy:
sudo rm /var/www/html/db-test.php
Sprawdzenie konfiguracji Nginx
Możesz sprawdzić, czy konfiguracja Nginx jest optymalna, korzystając z narzędzia analizy:
curl -s https://raw.githubusercontent.com/mitchellkrogza/nginx-ultimate-bad-bot-blocker/master/nginx-analyzer.sh > nginx-analyzer.sh
chmod +x nginx-analyzer.sh
sudo ./nginx-analyzer.sh
✅ Checklista po instalacji
Przejdź przez tę listę, aby upewnić się, że wszystko zostało poprawnie skonfigurowane:
- 🔍 Sprawdź, czy wszystkie usługi działają: Nginx, MariaDB, PHP-FPM
- 🔄 Zweryfikuj, czy PHP może połączyć się z MariaDB
- 🔒 Upewnij się, że zostały zastosowane wszystkie zabezpieczenia
- 📊 Sprawdź, czy buforowanie opcode PHP jest aktywne
- 📝 Upewnij się, że logi są poprawnie skonfigurowane
- 🎓 Zweryfikuj, czy SELinux nie blokuje żadnych funkcji
- 📱 Przetestuj swoją aplikację webową, jeśli już ją masz
❓ FAQ - Odpowiedzi na Twoje Pytania
Czy mogę używać PHP 8.3 zamiast domyślnej wersji w Fedora 40?
Tak, możesz zainstalować PHP 8.3 z repozytoriów REMI. Dodaj repozytorium: sudo dnf install -y https://rpms.remirepo.net/fedora/remi-release-40.rpm
, a następnie włącz PHP 8.3: sudo dnf module reset php && sudo dnf module enable php:remi-8.3
.
Jak zaktualizować wszystkie komponenty stosu LEMP jednocześnie?
Komenda sudo dnf update -y nginx mariadb-server php-*
zaktualizuje wszystkie komponenty stosu LEMP.
Czy mogę uruchomić WordPress na tym stosie?
Tak, WordPress doskonale działa na stosie LEMP. Po instalacji WordPress, dodatkowe zabezpieczenia i optymalizacje są zalecane, szczególnie dla plików wp-config.php i .htaccess.
Jak ustawić wirtualne hosty dla wielu stron?
Utwórz nowy plik konfiguracyjny dla każdej domeny w /etc/nginx/sites-available/
a następnie utwórz do niego link symboliczny w /etc/nginx/sites-enabled/
. Pamiętaj o zrestartowaniu Nginx po każdej zmianie.
Jak mogę monitorować wydajność i użycie zasobów przez serwer?
Oprócz podstawowych narzędzi jak htop, możesz zainstalować bardziej zaawansowane rozwiązania jak Prometheus z Grafana lub prostsze rozwiązanie jak Netdata: sudo dnf install -y netdata
a następnie: sudo systemctl enable --now netdata
.
Czy ten stos wspiera strony HTTPS?
Tak, aby skonfigurować HTTPS, możesz użyć Let's Encrypt i certbot: sudo dnf install -y certbot python3-certbot-nginx
a następnie sudo certbot --nginx -d twojadomena.pl
.
🏁 Podsumowanie - Gotowy do działania!
Gratulacje! Pomyślnie zainstalowałeś i skonfigurowałeś kompletny stos LEMP (Linux, Nginx, MariaDB, PHP-FPM) na Fedora 40. Twoje środowisko serwerowe jest teraz:
- Wydajne - dzięki optymalizacjom Nginx, MariaDB i PHP-FPM
- Bezpieczne - z zastosowaniem najlepszych praktyk bezpieczeństwa
- Stabilne - dzięki solidnej bazie Fedora 40 i SELinux
- Gotowe do użycia - dla Twoich aplikacji webowych i stron internetowych
Ten stack zapewnia solidną podstawę dla prawie każdej nowoczesnej aplikacji webowej - od prostych stron HTML, przez CMS-y jak WordPress, Drupal czy Joomla, po zaawansowane frameworki jak Laravel, Symfony czy Yii.
Pamiętaj o regularnych aktualizacjach i monitorowaniu systemu, aby utrzymać wysoką wydajność i bezpieczeństwo Twojego środowiska.
🚀 Potrzebujesz profesjonalnego hostingu opartego na technologii LEMP?
Sprawdź ofertę hostingu VPS w IQHost
Wybierz rozwiązanie, które pozwoli Ci skupić się na rozwoju swojej aplikacji, a nie na zarządzaniu serwerem!
Czy ten artykuł był pomocny?
Twoja strona WordPress działa wolno?
Sprawdź nasz hosting WordPress z ultraszybkimi dyskami NVMe i konfiguracją serwera zoptymalizowaną pod kątem wydajności. Doświadcz różnicy już dziś!
Sprawdź ofertę hostingu