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:
OutputRedirecting 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:
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:
<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:
<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ő:
Outputdrwxr-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:
Outputrestorecon 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:
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.