GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Apache s virtuálním hostitelem na CentOS 8

Apache webserver je opensource a populární webový server HTTP, který se nadále těší masivnímu podílu na trhu v odvětví hostingu. Dodává se se spoustou funkcí včetně vylepšení modulů, podpory více protokolů, zjednodušené konfigurace a podpory více jazyků, abychom zmínili jen některé.

Přečtěte si také :Jak nainstalovat Nginx na CentOS 8

V této příručce vás provedeme instalací Apache webový server na CentOS 8 a RHEL 8 s prostředím virtuálního hostitele. V době psaní tohoto návodu je nejnovější verze Apache Apache 2.2.43 .

Instalace webového serveru Apache

Chcete-li začít, nejprve aktualizujte CentOS 8 nebo RHEL 8 seznam systémových balíčků pomocí následujícího příkazu dnf.

$ sudo dnf update

Po dokončení aktualizace nainstalujte Apache webový server provedením následujícího příkazu.

$ sudo dnf install httpd

Po instalaci můžete ověřit verzi Apache spuštěním příkazu rpm.

$ rpm -qi httpd

Ověřte verzi Apache

Příkaz vytiskne řadu informací, jako je verze, datum vydání, sestavení a architektura balíčku.

Chcete-li spustit webovou službu Apache HTTP, spusťte příkaz systemctl.

$ sudo systemctl start httpd

Chcete-li potvrdit, zda je služba spuštěna, spusťte.

$ sudo systemctl status httpd

Ověřte stav služby Apache

Z výstupu je „aktivní zelený stav znamená, že webový server Apache je v provozu.

Chcete-li odstranit jakékoli pochybnosti o tom, že webový server běží, vyžádejte si testovací stránku od Apache procházením IP adresy nebo názvu domény vašeho serveru, jak je uvedeno.

http://server-ip  

IP serveru můžete získat spuštěním příkazu ifconfig. Pokud je váš server hostován v cloudu, můžete veřejnou IP získat spuštěním příkazu curl.

$ curl ifconfig.me 
OR
$ curl -4 icanhazip.com

Najděte IP adresu serveru CentOS

Při procházení IP adresy serveru by se měla zobrazit následující webová stránka.

Zkontrolujte webovou stránku Apache

Toto je jisté potvrzení, že webový server běží.

Správa webového serveru Apache

S Apache nainstalován a spuštěn, můžete použít systemctl inspekční nástroj pro správu Apache.

Chcete-li například zastavit Apache, spusťte příkaz:

$ sudo systemctl stop httpd

Chcete-li službu spustit znovu, spusťte:

$ sudo systemctl start httpd

Pokud jste provedli změny v některém z jeho konfiguračních souborů a pro použití změn potřebujete restartovat, spusťte příkaz:

$ sudo systemctl restart httpd

Restartování služby obvykle způsobí přerušení služby. Lepší alternativou je jednoduše znovu načíst bez jakéhokoli přerušení připojení.

$ sudo systemctl reload httpd

Chcete-li webový server Apache spustit automaticky při spuštění nebo restartu, spusťte příkaz níže. Tím zajistíte, že se Apache spustí automaticky bez vašeho zásahu.

$ sudo systemctl enable httpd

Pokud se rozhodnete službu nespouštět automaticky při spouštění, spusťte:

$ sudo systemctl disable httpd

Nastavení virtuálních hostitelů Apache

Ve výchozím nastavení je webový server Apache nakonfigurován tak, aby obsluhoval nebo hostoval pouze jeden web. Pokud chcete hostovat pouze jednu webovou stránku, pak tento krok není vyžadován. Ale v případě, že plánujete hostovat na svém serveru více domén, musíte nakonfigurovat virtuální hostitele Apache.

Virtuální hostitel je samostatný soubor, který obsahuje konfigurace, které vám umožňují nastavit jinou doménu než výchozí. Pro tuto příručku nastavíme virtuálního hostitele pro doménu crazytechgeek.info .

