Apache HTTP Server (Apache) je jedním z nejpopulárnějších bezplatných a open-source multiplatformních webových serverů, vydaný za podmínek licence Apache 2.0.
Apache je populární jako součást nastavení LAMP, což je A ve zkratce. Funkčnost serveru Apache lze rozšířit pomocí mnoha dostupných modulů.
Předpoklady:
- Aktuální server Centos 8
- Kořenový přístup k serveru (nebo uživatel s přístupem sudo)
- Firewall je nastaven tak, aby umožňoval provoz na porty 80 a 443
Instalace Apache
Ujistěte se, že balíčky jsou aktuální:
sudo dnf -y update
Apache je k dispozici ve výchozích repozitářích softwaru CentOS 8 jako httpd
. Informace o něm můžete zkontrolovat pomocí tohoto příkazu:
sudo dnf info httpd
Měli byste vidět něco podobného:
$ sudo dnf info httpd
CentOS Linux 8 - AppStream 20 MB/s | 8.8 MB 00:00
CentOS Linux 8 - BaseOS 24 MB/s | 5.6 MB 00:00
Last metadata expiration check: 0:00:01 ago on Sat 28 Aug 2021 01:06:59 PM UTC.
Available Packages
Name : httpd
Version : 2.4.37
Release : 39.module_el8.4.0+778+c970deab
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.37-39.module_el8.4.0+778+c970deab.src.rpm
Repository : appstream
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Nainstalujte jej pomocí tohoto příkazu:
sudo dnf install -y httpd
Povolení http a https v firewallu
Pokud máte spuštěnou a spuštěnou bránu firewall, musíte povolit porty http a https pomocí těchto příkazů:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Nyní znovu načtěte firewall, aby tato nová pravidla začala platit:
sudo firewall-cmd --reload
Spuštění a povolení služby httpd
Ve výchozím nastavení není služba spuštěna. Potvrďte následujícím příkazem:
sudo systemctl status httpd
Výstup:
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd.service(8)
Spusťte službu tímto příkazem:
sudo systemctl start httpd
Když je služba spuštěna, obdržíte aktivní stav
Potvrďte, že nyní funguje správně:
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2021-08-28 13:32:17 UTC; 17s ago
Docs: man:httpd.service(8)
Main PID: 65827 (httpd)
Status: "Running, listening on: port 80"
Tasks: 213 (limit: 23800)
Memory: 28.9M
CGroup: /system.slice/httpd.service
├─65827 /usr/sbin/httpd -DFOREGROUND
├─65828 /usr/sbin/httpd -DFOREGROUND
├─65829 /usr/sbin/httpd -DFOREGROUND
├─65830 /usr/sbin/httpd -DFOREGROUND
└─65831 /usr/sbin/httpd -DFOREGROUND
Aug 28 13:32:17 test-app-server systemd[1]: Starting The Apache HTTP Server...
Aug 28 13:32:17 test-app-server httpd[65827]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::8fc:23ff:fe51:cc>
Aug 28 13:32:17 test-app-server systemd[1]: Started The Apache HTTP Server.
Aug 28 13:32:17 test-app-server httpd[65827]: Server configured, listening on: port 80
Výše uvedené potvrzuje, že apache nyní funguje dobře.
Chcete-li potvrdit, že je služba přístupná, přejděte na následující adresu URL a zjistěte, zda můžete získat stránku httpd:
http://server_ip
Pokud server neznáte, použijte ve svém terminálu následující příkaz:
curl -4 icanhazip.com
Jakmile navštívíte tuto stránku, pokud vše funguje správně, měli byste vidět výchozí stránku Apache jako na snímku obrazovky níže:
Chcete-li zajistit, že služba bude vždy spuštěna při spuštění, použijte tento příkaz systemctl:
sudo systemctl enable httpd
Nastavení virtuálních hostitelů
S Apache je možné hostovat více stránek na stejném serveru, kde běží Apache. Toho lze vždy dosáhnout pomocí více domén, z nichž každá představuje web, který server hostí.
Virtuální hostitelé Apache jsou podobné blokům serveru Nginx. Každý virtuální hostitel bude mít podrobnosti o konfiguraci pro jednoho hostitele. Můžete mít tolik virtuálních hostitelů, kolik chcete.
V tomto příkladu použijeme doménu site1.citizix.com
pro virtuálního hostitele, ale můžete volně používat doménu dle svého výběru. Upozorňujeme, že DNS pro doménu, která se má použít, by již měla být nakonfigurována tak, aby ukazovala na IP adresu serveru.
Potvrďte to pomocí:
dig -t A site1.citizix.com
Vytvoření adresáře a ukázkového obsahu
Výchozí stránka Apache je nakonfigurována jako výchozí virtuální hostitel poskytující obsah z /var/www/html
. Doporučeným postupem je vytvořit adresář vašeho webu v /var/www
adresáře, protože je nejlepším postupem obsluhovat odtud.
Vytvořte adresář pro naše stránky pomocí následujícího příkazu:
sudo mkdir /var/www/site1.citizix.com
Vytvořme jednoduchý index.html
stránku, která má sloužit z našeho webu. Aby to fungovalo, budete potřebovat nainstalovaný vim, pokud nepoužijete tento příkaz:
sudo dnf install -y vim
Upravte soubor:
sudo vim /var/www/site1.citizix.com/index.html
Přidejte obsah do souboru:
<html>
<head>
<title>Hello from Citizix Site1!</title>
</head>
<body>
<h1>Hey!</h1>
<p>This is citizix site1. Welcome here.</p>
</body>
</html>
Nakonec se ujistíme, že aktuální uživatel vlastní adresář webu:
sudo chown -R $USER:$USER /var/www/site1.citizix.com
Vytvoření virtuálního hostitele
Soubory virtuálního hostitele Apache specifikují konfiguraci jednotlivých stránek a sdělují webovému serveru Apache, jak reagovat na požadavky různých domén.
Konfigurace Apache budou uloženy v adresáři /etc/httpd/conf.d/
. Pojďme vytvořit konfiguraci pro náš web:
sudo vim /etc/httpd/conf.d/site1.citizix.com.conf
Přidejte následující obsah:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
DocumentRoot /var/www/site1.citizix.com
ErrorLog /var/log/httpd/site1.citizix.com.error.log
CustomLog /var/log/httpd/site1.citizix.com.requests.log combined
</VirtualHost>
To Apache sdělí následující:
ServerName
a ServerAlias – název hostitele, který má sloužitDocumentRoot
– kde přímo najít kořen, který obsahuje veřejně přístupné webové dokumentyErrorLog
– kam ukládat protokoly chyb pro tento webCustomLog
– kam ukládat protokoly požadavků pro tento konkrétní web
Po dokončení uložte a zavřete soubor
Testování virtuálního hostitele
Nyní, když je konfigurace na místě, musíme otestovat, že vše funguje podle očekávání.
Nejprve restartujte apache a znovu načtěte konfiguraci:
sudo systemctl restart httpd
Vypište obsah /var/log/httpd/
adresář, abyste zjistili, zda Apache vytvořil soubory protokolu:
Pokud je vše v pořádku, měli byste vidět výstup podobný tomuto:
# ls /var/log/httpd/
access_log error_log site1.citizix.com.error.log site1.citizix.com.requests.log
Pokud je vše v pořádku, Apache nyní obslouží název vaší domény. Můžete to vyzkoušet tak, že přejdete na http://site1.citizix.com
, kde byste měli vidět něco takového:
Výše uvedený snímek obrazovky potvrzuje, že virtuální hostitel je úspěšně nakonfigurován a poskytuje obsah.
Pokud potřebujete hostit více dalších webů, opakujte výše uvedené kroky pro weby, které chcete.
Závěr
Podařilo se nám nainstalovat a nastavit webový server Apache podle výše uvedených pokynů v Centos 8 Server.