Web server z maliní
📖 Malina jako profesionální webserver: Od čistého disku po vlastní CMS
Tento průvodce vás provede stavbou moderního webového serveru na Raspberry Pi. Jako základ použijeme Caddy (server s automatickým HTTPS), PHP 8.4 a odlehčený redakční systém Bludit.
1. Příprava půdy (Hardware a OS)
Pro seriózní provoz zapomeňte na SD karty. Použijte SSD disk připojený přes USB 3.0.
OS: Debian Bookworm (64-bit Lite verze).
První kroky: Po instalaci a SSH přihlášení aktualizujte systém:
Bash
sudo apt update && sudo apt upgrade -y
2. Instalace motoru (PHP 8.4)
Většina moderních webů (jako Bludit, WordPress nebo Grav) běží na jazyku PHP. My použijeme nejnovější verzi 8.4.
Přidání repozitáře:
Bash
sudo apt install -y apt-transport-https lsb-release ca-certificates curl
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
Instalace PHP a modulů:
Bash
sudo apt install php8.4-fpm php8.4-cli php8.4-gd php8.4-curl php8.4-mbstring php8.4-xml php8.4-zip -y
3. Instalace serveru Caddy
Caddy je moderní náhrada za Apache nebo Nginx. Jeho největší výhoda? Sám si zařídí a obnovuje SSL certifikáty (HTTPS).
Bash
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
4. Nasazení obsahu (Příklad: Bludit)
Ať už instalujete hotové CMS nebo vlastní HTML, postup je podobný: soubory musí patřit webovému serveru.
Stažení a rozbalení:
Bash
cd /tmp
wget https://www.bludit.com/releases/bludit-3-15-0.zip
unzip bludit-3-15-0.zip
sudo cp -R bludit-3-15-0/. /var/www/html/
Nastavení práv (Klíčový krok): Server Caddy běží pod uživatelem www-data. Aby mohl web zobrazit a ukládat obrázky, musí složku vlastnit:
Bash
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 775 /var/www/html
5. Konfigurace Caddy (Caddyfile)
Caddyfile je mozek vašeho serveru. Nachází se v /etc/caddy/Caddyfile. Takhle vypadá ideální konfigurace pro moderní PHP web a reverzní proxy pro další zařízení (např. XMPP server):
Fragment kódu
tvoje-domena.duckdns.org {
# 1. Cesta k webu
root * /var/www/html
# 2. PHP motor
php_fastcgi unix//run/php/php8.4-fpm.sock
# 3. Podpora pro statické soubory
file_server
# 4. "Hezká URL" pro CMS (Bludit/Grav)
@bludit {
not file {path}
path_regexp bludit ^/(.*)$
}
rewrite @bludit /index.php?{query}
# 5. Reverzní proxy (např. nahrávání pro XMPP na jiné Malině)
handle_path /upload/* {
reverse_proxy https://192.168.1.100:5443 {
transport http {
tls_insecure_skip_verify
}
}
}
}
Aktivujte příkazem: sudo systemctl restart caddy
6. Jak na instalaci jiných systémů?
Pokud místo Bluditu chcete něco jiného, logika zůstává:
Vlastní HTML: Stačí nahrát .html a .css soubory do /var/www/html a v Caddyfile nechat jen root a file_server.
Jiné PHP CMS (Grav, WordPress): Postup stažení a práv je stejný. V Caddyfile stačí upravit sekci rewrite podle dokumentace daného systému.
Témata a pluginy: Vždy je nahrávejte do příslušných složek (např. bl-themes) a vždy poté znovu spusťte chown -R www-data:www-data, aby k nim server mohl.
Tip pro pokročilé: Pokud provozujete více služeb na různých zařízeních, Caddy slouží jako "vstupní brána". Díky reverse_proxy můžete mít jeden certifikát a jednu doménu, ale obsah může fyzicky běžet na deseti různých malinách v síti.