Weboldal keresés

Az Apache telepítése a Virtual Host segítségével CentOS 8 rendszeren


Az Apache webszerver egy nyílt forráskódú és népszerű HTTP webszerver, amely továbbra is hatalmas piaci részesedéssel rendelkezik a hosting iparágban. Rengeteg funkciót tartalmaz, beleértve a modulbővítéseket, a többprotokoll támogatást, az egyszerűsített konfigurációt és a többnyelvű támogatást, hogy csak néhányat említsünk.

Olvassa el még: Az Nginx telepítése CentOS 8 rendszeren

Ebben az útmutatóban végigvezetjük az Apache webszerver telepítésén CentOS 8 és RHEL 8 rendszeren, Virtual Host környezetben. Az oktatóanyag írásakor az Apache legújabb verziója az Apache 2.2.43.

Apache webszerver telepítése

A kezdéshez először frissítse CentOS 8 vagy RHEL 8 rendszercsomaglistáját a következő dnf paranccsal.

sudo dnf update

A frissítés befejezése után telepítse az Apache webszervert a következő parancs végrehajtásával.

sudo dnf install httpd

A telepítés után az rpm parancs futtatásával ellenőrizheti az Apache verzióját.

rpm -qi httpd

A parancs egy sor információt nyomtat ki, például a csomag verzióját, kiadási dátumát, felépítését és architektúráját.

Az Apache HTTP webszolgáltatás elindításához futtassa a systemctl parancsot.

sudo systemctl start httpd

A szolgáltatás futásának ellenőrzéséhez futtassa.

sudo systemctl status httpd

A kimeneten látható „aktív” állapot zöld színben azt jelzi, hogy az Apache webszerver működik és működik.

A webszerver működésével kapcsolatos kétségek eloszlatásához kérjen tesztoldalt az Apache-tól a szerver IP-címének vagy tartománynevének böngészésével az ábrán látható módon.

http://server-ip  

A szerver IP-címét az ifconfig parancs futtatásával szerezheti meg. Ha a szerver a felhőben található, a curl parancs futtatásával megszerezheti a nyilvános IP-címet.

curl ifconfig.me 
OR
curl -4 icanhazip.com

Amikor a szerver IP-címét böngészi, a következő weboldalnak kell megjelennie.

Ez egy biztos megerősítés, hogy a webszerver fut.

Apache webszerver kezelése

Ha az Apache telepítve van és fut, használhatja a systemctl ellenőrző eszközt az Apache kezelésére.

Például az Apache leállításához futtassa a következő parancsot:

sudo systemctl stop httpd

A szolgáltatás újbóli elindításához hajtsa végre a következőt:

sudo systemctl start httpd

Ha módosította bármelyik konfigurációs fájlját, és újra kell indítania a változtatásokat, akkor hajtsa végre a következő parancsot:

sudo systemctl restart httpd

A szolgáltatás újraindítása általában szolgáltatáskimaradást okoz. Egy jobb alternatíva az, ha egyszerűen újratölti a kapcsolat megszakítása nélkül.

sudo systemctl reload httpd

Az Apache webszerver automatikus indításához rendszerindításkor vagy újraindításkor futtassa az alábbi parancsot. Ez biztosítja, hogy az Apache automatikusan elinduljon az Ön beavatkozása nélkül.

sudo systemctl enable httpd

Ha úgy dönt, hogy nem indítja el automatikusan a szolgáltatást rendszerindításkor, futtassa:

sudo systemctl disable httpd

Apache virtuális gazdagépek beállítása

Alapértelmezés szerint az Apache webszerver csak egy webhely kiszolgálására vagy fogadására van beállítva. Ha csak egy webhelyet szeretne tárolni, akkor ez a lépés nem szükséges. Abban az esetben azonban, ha több tartományt kíván üzemeltetni a kiszolgálón, akkor konfigurálnia kell az Apache virtuális gazdagépeket.

A virtuális gazdagép egy külön fájl, amely olyan konfigurációkat tartalmaz, amelyek lehetővé teszik az alapértelmezetttől különálló tartomány beállítását. Ehhez az útmutatóhoz beállítunk egy virtuális gazdagépet a crazytechgeek.info domainhez.

Az alapértelmezett virtuális gazdagép a /var/www/html könyvtárban található. Ez csak egyetlen webhelyen működik. Ha külön virtuális gazdagépet szeretnénk létrehozni a tartományunkhoz, egy másik könyvtárstruktúrát hozunk létre a /var/www könyvtárban, az ábrán látható módon.

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

Ezenkívül létrehozhat egy könyvtárat is a naplófájlok tárolására.

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

Ezután szerkessze a fájljogosultságokat a $USER környezeti változó használatával, az ábra szerint.

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

A képen látható módon módosítsa a webroot könyvtár engedélyeit is.

sudo chmod -R 755 /var/www

Ezután hozzon létre egy minta index.html fájlt az ábra szerint.

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

Nyomja meg az 'i' betűt a billentyűzeten, és illesszen be néhány mintatartalmat a képen látható módon, amely megjelenik a webböngészőben a virtuális gazdagép tesztelésekor.

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

Mentse el, és lépjen ki a konfigurációs fájlból.

A mintaindexfájl és a helykönyvtár létrehozása után folytathatja a virtuális gazdagépfájl létrehozását. A virtuális gazdagép fájl tartalmazza a domain webhelykonfigurációját, és utasítja az Apache-t, hogyan válaszoljon az ügyfelek kéréseire.

