Hogyan telepítsük az Apache webszervert a CentOS 7

Bevezetés

az Apache HTTP szerver a legszélesebb körben használt webszerver a világon. Számos erőteljes funkciót kínál, beleértve a dinamikusan betölthető modulokat, a robusztus médiatartalmat, valamint a más népszerű szoftverekkel való kiterjedt integrációt.

ebben az útmutatóban egy Apache webkiszolgálót telepít virtuális házigazdákkal a CentOS 7 kiszolgálón.

előfeltételek

az útmutató befejezéséhez a következőkre lesz szüksége:

  • a kiszolgálón konfigurált sudo jogosultságokkal rendelkező nem root felhasználó, amelyet a CentOS 7 kezdeti szerverbeállítási útmutatójának követésével állít be.
  • egy alapvető tűzfal, amelyet az új CentOS 7 szerverek útmutatójának további ajánlott lépései követésével konfiguráltak.

1. lépés — az Apache telepítése

az Apache elérhető a CentOS alapértelmezett szoftvertáraiban, ami azt jelenti, hogy a yum csomagkezelővel telepítheti.

mivel az előfeltételekben konfigurált nem root sudo felhasználó frissíti a helyi Apache httpd csomagindexet, hogy tükrözze a legújabb upstream változásokat:

  • sudo yum update httpd

a csomagok frissítése után telepítse az Apache csomagot:

  • sudo yum install httpd

a telepítés megerősítésekor a yum telepíti az Apache-t és az összes szükséges függőséget.

Ha elvégezte az előfeltételek részben említett új CentOS 7 kiszolgálók útmutatójának további ajánlott lépéseit, akkor a firewalld portot telepítette a kiszolgálóra, és meg kell nyitnia a 80 portot, hogy az Apache kiszolgálhassa a HTTP-n keresztüli kéréseket. Ha még nem tette meg, akkor ezt úgy teheti meg, hogy engedélyezi a firewalld ‘s http szolgáltatást a következő paranccsal:

  • sudo firewall-cmd --permanent --add-service=http

Ha az Apache-t a HTTPS-en keresztüli tartalom kiszolgálására kívánja beállítani, akkor a 443 portot is meg akarja nyitni a https szolgáltatás:

  • sudo firewall-cmd --permanent --add-service=https

Ezután töltse újra a tűzfalat az új szabályok életbe léptetéséhez:

  • sudo firewall-cmd --reload

a tűzfal újratöltése után készen áll a szolgáltatás elindítására és a webszerver ellenőrzésére.

2. lépés-a webkiszolgáló ellenőrzése

az Apache nem indul el automatikusan a CentOS-on a telepítés befejezése után. Meg kell kezdeni az Apache folyamat kézzel:

  • sudo systemctl start httpd

Ellenőrizze, hogy a szolgáltatás fut a következő paranccsal:

  • sudo systemctl status httpd

egy active állapot, ha a szolgáltatás fut:

Output
Redirecting to /bin/systemctl status httpd.service● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1290 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─1290 /usr/sbin/httpd -DFOREGROUND ├─1291 /usr/sbin/httpd -DFOREGROUND ├─1292 /usr/sbin/httpd -DFOREGROUND ├─1293 /usr/sbin/httpd -DFOREGROUND ├─1294 /usr/sbin/httpd -DFOREGROUND └─1295 /usr/sbin/httpd -DFOREGROUND...

Mint látható, a termelés, a szolgáltatás, úgy tűnik, sikeresen megkezdte. Ennek tesztelésének legjobb módja azonban egy oldal kérése az Apache-tól.

elérheti az alapértelmezett Apache céloldalt, hogy megerősítse, hogy a szoftver megfelelően fut az IP-címén keresztül. Ha nem tudja a szerver IP-címét, akkor kap ez néhány különböző módon a parancssorból.

írja be ezt a kiszolgáló parancssorába:

  • hostname -I

Ez a parancs megjeleníti a gazdagép összes hálózati címét, így néhány IP-címet szóközökkel elválasztva kap vissza. Meg lehet próbálni minden a böngészőben, hogy ha működnek.

