Hvernig á að setja upp Apache með Virtual Host á CentOS 8


Apache vefþjónninn er opinn og vinsæll HTTP vefþjónn sem heldur áfram að njóta gríðarlegrar markaðshlutdeildar í hýsingariðnaðinum. Það kemur með fullt af eiginleikum, þar á meðal endurbótum á einingum, stuðningi við fjölsamskiptareglur, einfaldaðri uppsetningu og stuðningi á mörgum tungumálum svo aðeins fátt eitt sé nefnt.

Í þessari handbók munum við leiða þig í gegnum uppsetningu Apache vefþjónsins á CentOS 8 og RHEL 8 með Virtual Host umhverfi. Þegar þessi einkatími er skrifaður er nýjasta útgáfan af Apache Apache 2.2.43.

Að setja upp Apache vefþjón

Til að byrja, uppfærðu fyrst CentOS 8 eða RHEL 8 kerfispakkalistann þinn með því að nota eftirfarandi dnf skipun.

$ sudo dnf update

Þegar uppfærslunni er lokið skaltu setja upp Apache vefþjón með því að framkvæma eftirfarandi skipun.

$ sudo dnf install httpd

Þegar það hefur verið sett upp geturðu staðfest útgáfu Apache með því að keyra rpm skipunina.

$ rpm -qi httpd

Skipunin prentar út fjölda upplýsinga eins og útgáfu, útgáfudag, smíði og arkitektúr pakkans.

Til að ræsa Apache HTTP vefþjónustuna skaltu keyra systemctl skipunina.

$ sudo systemctl start httpd

Til að staðfesta hvort þjónustan sé í gangi skaltu framkvæma.

$ sudo systemctl status httpd

Frá úttakinu gefur „virk“ staða í grænu til kynna að Apache vefþjónninn sé í gangi.

Til að taka af allan vafa um að vefþjónninn sé í gangi skaltu biðja um prófunarsíðu frá Apache með því að skoða IP tölu eða lén netþjónsins þíns eins og sýnt er.

http://server-ip  

Þú getur fengið IP netþjóninn þinn með því að keyra curl skipunina.

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

Þegar þú vafrar um IP tölu netþjónsins ættirðu að birta eftirfarandi vefsíðu.

Þetta er örugg staðfesting á því að vefþjónninn sé í gangi.

Umsjón með Apache vefþjóni

Með Apache uppsett og í gangi geturðu notað systemctl skoðunarverkfæri til að stjórna Apache.

Til dæmis, til að stöðva Apache skaltu keyra skipunina:

$ sudo systemctl stop httpd

Til að hefja þjónustuna aftur skaltu framkvæma:

$ sudo systemctl start httpd

Ef þú hefur gert breytingar á einhverjum af stillingarskrám þess og þú þarft að endurræsa til að beita breytingunum skaltu framkvæma skipunina:

$ sudo systemctl restart httpd

Endurræsing á þjónustunni veldur venjulega þjónusturöskun. Betri valkostur er einfaldlega að endurhlaða án þess að trufla tenginguna.

$ sudo systemctl reload httpd

Til að ræsa Apache vefþjóninn sjálfkrafa við ræsingu eða endurræsingu skaltu keyra skipunina hér að neðan. Þetta mun tryggja að Apache ræsist sjálfkrafa án afskipta þinnar.

$ sudo systemctl enable httpd

Ef þú velur að ræsa ekki þjónustuna sjálfkrafa við ræsingu skaltu keyra:

$ sudo systemctl disable httpd

Uppsetning Apache sýndargestgjafa

Sjálfgefið er að Apache vefþjónn sé stilltur til að þjóna eða hýsa aðeins eina vefsíðu. Ef þú vilt hýsa aðeins eina vefsíðu, þá er þetta skref ekki krafist. En ef þú ætlar að hýsa mörg lén á netþjóninum þínum, þá þarftu að stilla Apache sýndargestgjafa.

Sýndargestgjafi er sérstök skrá sem inniheldur stillingar sem gera þér kleift að setja upp sérstakt lén frá sjálfgefna. Fyrir þessa handbók munum við setja upp sýndargestgjafa fyrir lénið crazytechgeek.info.

Sjálfgefinn sýndargestgjafi er staðsettur í /var/www/html möppunni. Þetta virkar aðeins fyrir eina síðu. Til að búa til sérstakan sýndargestgjafa fyrir lénið okkar munum við búa til aðra möppuuppbyggingu í /var/www skránni eins og sýnt er.

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

Að auki geturðu líka búið til möppu til að geyma annálaskrár.

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

Næst skaltu breyta skráarheimildum með því að nota $USER umhverfisbreytuna eins og sýnt er.

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

Stilltu einnig heimildir vefrótarskrárinnar eins og sýnt er.

$ sudo chmod -R 755 /var/www

Næst skaltu búa til sýnishorn af index.html skrá eins og sýnt er.

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

Smelltu á bókstafinn i á lyklaborðinu og límdu smá sýnishorn af efni eins og sýnt er sem mun birtast í vafranum þegar sýndargestgjafinn er prófaður.

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

Vistaðu og lokaðu stillingarskránni.

