Jak používat Apache na Linuxovém serveru: instalace Apache (apache2/httpd), povolit porty 80/443 ve firewallu, spustit a povolit službu, vytvořit virtuální hostitele (VirtualHosts) pro vaše domény, nasadit soubory webu do kořenových adresářů dokumentů, povolit HTTPS pomocí Let's Encrypt a vyladit moduly, protokolování a výkon (MPM, caching, PHP-FPM) pro vaši pracovní zátěž.
Apache na Linux Serveru je robustní a flexibilní webový server používaný k hostování webových stránek, API a aplikací. V této příručce vám přesně ukážu, jak jej nainstalovat, nakonfigurovat, zabezpečit a optimalizovat. Apache na populárních linuxových distribucích s využitím jednoduchých kroků pro začátečníky a osvědčených postupů z více než 12 let zkušeností s hostingem a servery managezkušenosti s mentem na YouStable.
Co je Apache a proč ho používat?
Apache HTTP server (často jen „Apache„“) je modulární webový server s otevřeným zdrojovým kódem známý pro stabilitu, rozsáhlou dokumentaci a bezkonkurenční flexibilitu prostřednictvím modulů jako mod_ssl, mod_proxy, mod_rewritea MPM (modely workerů), které se přizpůsobují různým pracovním zátěžím. Vyniká na webech řízených .htaccess, starších systémech PHP aplikace a složitá pravidla přepisování.

Vyhledávací cíl pro toto téma je převážně „jak nainstalovat a konfigurovat Apache, vytvořit virtuální hostitele, povolit HTTPS a manage výkon a zabezpečení.“ To vše probereme s příkazy specifickými pro jednotlivé distribuce (Ubuntu/Debian a RHEL/CentOS/AlmaLinux/Rocky).
Předpoklady
- A Linuxový server (Ubuntu, Debian, CentOS, AlmaLinux nebo Rocky Linux)
- Přístup root nebo sudo
- DNS Záznamy A/AAAA odkazující vaše domény na IP adresu serveru
- Port 80 (HTTP) a 443 (HTTPS) je dostupný
instalovat Apache na populárních linuxových distribucích
Ubuntu/Debian (apache2)
sudo apt update
sudo apt install -y apache2
sudo systemctl enable --now apache2
# UFW firewall (if enabled)
sudo ufw allow "Apache Full" # opens 80 and 443
sudo ufw statusUbuntu ve výchozím nastavení povoluje užitečné moduly (např. mime, status). Výchozí webový kořenový adresář je /var/www/htmla výchozí konfigurace webu se nachází v /etc/apache2/sites-available/000-default.conf.
RHEL/CentOS/AlmaLinux/Rocky (httpd)
sudo dnf install -y httpd
sudo systemctl enable --now httpd
# Firewalld
sudo firewall-cmd --add-service=http --add-service=https --permanent
sudo firewall-cmd --reload
# SELinux: ensure correct contexts for web content
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?"
sudo restorecon -Rv /var/wwwSystémy založené na RHEL používají /etc/httpd/conf/httpd.conf plus další konfigurace v /etc/httpd/conf.d/Výchozí webový kořen je /var/www/html.
Ověřit si Apache Běží
systemctl status apache2 # Ubuntu/Debian
systemctl status httpd # RHEL-based
# Test locally
curl -I http://127.0.0.1
# Expect: HTTP/1.1 200 OKOtevřete IP adresu vašeho serveru v prohlížeči a měli byste vidět Apache výchozí stránka. Pokud ne, znovu zkontrolujte pravidla firewallu a stav služby.
Spravovat Apache Služba (systemd)
# Start/stop/restart
sudo systemctl start apache2 # or: httpd
sudo systemctl stop apache2
sudo systemctl restart apache2
# Graceful reload after config changes
sudo systemctl reload apache2
# Test configuration syntax
sudo apachectl configtest # or: sudo httpd -tVytvoření virtuálních hostitelů na základě názvu
Virtuální hostingy vám umožňují provozovat více webových stránek na jednom serveru. Ukažte adresy každé domény DNS na váš server a poté pro každou stránku vytvořte virtuálního hostitele.
Příklad virtuálního hostitele Ubuntu/Debian
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R $USER:$USER /var/www/example.com/public_html
echo "<h1>Hello from example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
sudo tee /etc/apache2/sites-available/example.com.conf >/dev/null <<'EOF'
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
EOF
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2Příklad virtuálního hostitele RHEL/CentOS/AlmaLinux/Rocky
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R apache:apache /var/www/example.com/public_html
echo "<h1>Hello from example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
sudo tee /etc/httpd/conf.d/example.com.conf >/dev/null <<'EOF'
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog logs/example.com-error.log
CustomLog logs/example.com-access.log combined
</VirtualHost>
EOF
sudo systemctl reload httpdPokud SELinux vynucuje, ujistěte se, že kořenový adresář dokumentu má správný kontext a povolte Apache pro připojení k síti, pokud používáte nadřazené služby:
sudo restorecon -Rv /var/www
sudo setsebool -P httpd_can_network_connect onPovolte HTTPS pomocí Let's Encrypt (Certbot)
HTTPS je nezbytný pro bezpečnost a SEO. Zašifrujeme poskytuje bezplatné certifikáty TLS. Zajistěte DNS je na místě a porty 80/443 jsou otevřené.
Ubuntu / Debian
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
# Auto-renewal is installed via systemd timer/cron
sudo certbot renew --dry-runRHEL/CentOS/AlmaLinux/Rocky
sudo dnf install -y certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
sudo systemctl list-timers | grep certbotCertbot může také konfigurovat Přesměrování HTTP na HTTPS automaticky. Pro ruční přepisování povolte mod_rewrite a přidejte pravidlo do svého vhostingu.
# Ubuntu/Debian
sudo a2enmod rewrite headers http2 ssl
sudo systemctl reload apache2
# RHEL-based: ensure modules are loaded by default (ssl, http2)
# Add rewrite rule inside your :443 vhost or a .htaccess if AllowOverride is set
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]přidat PHP a dynamické aplikace (LAMP)
Pro PHP aplikace, použití PHP-FPM s ApacheJe event MPM pro lepší souběžnost. Vyhněte se starším verzí (legacy). mod_php pokud nemáte specifické potřeby.
Ubuntu/Debian (PHP-FPM)
sudo apt install -y php-fpm php-mysql
sudo a2dismod mpm_prefork php*
sudo a2enmod mpm_event proxy_fcgi setenvif
sudo a2enconf php*-fpm
sudo systemctl reload apache2založené na RHEL (PHP-FPM)
sudo dnf install -y php-fpm php-mysqlnd
sudo systemctl enable --now php-fpm
# In your vhost or a conf.d snippet:
# Proxy PHP requests to PHP-FPM socket
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
sudo systemctl reload httpdVložte rychlý testovací soubor pro ověření PHP funguje:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/example.com/public_html/info.phpZáklady posílení zabezpečení
- Skrýt informace o verzi: sada
ServerTokens ProdaServerSignature Off. - Zakázat adresář výpis: Možnosti - Indexy.
- Používejte HTTPS všude: prosazovat Přesměrování z HTTP na HTTPS a povolte HSTS přes hlavičku, vždy nastavte Strict-Transport-Security „max-age=31536000; includeSubDomains; preload.“
- Omezení .htaccess: preferovat konfigurace vhostů; v případě potřeby nastavit
AllowOverrideúzce (např.AllowOverride FileInfo). - Oprávnění: webové soubory vlastněné uživatelem nasazení, čitelné pro Apache; vyhněte se číslu 777.
- WAF: zvažte
mod_security+ OWASP CRS; limit rychlosti s Fail2ban. - Udržet Apache, OTEVŘENOSSL, PHPa systémové balíčky pravidelně aktualizované.
# Ubuntu/Debian hardening snippet (add to vhost or a conf.d file)
sudo tee /etc/apache2/conf-available/security-hardening.conf >/dev/null <<'EOF'
ServerTokens Prod
ServerSignature Off
TraceEnable Off
# Disable legacy protocols where possible (TLS only)
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
EOF
sudo a2enconf security-hardening
sudo a2enmod headers ssl
sudo systemctl reload apache2Základy ladění výkonu
- MPM: použití událost s PHP-FPM pro vysokou souběžnost; vyhněte se před vidličkou pokud to není nutné.
- Udržovat při životě: umožnit s rozumným
KeepAliveTimeout(2–5 s) aMaxKeepAliveRequests(-100 200). - Komprese: umožnit
mod_deflate(gzip) nebomod_brotliPokud je k dispozici. - caching: nastavit záhlaví mezipaměti pro statické zdroje z daleké budoucnosti pomocí
mod_expires. - HTTP / 2: umožnit virtuálním hostitelům TLS zlepšení multiplexování.
- Protokoly: rotovat a komprimovat protokoly, aby se zabránilo úzkým hrdlům diskového I/O.
# Ubuntu/Debian enable modules
sudo a2enmod http2 deflate headers expires brotli
sudo systemctl reload apache2
# Example tuning snippet
sudo tee /etc/apache2/conf-available/perf.conf >/dev/null <<'EOF'
Protocols h2 http/1.1
H2ModernTLSOnly on
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType image/* "access plus 30 days"
</IfModule>
EOF
sudo a2enconf perf
sudo systemctl reload apache2Protokolování, monitorování a řešení problémů
- Umístění protokolů:
- Ubuntu / Debian:
/var/log/apache2/access.log,/var/log/apache2/error.log - Založené na RHEL:
/var/log/httpd/access_log,/var/log/httpd/error_log
- Ubuntu / Debian:
- Záznamy o nasazení během ocasu:
sudo tail -f /var/log/apache2/error.log - Zkontrolujte stav služby:
systemctl status apache2|httpd,journalctl -u apache2 -b - Ověření konfigurace:
apachectl configtestorhttpd -t - Firewall/SELinux: ověřte, zda jsou porty 80/443 otevřené; na RHEL použijte
restoreconasemanagepro kontexty.
# Quick health check
curl -I https://example.com
# Expect: HTTP/2 200 or 301 (if redirecting to HTTPS)Tipy pro škálování a nasazení
- Reverzní proxy: použití
mod_proxypro front-end služeb Node.js, Python (Gunicorn) nebo Go. - Vyrovnávání zatížení: mod_proxy_balancer s pevnými relacemi pro backendy s více uzly.
- Nulové prostoje při opětovném načítání: použití
systemctl reloadpo změnách konfigurace. - CI/CD: šablony vhostů s Ansible; ukládání konfigurací do správy verzí.
- Zálohy: pravidelně archivovat
/etc/apache2or/etc/httpda kořeny vašeho webu.
Pokud dáváte přednost a managenastavení d, YouStableVPS a dedikované plány jsou dodávány s optimalizovanými LAMP stacky zdarma. SSL, globální párování CDN a nepřetržitá podpora. Zajišťujeme bezpečnostní aktualizace, monitorování a ladění výkonu, abyste se vy mohli soustředit na svou aplikaci.
Společný Apache Tahák k příkazům
# Ubuntu/Debian module and site helpers
sudo a2enmod rewrite ssl http2 headers
sudo a2dismod mpm_prefork
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf
sudo apachectl configtest
sudo systemctl reload apache2
# RHEL-based
sudo httpd -M | sort
sudo systemctl reload httpd
sudo httpd -tTeď už víš, jak používat Apache na Linuxový server, od instalace a virtuálních hostů až po TLS, zabezpečení a ladění. Sestavujte s jistotou, udržujte verzované konfigurace a zvažte managed hosting od YouStable když jste připraveni soustředit se čistě na růst.
Nejčastější dotazy
Is Apache or Nginx lepší a kdy bych měl použít Apache?
Apache je ideální pro weby s velkým množstvím .htaccess, složité přepisy a starší verze PHP aplikace. Nginx často vyniká v propustnosti statických souborů a jako reverzní proxy. S PHP-FPM a událost MPM, Apache Dobře zvládá vysokou souběžnost. Vyberte na základě potřeb vaší aplikace, znalosti týmu a stávajících nástrojů.
Jak přesměruji HTTP na HTTPS v Apache?
umožnit mod_rewrite a přidejte pravidlo 301 do vašeho vhost portu 80 nebo použijte automatické přesměrování Certbotu. Příklad:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Kde jsou Apache konfigurační soubory v Ubuntu vs. CentOS?
Ubuntu / Debian: /etc/apache2/ s sites-available, sites-enabled, a mods-availableZaložené na RHEL: /etc/httpd/ s conf/httpd.conf a soubory pro jednotlivé weby v conf.d/Protokoly žijí v /var/log/apache2/ (Ubuntu) nebo /var/log/httpd/ (RHEL).
Jak povolím .htaccess a jaká jsou rizika?
sada AllowOverride pro adresář, který to potřebuje (např. AllowOverride FileInfo). Soubor .htaccess přidává vyhledávání souborů na požadavek a může být zneužit. Kvůli výkonu a bezpečnosti upřednostňujte umístění pravidel do hlavního virtuálního hostitele, kdykoli je to možné.
Kolik webových stránek může Apache hostitel na jednom serveru?
Technicky stovky nebo tisíce přes VirtualHosts. Skutečný limit je CPU, RAM, úložné IOPS a váš aplikační stack (PHP pracovníci, databáze). Sledujte zátěž, paměť a počet připojení; škálujte vertikálně nebo horizontálně (vyrovnávač zátěže) s rostoucím provozem.