Alternatív megoldásként acurl segítségével kérheti IP-címét aicanhazip.com – tól, amely megadja a nyilvános IPv4-címét, amint az az az interneten egy másik helyről látható:

  • curl -4 icanhazip.com

Ha megvan a szerver IP-címe, írja be a böngésző címsorába:

http://your_server_ip

megjelenik az alapértelmezett CentOS 7 Apache weboldal:

alapértelmezett Apache oldal a CentOS 7

Ez az oldal azt jelzi, hogy az Apache megfelelően működik. Tartalmaz néhány alapvető információt a fontos Apache fájlokról és könyvtárhelyekről is. Most, hogy a szolgáltatás telepítve van és fut, mostantól különböző systemctl parancsokat használhat a szolgáltatás kezeléséhez.

3. lépés-az Apache folyamat kezelése

most, hogy a webkiszolgáló működik, menjünk át néhány alapvető kezelési parancsra.

a webkiszolgáló leállításához írja be:

  • sudo systemctl stop httpd

a webkiszolgáló leállításához írja be:

  • sudo systemctl start httpd

a szolgáltatás leállításához, majd indítsa újra, írja be:

  • sudo systemctl restart httpd

ha egyszerűen konfigurációs változtatásokat hajt végre, az Apache gyakran újratölthet a kapcsolatok leesése nélkül. Ehhez használja ezt a parancsot:

  • sudo systemctl reload httpd

alapértelmezés szerint az Apache úgy van beállítva, hogy automatikusan elinduljon, amikor a kiszolgáló elindul. Ha nem ezt akarja, tiltsa le ezt a viselkedést a következő beírással:

  • sudo systemctl disable httpd

a szolgáltatás indításakor történő újraindításához írja be:

  • sudo systemctl enable httpd

az Apache automatikusan elindul, amikor a szerver újra elindul.

az Apache alapértelmezett konfigurációja lehetővé teszi a kiszolgáló számára, hogy egyetlen webhelyet fogadjon. Ha azt tervezi, hogy több domaint tárol a kiszolgálón, akkor konfigurálnia kell a virtuális házigazdákat az Apache webszerverén.

4. lépés — virtuális gazdagépek beállítása (ajánlott)

az Apache webkiszolgáló használatakor virtuális gazdagépeket (hasonlóan a Nginx szerverblokkjaihoz) használhat a konfigurációs adatok beágyazására, és egynél több tartományt tárolhat egyetlen kiszolgálóról. Ebben a lépésben létrehoz egy example.com nevű domaint, de ezt a saját domain névvel kell helyettesítenie. Ha többet szeretne megtudni a domain név beállításáról a DigitalOcean segítségével, olvassa el a bevezetés a DigitalOcean DNS-be.

az Apache a CentOS 7-en alapértelmezés szerint engedélyezve van egy szerverblokk, amely a /var/www/html könyvtár dokumentumainak kiszolgálására van konfigurálva. Bár ez jól működik egyetlen webhely esetében, nehézkes lehet, ha több webhelyet tárol. A /var/www/html módosítása helyett a /var/www könyvtárszerkezetet hoz létre a example.com webhelyhez, így a /var/www/html helyett az alapértelmezett könyvtárat kell kiszolgálni, ha az ügyfél kérése nem egyezik más könyvtárral oldalak.

Létre a html könyvtárat example.com következőképpen használja a -p zászló létrehozásához szükséges szülő könyvtárak:

  • sudo mkdir -p /var/www/example.com/html

Létre egy további könyvtárban kell tárolni a naplófájlok az oldalon:

  • sudo mkdir -p /var/www/example.com/log

a Következő rendel tulajdonjogát a html könyvtár a $USER környezeti változó:

  • sudo chown -R $USER:$USER /var/www/example.com/html

Győződjön meg arról, hogy a web root-nak az alapértelmezett jogosultságok beállítása:

  • sudo chmod -R 755 /var/www

Next, create a sample index.html page using vi or your favorite editor:

  • sudo vi /var/www/example.com/html/index.html

Press i to switch to INSERT mode and add the following sample HTML to the file:

/var/www/example.com/html/index.html
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body></html>

Save and close the file by pressing ESC, typing :wq, and pressing ENTER.

