Apache , také známý jako Apache HTTP server, je v posledních několika desetiletích jednou z celosvětově nejpoužívanějších webových serverových aplikací. Jedná se o bezplatný a open source webový aplikační software spravovaný Apache Software Foundation . Apache poskytuje některé výkonné funkce s dynamicky načítatelnými moduly, snadnou integraci s jiným softwarem a manipulaci se statickými soubory, mezi další oblíbené funkce.
V následujícím tutoriálu se dozvíte, jak nainstalovat webový server Apache na AlmaLinux 8.
Předpoklady
- Doporučený operační systém: AlmaLinux 8.
- Uživatelský účet: Uživatelský účet s právy sudo nebo přístup root (příkaz su) .
Aktualizace operačního systému
Aktualizujte svůj AlmaLinux operační systém, abyste se ujistili, že všechny existující balíčky jsou aktuální:
sudo dnf update && sudo dnf upgrade -y
Výukový program bude používatpříkaz sudo a za předpokladu, že máte status sudo . Chcete-li ověřit stav sudo na vašem účtu:
sudo whoami
Ukázkový výstup zobrazující stav sudo:
[joshua@localhost ~]$ sudo whoami
root
Pokud jste si nenastavili uživatelský účet sudo a chtěli byste to udělat, navštivte náš návod Jak přidat uživatele do Sudoers na AlmaLinux .
Chcete-li použít rootový účet , použijte k přihlášení následující příkaz s heslem uživatele root.
su
Nainstalujte Apache (HTTPD)
Apache je ve výchozím nastavení v proudu aplikací AlmaLinux 8. To je pro většinu uživatelů praktičtější, protože je velmi stabilní a bezpečné. Chcete-li nainstalovat Apache, otevřete svůj terminál a spusťte následující příkaz:
sudo dnf install httpd
Příklad výstupu:
Zadejte Y a poté stiskněte „ENTER KEY“ pokračovat.
Dále ve výchozím nastavení Apache (HTTPD) je deaktivován a není aktivován. Nejprve spusťte službu.
sudo systemctl start httpd
Volitelně povolte Apache při spouštění systému.
sudo systemctl enable httpd
Příklad výstupu v případě úspěchu:
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
Pomocí následujícíhosystemctl zkontrolujte, zda Apache2 běží správně příkaz:
systemctl status httpd
Příklad výstupu, pokud je vše v pořádku:
Konfigurace pravidel brány firewall
Při instalaci Apache automaticky nepřidává pravidla brány firewall ke standardním portům 80 nebo 443. Než budete pokračovat, měli byste nastavit následující pravidla, to bude záviset na tom, jaké porty budete používat, ale všechny možnosti jsou uvedeny.
Otevřete port 80 nebo HTTP:
sudo firewall-cmd --permanent --zone=public --add-service=http
Otevřete port 443 nebo HTTPS:
sudo firewall-cmd --permanent --zone=public --add-service=https
Znovu načtěte bránu firewall, aby se změny projevily
sudo firewall-cmd --reload
Ověřte webový server Apache
Nyní, když jste nainstalovali a nakonfigurovali, je čas otestovat, zda je Apache 2 dosažitelný a funguje správně tím, že si vyžádáte stránku.
Můžete se dostat na výchozí vstupní stránku Apache a zkontrolovat, zda software běží správně přes IP adresu vašeho serveru. Chcete-li to zjistit, pokud nevíte, použijte následující příkaz:
hostname -I
Měli byste získat zpět interní IP adresu, na které je server jako příklad:
###EXAMPLE ONLY###
192.168.50.15
Můžete získat 2 až 3 výsledky zpět. Vyzkoušejte každý z nich, dokud nenajdete správnou IP adresu.
Pokud požadujete svou veřejnou IP adresu (externí), použijte místo toho následující příkaz:
curl -4 icanhazip.com
Pokud chybí balíček CURL, možná budete muset nainstalovat. Chcete-li to provést, spusťte následující příkaz:
sudo dnf install curl -y
Jakmile budete mít IP adresu svých serverů, otevřete svůj oblíbený internetový prohlížeč a zadejte následující:
http://your_server_ip
Ve svém internetovém prohlížeči byste měli získat následující stránku:
Gratulujeme, nainstalovali jste webový server Apache 2 a momentálně funguje.
Dalším krokem je nastavení virtuálních hostitelů.
Vytvořte nebo nakonfigurujte virtuální hostitele pro Apache
Pomocí webového serveru Apache můžete vytvořit virtuální hostitele pro správu konfigurací pro více než jednu doménu běžící na jednom serveru. Pokud jste dříve používali Nginx, jedná se o ekvivalent serverových bloků. V níže uvedeném příkladu výukový program vytvoří doménu example-domain.com, kterou nahradíte názvem vaší domény.
Vytváření nebo konfigurace adresářů
Nejprve opusťte /var/www/html neporušený adresář jako výchozí adresář, poté vytvořte nový adresář, například-domena.com, jak je uvedeno níže:
sudo mkdir /var/www/example_domain
Dalším krokem je přiřazení vlastnictví adresáře pomocí proměnné prostředí $USER:
sudo chown -R $USER:$USER /var/www/example_domain
Obvykle by měla být oprávnění web root nastavena správně a můžete je ověřit pomocí příkazu -ls l :
ls -l /var/www/example_domain
Příklad výstupu:
drwxr-xr-x 2 joshua joshua 4096 Oct 10 11:46 example_domain
Jak vidíte, máme povolení drwxr-xr-x, což je ekvivalent chmod 755 . Pokud toto oprávnění nemáte, spusťte následující příkaz:
sudo chmod -R 755 /var/www/example_domain
Nyní vytvořte ukázkovou stránku index.html pomocí svého oblíbeného textového editoru. Výukový program bude používat nano, jak je uvedeno níže:
sudo nano /var/www/example_domain/index.html
Do souboru zkopírujte a vložte následující kód:
<html>
<head>
<title>Welcome to Website!</title>
</head>
<body>
<h1>Success! The virtual host is working! You did not mess it up thanks to Linuxcapable.com</h1>
</body>
</html>
Uložte soubor (CTRL+O) a poté ukončete (CTRL+X) .
Vytvořit virtuálního hostitele
Nyní, když jste vytvořili vstupní stránku a nastavili správné vlastnictví a oprávnění. Ve výchozím nastavení bude nutné vytvořit a nastavit požadované adresáře.
Nejprve zpřístupněte adresáře potřebné pro weby a povolte weby. Uživatelé Nginx by toto nastavení také znali.
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
Dalším krokem, který musíte udělat, je instruovat Apache, aby hledal soubory virtuálního hostitele, které budou muset být umístěny na /etc/httpd/sites-available adresář.
Otevřete konfigurační soubor.
sudo nano /etc/httpd/conf/httpd.conf
Přidejte následující na konec souboru.
IncludeOptional sites-enabled/*.conf
Volitelně můžete zakázat výchozí složku, ve které Apache hledá soubory virtuálních hostitelů, což možná chtělo předejít nejasnostem. Stačí přidat komentář vedle položky IncludeOptional conf.d/*.conf .
Příklad:
#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
Uložte soubor (CTRL+O), poté ukončete (CTRL+X) .
Poté pomocí svého oblíbeného textového editoru vytvořte konfigurační soubor virtuálního hostitele umístěný na adrese /etc/httpd/sites-available/example_domain.conf jak je uvedeno níže:
sudo nano /etc/httpd/sites-available/example_domain.conf
Nyní zkopírujte a vložte následující do souboru konfiguračního bloku s poznámkou, že nahraďte ServerName, ServerAlias, a kořen dokumentu s vlastním:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example_domain
ServerAlias www.example_domain
DocumentRoot /var/www/example_domain
ErrorLog /var/www/example_domain/error.log
CustomLog /var/www/example_domain/requests.log combined
</VirtualHost>
Pamatujte, nezapomeňte změnit požadované direktivy serveru na své vlastní.
Uložte konfigurační soubor pomocí (CTRL+O) a ukončete pomocí (CTRL+X) .
Povolit virtuální hostitele
Dalším krokem je povolení virtuálního hostitele. Zpočátku jste vytvořili dva adresáře, sites-available a povoleny weby. Nyní budete muset vytvořit symlink na povolené weby pro aktivaci virtuálního hostitele.
Chcete-li vytvořit symbolický odkaz, použijte ve svém terminálu následující příklad.
sudo ln -s /etc/httpd/sites-available/example_domain.conf /etc/httpd/example_domain.conf
Po dokončení restartujte službu Apache.
sudo systemctl restart httpd
Otevřete svůj internetový prohlížeč a zadejte název své domény HTTP://example_domain kde byste měli získat následující vstupní stránku, kterou jste vytvořili v souboru index.html:
Gratulujeme, úspěšně jste vytvořili svého virtuálního hostitele a zprovoznili jej ve vaší doméně.
Zabezpečte Apache pomocí bezplatného certifikátu Let's Encrypt SSL
V ideálním případě byste chtěli spustit svůj Apache na HTTPS pomocí certifikátu SSL . Nejlepší způsob, jak toho dosáhnout, je použít Let’s Encrypt bezplatná, automatizovaná a otevřená certifikační autorita provozovaná neziskovou organizací Internet Security Research Group (ISRG) .
Nejprve nainstalujte EPEL úložiště a mod_ssl balíček pro lépe aktualizované balíčky a zabezpečení.
sudo dnf install epel-release mod_ssl -y
Dále nainstalujte balíček certbot takto:
sudo dnf install python3-certbot-apache -y
Po instalaci spusťte následující příkaz pro zahájení vytváření vašeho certifikátu:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com
Toto je ideální nastavení, které zahrnuje vynucená přesměrování HTTPS 301, hlavičku Strict-Transport-Security a sešívání OCSP. Jen nezapomeňte upravit e-mail a název domény podle svých požadavků.
Nyní bude vaše adresa URL https://www.example.com namísto HTTP://www.example.com .
Poznámka:Pokud používáte starou URL HTTP , automaticky se přesměruje na HTTPS .
Volitelně můžete nastavit úlohu cron pro automatickou obnovu certifikátů. Certbot nabízí skript, který to dělá automaticky, a vy můžete nejprve otestovat, abyste se ujistili, že vše funguje pomocí suchého běhu.
sudo certbot renew --dry-run
Pokud vše funguje, otevřete okno crontab pomocí následujícího příkazu terminálu.
sudo crontab -e
Dále zadejte čas, kdy se má automaticky obnovit. Toto by mělo být kontrolováno minimálně denně, a pokud je potřeba certifikát obnovit, skript certifikát neaktualizuje. Pokud potřebujete pomoc s nalezením vhodného času pro nastavení, použijte bezplatný nástroj crontab.guru.
00 00 */1 * * /usr/sbin/certbot-auto renew
Uložit (CTRL+O) poté ukončete (CTRL+X), a cronjob bude automaticky povolen.
Správa služby Apache
Nyní, když máte Apache na svém serveru úspěšně spuštěn, jsou některé klíčové poznámky pro správu následující.
Protokoly serveru Apache
Protokoly serveru Apache lze nalézt v adresáři var/www/example_domain s custom.log a error.log přičemž se jedná o výchozí přístupová a chybová jména. Toto lze v budoucnu změnit na jiné názvy v konfiguračním souboru vašeho virtuálního hostitele.
Příkazy Apache
Následující příkazy, které nepochybně využijete ve své každodenní správě při práci s Apache. Některé z nejběžnějších jsou:
Chcete-li zastavit webový server Apache:
sudo systemctl stop httpd
Chcete-li spustit webový server Apache:
sudo systemctl start httpd
Restartování webového serveru Apache:
sudo systemctl restart httpd
Chcete-li znovu načíst webový server Apache (pro další menší změny nevyžadující restart) :
sudo systemctl reload httpd
Chcete-li zakázat Apache při spouštění serveru:
sudo systemctl disable httpd
Chcete-li spustit Apache při spouštění serveru (automaticky povoleno při instalaci) :
sudo systemctl enable httpd
Jak aktualizovat Apache
Chcete-li v budoucnu aktualizovat Apache, provede se to pomocí příkazu, který jste použili ke kontrole, zda je váš systém aktuální. Všimněte si, že vždy vytvářejte zálohy nebo bitové kopie, pokud máte na službě Apache spuštěné důležité služby. Upgrade je obvykle docela bezpečný, ale někdy se mohou vyskytnout chyby jako u každého upgradu softwaru.
Chcete-li aktualizovat Apache, použijte následující příkaz:
sudo dnf update
Pokud je k dispozici upgrade Apache, použijte příkaz:
sudo dnf upgrade
Jak odebrat (odinstalovat) Apache
Chcete-li Apache odebrat, pokud jej již nepoužíváte, lze to provést pomocí následujícího příkazu:
sudo dnf autoremove httpd
Tento příkaz také odstraní všechny nepoužívané závislosti dodané s instalací.