Skip to content
VDS · Sajtovi i veb serveri

Apache: instalacija i virtuelni hostovi

Instalacija Apache-a na VPS, podešavanje virtuelnih hostova i modula i rešavanje čestih konflikata sa Nginx-om na portu 80.

Ažurirano 23. avgust 2026.

Apache biraš kada ti treba .htaccess, stari CMS ili gotov vodič od developera aplikacije. Troši više memorije od Nginx-a, ali na VDS-1 sa jednim malim sajtom to nećeš primetiti.

Instalacija

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

Naziv servisa se razlikuje: apache2 na Debianu i Ubuntu, httpd u RHEL familiji. I direktorijumi konfiguracije su drugačiji — /etc/apache2 i /etc/httpd.

Provera:

systemctl status apache2
curl -I http://127.0.0.1

Virtuelni host

Fajl /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>

Uključivanje i provera:

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

AllowOverride All je potreban samo ako zaista koristiš .htaccess. Ako ne, postavi None: Apache će prestati da traži te fajlove u svakom direktorijumu pri svakom zahtevu.

Moduli

a2enmod rewrite headers ssl
systemctl restart apache2

Da vidiš šta je uključeno — apache2ctl -M. Ne uključuj sve: svaki modul se učitava u svaki worker proces.

Za PHP koristi PHP-FPM umesto zastarelog mod_php: PHP-FPM.

Apache i Nginx zajedno

Oba servera podrazumevano slušaju na portu 80, pa drugi jednostavno neće startovati i prijaviće Address already in use. Imaš dve opcije:

  • zadrži samo jedan server;
  • stavi Nginx ispred, prebaci Apache na Listen 127.0.0.1:8080 i prosleđuj mu zahteve — vidi reverse proxy.

Da vidiš šta koristi port:

ss -tulpn | grep :80

Česte greške

SimptomUzrok
AH00558: Could not reliably determine ... server's fully qualified domain nameServerName nije postavljen — to je upozorenje, ali ga ipak postavi
.htaccess ne radiAllowOverride None u Directory bloku
Servis neće da startuje posle izmeneSintaksa — uvek pokreni apachectl configtest pre reload-a
403 na direktorijumuNedostaje Require all granted ili www-data nema dozvole

Logovi: /var/log/apache2/ (Debian, Ubuntu) ili /var/log/httpd/ (AlmaLinux).

Kopiraj konfiguraciju pre svake izmene: cp file file.bak. Na virtuelnoj mašini je vraćanje lakše nego pokušavanje da se setiš šta si menjao pre sat vremena.