Með sýnishornsskránni og vefskránni búin til, geturðu nú haldið áfram og búið til sýndarhýsingarskrána. Sýndarhýsingarskráin mun innihalda uppsetningu vefsvæðis lénsins þíns og leiðbeina Apache hvernig hún mun bregðast við beiðnum viðskiptavina.

Sýndarhýsingarskráin mun innihalda uppsetningu vefsvæðis lénsins þíns og leiðbeina Apache hvernig hún mun bregðast við beiðnum viðskiptavina. En þegar þú heldur áfram þarftu að búa til 2 möppur: sites-available og sites-enabled möppurnar.

Sýndarhýsingarskráin verður geymd í sites-available skránni á meðan sites-enabled skráin mun innihalda táknræna hlekkinn á sýndarhýsilinn.

Búðu til báðar möppurnar eins og sýnt er.

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

Næst skaltu breyta aðalstillingarskrá Apache vefþjónsins og leiðbeina Apache hvar á að finna sýndarhýsinguna inni í möppunni sem er virkt fyrir vefsvæði.

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

Bættu við línunni eins og sýnt er aftast í stillingarskránni.

IncludeOptional sites-enabled/*.conf

Vista og hætta.

Búðu til sýndarhýsingarskrá eins og sýnt er:

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

Límdu efnið hér að neðan og skiptu crazytechgeek.info út fyrir þitt eigið lén.

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

Vistaðu og lokaðu skránni.

Virkjaðu nú sýndarhýsingarskrána með því að búa til táknrænan hlekk í sites-enabled möppunni.

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

Aðlögun SELinux heimilda fyrir sýndargestgjafa

CentOS 8 og RHEL 8 eru með SELinux sem er öryggiseining til að styrkja öryggi Linux kerfisins. Þar sem þú stilltir sérsniðna annálaskrá í fyrra skrefi þarftu að uppfæra nokkrar SELinux reglur til að gefa Apache vefþjóninum fyrirmæli um að skrifa í möppuna.

Það eru 2 aðferðir við að breyta SELinux Apache stefnum: Aðlaga aðlögunarreglur almennt og reglurnar í möppu. Hið síðarnefnda er valið vegna þess að það er meira valið.

Að breyta SELinux heimildum fyrir annálaskrána gefur þér algera stjórn á stefnu Apache vefþjónsins. Þessi aðferð er nokkuð löng og krefst þess að þú stillir samhengisgerð handvirkt fyrir viðbótarskrár sem tilgreindar eru í stillingarskrá sýndarhýsilsins.

Áður en þú byrjar skaltu fyrst staðfesta samhengisgerðina sem SELinux hefur úthlutað annálaskránni:

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

Úttakið ætti að vera svipað og við höfum hér að neðan.

Frá úttakinu er stillt samhengi httpd_sys_content_t. Þetta gefur til kynna að vefþjónninn geti aðeins lesið skrár í annálaskránni. Þú þarft að breyta þessu samhengi í httpd_log_t til að gera Apache kleift að búa til og bæta annálsfærslum við möppuna.

Þess vegna skaltu framkvæma skipunina:

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

Ef þú skyldir fá villuna fyrir neðan \semanage: skipun fannst ekki.

Það gefur til kynna að pakkarnir sem gera ráð fyrir semanage skipuninni eru ekki settir upp. Til að laga þessa villu þarftu að setja upp þessa pakka. En fyrst skaltu athuga hvaða pakkar bjóða upp á semanage skipun með því að keyra:

$ sudo dnf whatprovides /usr/sbin/semanage

Úttakið gefur okkur pakkann sem gerir ráð fyrir semanage, sem er policycoreutils-python-utils.

Settu nú upp pakkann eins og sýnt er með DNF pakkastjóranum.

$ sudo dnf install policycoreutils-python-utils

Skipunin til að breyta samhenginu ætti nú að virka.

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

Til að vista breytingarnar og gera þær viðvarandi skaltu gefa út restorecon skipunina eins og sýnt er:

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

Þú getur staðfest breytingarnar með því að keyra aftur skipunina:

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

Athugaðu að samhengisgerðin hefur breyst í httpd_log_t eins og sést í úttakinu.

Endurræstu Apache til að breytingarnar verði notaðar.

$ sudo systemctl restart httpd

Þú getur nú staðfest hvort Apache sé að vista annálaskrár í annálaskránni með því að skrá innihald hennar eins og sýnt er:

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

Þú ættir að geta séð tvær annálsskrár eins og sýnt er: villuskrá og beiðniskrár.

Prófa Apache sýndargestgjafa

Að lokum þarftu að vera viss um að Apache vefþjónninn þjóni sýndarhýsingarskránni þinni. Til að gera þetta, opnaðu vafrann þinn og farðu á IP tölu eða lén netþjónsins þíns:

http://domain-name

Fullkomið! Þetta gefur til kynna að allt hafi gengið vel og sýndargestgjafi okkar er þjónað eins og búist var við.

Í þessari handbók höfum við lært hvernig á að setja upp Apache vefþjóninn á CentOS 8 og RHEL 8 og einnig hvernig á að stilla sýndarhýsingarskrá til að þjóna efni fyrir auka lén. Ekki hika við að stilla margar sýndarhýsingarskrár eins og þú telur henta til að koma til móts við fleiri lén.

Ef þú vilt setja upp heilan hýsingarstafla, mælti ég með því að þú settir upp LAMP-stafla á CentOS 8.