A virtuális gazdagép fájl tartalmazza a domain webhelykonfigurációját, és utasítja az Apache-t, hogyan válaszoljon az ügyfelek kéréseire. De a folytatáshoz létre kell hoznia 2 könyvtárat: a sites-available és a sites-enabled könyvtárat.

A virtuális gazdagép fájl a sites-available könyvtárban lesz tárolva, míg a sites-enabled könyvtár tartalmazza a virtuális gazdagépre mutató szimbolikus hivatkozást.

Hozzon létre mindkét könyvtárat az ábra szerint.

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

Ezután módosítsa az Apache webszerver fő konfigurációs fájlját, és utasítsa az Apache-t, hogy hol találja meg a virtuális gazdagépet a helyek-engedélyezett könyvtárban.

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

A konfigurációs fájl legvégén látható módon fűzze hozzá a sort.

IncludeOptional sites-enabled/*.conf

Mentés és kilépés.

Most hozzon létre egy virtuális gazdagép fájlt a képen látható módon:

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

Illessze be az alábbi tartalmat, és cserélje ki a crazytechgeek.info címet saját domainnevére.

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

Mentse el és lépjen ki a fájlból.

Most engedélyezze a virtuális gazdagép fájlt egy szimbolikus hivatkozás létrehozásával a sites-enabled könyvtárban.

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

A SELinux engedélyeinek beállítása a virtuális gépekhez

A CentOS 8 és az RHEL 8 a SELinux-szal érkezik, amely egy biztonsági modul a Linux rendszer biztonságának megerősítésére. Mivel az előző lépésben egyéni napló könyvtárat állított be, frissítenie kell néhány SELinux-házirendet, hogy utasítsa az Apache webszervert, hogy írjon a könyvtárba.

A SELinux Apache házirendek módosításának két módja van: A házirendek általános módosítása és a házirendek egy címtáron. Ez utóbbit részesítik előnyben, mert az előnyösebb.

SELinux házirendek beállítása egy címtáron

A SELinux engedélyek szerkesztése a naplókönyvtárhoz abszolút ellenőrzést biztosít az Apache webszerver házirendjei felett. Ez a módszer meglehetősen hosszadalmas, és manuálisan kell konfigurálnia a környezettípust a virtuális gazdagép konfigurációs fájljában megadott további könyvtárakhoz.

Mielőtt elkezdené, először ellenőrizze a SELinux által a naplókönyvtárhoz rendelt környezettípust:

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

A kimenetnek hasonlónak kell lennie az alábbiakhoz.

A kimeneten a beállított kontextus: httpd_sys_content_t. Ez azt jelzi, hogy a webszerver csak a naplókönyvtárban lévő fájlokat tudja olvasni. Módosítsa ezt a kontextust a httpd_log_t értékre, hogy az Apache naplóbejegyzéseket generáljon és adjon hozzá a könyvtárhoz.

Ezért hajtsa végre a parancsot:

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

Ha véletlenül a „semanage: parancs nem található” hibaüzenetet kapja.

Ez azt jelenti, hogy a semanage parancsot biztosító csomagok nincsenek telepítve. A hiba kijavításához telepítenie kell ezeket a csomagokat. De először ellenőrizze, hogy mely csomagok biztosítanak semanage parancsot a következő futtatással:

sudo dnf whatprovides /usr/sbin/semanage

A kimenet a szemanage-t biztosító csomagot adja, amely a policycoreutils-python-utils.

Most telepítse a csomagot az ábrán látható módon a DNF csomagkezelő segítségével.

sudo dnf install policycoreutils-python-utils

A kontextus megváltoztatására szolgáló parancsnak most működnie kell.

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

A módosítások mentéséhez és tartóssá tételéhez adja ki a restorecon parancsot az alábbi módon:

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

A módosításokat a parancs ismételt futtatásával erősítheti meg:

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

Ügyeljen arra, hogy a kontextus típusa a kimenetben látható módon httpd_log_t-ra változott.

Indítsa újra az Apache-t a módosítások alkalmazásához.

sudo systemctl restart httpd

Most ellenőrizheti, hogy az Apache menti-e a naplófájlokat a naplókönyvtárba, ha felsorolja a tartalmát az alábbi módon:

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

A képen látható módon két naplófájlt kell látnia: a hibanaplót és a kérésnaplófájlt.

Az Apache Virtual Host tesztelése

Végül meg kell bizonyosodnia arról, hogy az Apache webszerver kiszolgálja a virtuális gazdagép fájlját. Ehhez nyissa meg a böngészőt, és lépjen a szerver IP-címére vagy domain nevére:

http://domain-name

Tökéletes! Ez azt jelzi, hogy minden jól ment, és a virtuális tárhelyünk a várakozásoknak megfelelően működik.

Következtetés

Ebből az útmutatóból megtanultuk, hogyan kell telepíteni az Apache webszervert CentOS 8 és RHEL 8 rendszeren, és hogyan konfigurálhatunk egy virtuális gazdagép fájlt tartalmat szolgáltasson egy extra domain számára. Nyugodtan konfigurálhat több virtuális gazdagép fájlt, ahogyan megfelelőnek találja további tartományok elhelyezésére.

Ha teljes tárhely-vereget szeretne beállítani, azt javasoltam, hogy telepítsen egy LAMP-vermet a CentOS 8-ra.