Výchozí virtuální hostitel je umístěn na /var/www/html adresář. Toto funguje pouze pro jeden web. Pro vytvoření samostatného virtuálního hostitele pro naši doménu vytvoříme další adresářovou strukturu v rámci /var/www adresář, jak je znázorněno.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

Kromě toho můžete také vytvořit adresář pro ukládání souborů protokolu.

$ sudo mkdir -p /var/www/crazytechgeek.info/log

Dále upravte oprávnění souboru pomocí $USER proměnná prostředí, jak je znázorněno.

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

Upravte také oprávnění adresáře webroot, jak je znázorněno.

$ sudo chmod -R 755 /var/www

Dále vytvořte ukázkový index.html soubor podle obrázku.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Klepněte na písmeno 'i' na klávesnici a vložte ukázkový obsah podle obrázku, který se zobrazí ve webovém prohlížeči při testování virtuálního hostitele.

<html>
  <head>
    <title>Welcome to crazytechgeek.info!</title>
  </head>
  <body>
    <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1>
  </body>
</html>

Uložte a ukončete konfigurační soubor.

Po vytvoření ukázkového indexového souboru a adresáře webu můžete nyní pokračovat a vytvořit soubor virtuálního hostitele. Soubor virtuálního hostitele bude obsahovat konfiguraci webu vaší domény a instruuje Apache, jak bude reagovat na požadavky klientů.

Soubor virtuálního hostitele bude obsahovat konfiguraci webu vaší domény a instruuje Apache, jak bude reagovat na požadavky klientů. Ale pokračujte, musíte vytvořit 2 adresáře:sites-available a sites-enabled adresáře.

Soubor virtuálního hostitele bude uložen v sites-available adresář, zatímco sites-enabled adresář bude obsahovat symbolický odkaz na virtuálního hostitele.

Vytvořte oba adresáře podle obrázku.

$ sudo mkdir /etc/httpd/sites-available
$ sudo mkdir /etc/httpd/sites-enabled

Dále upravte hlavní konfigurační soubor webového serveru Apache a dejte Apache pokyn, kde má v adresáři s povolenými weby najít virtuálního hostitele.

$ sudo vim /etc/httpd/conf/httpd.conf

Připojte řádek, jak je znázorněno na samém konci konfiguračního souboru.

IncludeOptional sites-enabled/*.conf

Uložte a ukončete.

Nyní vytvořte soubor virtuálního hostitele podle obrázku:

$ sudo vim /etc/httpd/sites-available/crazytechgeek.info

Vložte obsah níže a nahraďte crazytechgeek.info s vaším vlastním názvem domény.

<VirtualHost *:80>
    ServerName www.crazytechgeek.info
    ServerAlias crazytechgeek.info
    DocumentRoot /var/www/crazytechgeek.info/html
    ErrorLog /var/www/crazytechgeek.info/log/error.log
    CustomLog /var/www/crazytechgeek.info/log/requests.log combined
</VirtualHost>

Uložte a ukončete soubor.

Nyní povolte soubor virtuálního hostitele vytvořením symbolického odkazu v sites-enabled adresář.

$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf

Úprava oprávnění SELinux pro virtuální hostitele

CentOS 8 a RHEL 8 dodává se s SELinux což je bezpečnostní modul pro posílení bezpečnosti systému Linux. Protože jste nakonfigurovali vlastní protokol adresář v předchozím kroku, musíte aktualizovat některé zásady SELinuxu, abyste dali webovému serveru Apache pokyn k zápisu do adresáře.

Existují 2 přístupy k úpravě zásad SELinux Apache:Univerzální úprava zásad a zásad v adresáři. To druhé je preferováno, protože je preferovanější.

Úprava zásad SELinux v adresáři

Úprava SELinux oprávnění pro adresář protokolů vám poskytují absolutní kontrolu nad zásadami webového serveru Apache. Tato metoda je poměrně zdlouhavá a vyžaduje ruční konfiguraci typu kontextu pro další adresáře uvedené v konfiguračním souboru virtuálního hostitele.

Než začnete, nejprve potvrďte typ kontextu, který SELinux přiřadil adresáři protokolu:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Výstup by měl být podobný tomu, co máme níže.

Nastavte zásady SELinux na Apache Log Directory

Z výstupu je nastavený kontext httpd_sys_content_t . To znamená, že webový server může číst pouze soubory v adresáři log. Tento kontext je třeba změnit na httpd_log_t aby Apache mohl generovat a přidávat položky protokolu do adresáře.

Proveďte tedy příkaz:

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Pokud se vám stane, že se níže zobrazí chyba „semanage:command not found“.

Znamená to, že balíčky, které poskytují správu příkaz nejsou nainstalovány. Chcete-li tuto chybu opravit, musíte tyto balíčky nainstalovat. Nejprve však zkontrolujte, které balíčky poskytují příkaz semanage spuštěním:

$ sudo dnf whatprovides /usr/sbin/semanage

Výstup nám poskytuje balíček, který poskytuje správu, což je policycoreutils-python-utils .

Nyní nainstalujte balíček podle obrázku pomocí správce balíčků DNF.

$ sudo dnf install policycoreutils-python-utils

Příkaz pro změnu kontextu by nyní měl fungovat.

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Chcete-li změny uložit a učinit je trvalými, zadejte restorecon příkaz, jak je znázorněno:

$ sudo restorecon -R -v /var/www/crazytechgeek.info/log

Změny můžete potvrdit opětovným spuštěním příkazu:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Zkontrolujte SELinux Context Type

Nezapomeňte, že typ kontextu se změnil na httpd_log_t jak je vidět na výstupu.

Aby se změny projevily, restartujte Apache.

$ sudo systemctl restart httpd

Nyní můžete potvrdit, zda Apache ukládá soubory protokolu do adresáře protokolů, uvedením jeho obsahu, jak je uvedeno:

$ ls -l /var/www/crazytechgeek.info/log/

Měli byste vidět dva soubory protokolu, jak je uvedeno na obrázku:protokol chyb a soubory protokolu požadavků.

Zkontrolujte soubory protokolu Apache

Testování virtuálního hostitele Apache

Nakonec si musíte být jisti, že webový server Apache obsluhuje váš virtuální hostitelský soubor. Chcete-li to provést, otevřete prohlížeč a přejděte na adresu IP nebo název domény vašeho serveru:

http://domain-name

Zkontrolujte Apache Virtual Host for Website

Perfektní! To znamená, že vše proběhlo v pořádku a náš virtuální hostitel je obsluhován podle očekávání.

Závěr

V této příručce jsme se naučili, jak nainstalovat Apache webový server na CentOS 8 a RHEL 8 a také jak nakonfigurovat soubor virtuálního hostitele pro poskytování obsahu pro další doménu. Neváhejte a nakonfigurujte více souborů virtuálního hostitele, jak uznáte za vhodné pro umístění dalších domén.

Pokud chcete nastavit kompletní hostingový stack, doporučuji vám nainstalovat LAMP stack na CentOS 8.

Sharing is Caring…
Sdílet na FacebookuSdílet na TwitteruSdílet na LinkedinSdílet na Redditu
Cent OS
  1. Jak nainstalovat Apache Cassandra na CentOS 8

  2. Jak nainstalovat Apache na CentOS 7

  3. Jak nainstalovat Let’s Encrypt with Apache na CentOS 7

  1. Jak nainstalovat Apache Maven na CentOS 7

  2. Jak nainstalovat WordPress s Apache na CentOS 7

  3. Jak nainstalovat Apache Cassandra na CentOS 7

  1. Jak nainstalovat Apache na CentOS 8

  2. Jak nainstalovat Apache Maven na CentOS 8

  3. Jak vytvořit virtuální hostitele Apache na CentOS 7