Skip to content
VDS · Weby a webové servery

Apache: inštalácia a virtuálne hosty

Inštalácia Apache na VPS, konfigurácia virtuálnych hostov a modulov a riešenie bežných konfliktov s Nginx na porte 80.

Aktualizované 23. augusta 2026

Apache zvolíš vtedy, keď potrebuješ .htaccess, starý CMS alebo hotový návod od vývojára aplikácie. Je náročnejší na pamäť než Nginx, ale na VDS-1 s jednou malou stránkou to nepocítiš.

Inštalácia

apt update && apt install -y apache2        # Debian, Ubuntu
dnf install -y httpd && systemctl enable --now httpd   # AlmaLinux, CentOS Stream

Názov služby sa líši: apache2 na Debiane a Ubuntu, httpd v rodine RHEL. Odlišné sú aj adresáre s konfiguráciou — /etc/apache2 a /etc/httpd.

Overenie:

systemctl status apache2
curl -I http://127.0.0.1

Virtuálny host

Súbor /etc/apache2/sites-available/example.ru.conf:

<VirtualHost *:80>
    ServerName example.ru
    ServerAlias www.example.ru
    DocumentRoot /var/www/example.ru

    <Directory /var/www/example.ru>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/example.ru-error.log
    CustomLog ${APACHE_LOG_DIR}/example.ru-access.log combined
</VirtualHost>

Zapnutie a kontrola:

a2ensite example.ru
a2dissite 000-default
apachectl configtest && systemctl reload apache2

AllowOverride All potrebuješ len vtedy, ak .htaccess naozaj používaš. Ak nie, nastav None: Apache prestane tieto súbory hľadať v každom adresári pri každej požiadavke.

Moduly

a2enmod rewrite headers ssl
systemctl restart apache2

Zoznam zapnutých zobrazíš cez apache2ctl -M. Nezapínaj všetko: každý modul sa načítava do každého pracovného procesu.

Pre PHP použi PHP-FPM namiesto zastaraného mod_php: PHP-FPM.

Apache a Nginx spolu

Oba servery štandardne počúvajú na porte 80, takže druhý jednoducho nenastartuje a vyhodí Address already in use. Máš dve možnosti:

  • ponechať len jeden server;
  • postaviť pred Apache Nginx, prepnúť Apache na Listen 127.0.0.1:8080 a proxovať naň — pozri reverse proxy.

Čo port využíva, zistíš takto:

ss -tulpn | grep :80

Časté chyby

PríznakPríčina
AH00558: Could not reliably determine ... server's fully qualified domain nameServerName nie je nastavené — je to len upozornenie, ale aj tak ho nastav
.htaccess nefungujeAllowOverride None v bloku Directory
Služba po úprave nenastartujeSyntax — pred reloadom vždy spusti apachectl configtest
403 na adresáriChýba Require all granted alebo www-data nemá oprávnenia

Logy: /var/log/apache2/ (Debian, Ubuntu) alebo /var/log/httpd/ (AlmaLinux).

Pred každou úpravou si skopíruj konfiguráciu: cp file file.bak. Na virtuálnom stroji je návrat späť jednoduchší než spomínať, čo si pred hodinou zmenil.