a webhely könyvtárával és a minta index fájllal a helyén, majdnem készen áll a virtuális gazdafájlok létrehozására. A virtuális gazdagépfájlok megadják a különálló webhelyek konfigurációját, majd megmondják az Apache webszervernek, hogyan kell reagálni a különböző tartománykérelmekre.

a virtuális házigazdák létrehozása előtt létre kell hoznia egy sites-available könyvtárat a tároláshoz. Létrehozod a sites-enabled könyvtárat is, amely megmondja az Apache-nak, hogy egy virtuális gazdagép készen áll a látogatók kiszolgálására. Asites-enabled könyvtár szimbolikus linkeket fog tartani a közzétenni kívánt virtuális házigazdákhoz. Hozzon létre mindkét könyvtárat a következő paranccsal:

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

ezután megmondja az Apache-nak, hogy keresse meg a virtuális házigazdákat a könyvtárban. Ehhez szerkessze az Apache fő konfigurációs fájlját, majd adjon hozzá egy sort, amely további konfigurációs fájlokhoz opcionális könyvtárat nyilvánít:

  • sudo vi /etc/httpd/conf/httpd.conf

adja hozzá ezt a sort a fájl végéhez:

IncludeOptional sites-enabled/*.conf

mentse el és zárja be a fájlt, ha befejezte a sor hozzáadását. Most, hogy a virtuális host könyvtárak a helyén, akkor hozza létre a virtuális host fájlt.

Kezdje azzal, hogy új fájlt hoz létre asites-available könyvtárban:

  • sudo vi /etc/httpd/sites-available/example.com.conf

adja hozzá a következő konfigurációs blokkhoz, és módosítsa aexample.com tartományt a domain névhez:

/etc / httpd / sites-elérhető / példa. com.conf
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined</VirtualHost>

Ez megmondja az Apache-nak, hogy hol találja meg közvetlenül a root-ot, amely a nyilvánosan hozzáférhető webes dokumentumokat tartalmazza. Azt is megmondja az Apache-nak, hogy hol tárolja a hibát, és naplókat kér az adott webhelyhez.

mentse el és zárja be a fájlt, ha elkészült.

most, hogy létrehozta a virtuális gazdafájlokat, engedélyezi azokat, hogy az Apache tudja kiszolgálni őket a látogatóknak. Ehhez hozzon létre egy szimbolikus linket minden virtuális gazdagéphez a sites-enabled könyvtárban:

  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

a virtuális gazdagép már konfigurálva van, és készen áll a tartalom kiszolgálására. Az Apache szolgáltatás újraindítása előtt ellenőrizzük, hogy a SELinux rendelkezik-e a megfelelő házirendekkel a virtuális házigazdák számára.

5. lépés – a SELinux Engedélyek beállítása a virtuális házigazdák számára (ajánlott)

a SELinux úgy van beállítva, hogy az alapértelmezett Apache konfigurációval működjön. Mivel egyéni naplófájlt állított be a virtuális hosts konfigurációs fájlban, hibát fog kapni, ha megpróbálja elindítani az Apache szolgáltatást. Ennek megoldásához frissítenie kell a SELinux házirendeket, hogy az Apache írhasson a szükséges fájlokra. A SELinux fokozott biztonságot nyújt a CentOS 7 környezetben, ezért nem ajánlott teljesen letiltani a kernel modult.

a házirendek beállításának különböző módjai vannak a környezet igényei alapján, mivel a SELinux lehetővé teszi a biztonsági szint testreszabását. Ez a lépés az Apache-házirendek módosításának két módszerére terjed ki: egyetemesen és egy adott könyvtárban. A könyvtárakra vonatkozó házirendek módosítása biztonságosabb, ezért az ajánlott megközelítés.

az Apache-házirendek általános beállítása

az Apache-házirend általánosan történő beállítása megmondja a SELinux-nak, hogy az összes Apache-folyamatot azonos módon kezelje a httpd_unified boolean használatával. Bár ez a megközelítés sokkal kényelmesebb, ez nem ad ugyanolyan szintű ellenőrzést, mint egy olyan megközelítés, amely egy fájlra vagy könyvtárházirendre összpontosít.

futtassa a következő parancsot egy univerzális Apache házirend beállításához:

  • sudo setsebool -P httpd_unified 1

a setsebool parancs megváltoztatja a SELinux boolean értékeket. A -P zászló frissíti a rendszerindítási időt, így ez a változás továbbra is fennáll az újraindítások során. httpd_unified az a logikai, amely megmondja a SELinux-nak, hogy az összes Apache folyamatot azonos típusúnak kezelje, így engedélyezte azt 1értékkel.

Apache házirendek beállítása a

/var/www/example.com/log könyvtárhoz tartozó SELinux engedélyek egyedi beállítása nagyobb ellenőrzést biztosít az Apache házirendek felett, de további karbantartást is igényelhet. Mivel ez az opció nem általánosan beállítási házirendek, manuálisan kell beállítania a kontextus típusát a virtuális gazdagép-konfigurációkban megadott új naplófájlok számára.

először ellenőrizze, hogy a SELinux megadta-e a /var/www/example.com/log könyvtárat:

  • sudo ls -dZ /var/www/example.com/log/

Ez a parancs felsorolja és kinyomtatja a könyvtár SELinux kontextusát. Látni fogja kimenet hasonló a következő:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/

az aktuális kontextus httpd_sys_content_t, ami azt mondja a SELinux-nak, hogy az Apache folyamat csak az ebben a könyvtárban létrehozott fájlokat tudja olvasni. Ebben az oktatóanyagban a /var/www/example.com/log könyvtár kontextus típusát httpd_log_t – ra változtatja. Ez a típus lehetővé teszi az Apache számára, hogy webalkalmazás-naplófájlokat generáljon és csatoljon hozzá:

  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

Ezután használja a restorecon parancsot a módosítások alkalmazásához, és az újraindítások során is fennmaradjanak:

  • sudo restorecon -R -v /var/www/example.com/log

The -R flag futtatja ezt a parancsot rekurzívan, ami azt jelenti, hogy frissíti a meglévő fájlokat az új kontextus használatához. A-v zászló kiírja a parancs által végrehajtott kontextusmódosításokat. A következő kimenetet fogja látni, amely megerősíti a változásokat:

Output
restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

a kontextusokat még egyszer felsorolhatja a változások megtekintéséhez:

  • sudo ls -dZ /var/www/example.com/log/

a kimenet tükrözi a frissített kontextus típusát:

most, hogy a /var/www/example.com/log könyvtár a httpd_log_t típust használja, készen áll a virtuális gazdagép konfigurációjának tesztelésére.

6. lépés — a virtuális gazdagép tesztelése (ajánlott)

miután a SELinux kontextust mindkét módszerrel frissítették, az Apache képes lesz írni a /var/www/example.com/log könyvtárba. Most sikeresen újraindíthatja az Apache szolgáltatást:

  • sudo systemctl restart httpd

sorolja fel a /var/www/example.com/log könyvtár tartalmát, hogy megtudja, az Apache létrehozta-e a naplófájlokat:

  • ls -lZ /var/www/example.com/log

látni fogja, hogy az Apache képes volt létrehozni a error.log és requests.log a virtuális gazdagép konfigurációban megadott fájlok:

Output
-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

a virtuális gazdagép beállítása és a SELinux engedélyek frissítése, az Apache mostantól a domain nevét fogja szolgálni. Ezt kipróbálhatja a http://example.com navigációval, ahol valami ilyesmit kell látnia:

siker! Az example.com virtuális host működik!

Ez megerősíti, hogy a virtuális gazdagép sikeresen konfigurálta a tartalmat. Ismételje meg a 4.és az 5. lépést, hogy további domainekhez új virtuális hostokat hozzon létre SELinux jogosultságokkal.

következtetés

ebben az oktatóanyagban telepítette és kezelte az Apache webkiszolgálót. Most, hogy telepítve van a webkiszolgáló, számos lehetősége van arra, hogy milyen típusú tartalmat tud kiszolgálni, valamint a technológiák segítségével gazdagabb élményt hozhat létre.

Ha egy teljesebb alkalmazáscsomagot szeretne felépíteni, akkor nézze meg ezt a cikket arról, hogyan konfigurálhat egy Lámpacsomagot a CentOS 7-en.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük