Yadda ake Shigar Apache tare da Virtual Host akan CentOS 8


Apache webserver shine buɗewa kuma sanannen sabar gidan yanar gizo na HTTP wanda ke ci gaba da jin daɗin rabon kasuwa mai yawa a cikin masana'antar karɓar baƙi. Yana jigilar kayayyaki da kayayyaki gami da kayan haɓaka abubuwa, tallafi na yarjejeniya da yawa, saukakakken tsari, da tallafi na yare da yawa don ambaton kaɗan.

A cikin wannan jagorar, zamu bi ku ta hanyar shigar da Apache webserver akan CentOS 8 da RHEL 8 tare da Yankin Mai Gida Mai Gida. A lokacin rubuta wannan darasin, sabon nau'in Apache shine Apache 2.2.43.

Girkawar Sabar Yanar Gizon Apache

Don farawa, fara sabunta jerin abubuwan kunshin tsarinku na CentOS 8 ko RHEL 8 ta amfani da umarnin dnf mai zuwa.

$ sudo dnf update

Da zarar an gama sabuntawa, shigar da Apache webserver ta aiwatar da umarni mai zuwa.

$ sudo dnf install httpd

Da zarar an shigar, zaku iya tabbatar da sigar Apache ta hanyar kunna rpm umurnin.

$ rpm -qi httpd

Umurnin yana buga abubuwa masu tarin yawa kamar sigar, ranar fitarwa, gini da kuma tsarin kunshin.

Don fara sabis ɗin yanar gizo na Apache HTTP, gudanar da tsarin systemctl.

$ sudo systemctl start httpd

Don tabbatarwa idan sabis ɗin yana gudana, aiwatar.

$ sudo systemctl status httpd

Daga fitarwa, halin 'aiki' a cikin kore yana nuna cewa Apache webserver yana sama yana aiki.

Don share duk wani shakku cewa mai amfani da yanar gizo yana gudana, nemi shafin gwaji daga Apache ta hanyar bincika adireshin IP ɗin uwar garkenku ko sunan yankin kamar yadda aka nuna.

http://server-ip  

Kuna iya samun IP ɗin uwar garke ta hanyar aiwatar da umarnin curl.

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

Lokacin da kake bincika adireshin IP na uwar garke, ya kamata a nuna shafin yanar gizon mai zuwa.

Wannan tabbaci ne tabbatacce cewa webserver yana gudana.

Gudanar da Apache Webserver

Tare da shigar Apache da gudana, zaka iya amfani da kayan aikin systemctl don gudanar da Apache.

Misali, don dakatar da Apache, gudanar da umarnin:

$ sudo systemctl stop httpd

Don fara sabis ɗin kuma, aiwatar da:

$ sudo systemctl start httpd

Idan kunyi canje-canje ga kowane fayil ɗin saitunan sa kuma kuna buƙatar sake farawa don amfani da canje-canje, aiwatar da umarnin:

$ sudo systemctl restart httpd

Sake kunna sabis yawanci yana haifar da rushewar sabis. Kyakkyawan madadin shine kawai a sake lodawa ba tare da wani tsangwama tare da haɗin ba.

$ sudo systemctl reload httpd

Don fara uwar garken gidan yanar gizo na Apache ta atomatik kan kunnawa ko sake kunnawa gudanar da umarnin da ke ƙasa. Wannan zai tabbatar Apache ya fara ta atomatik ba tare da sa hannun ka ba.

$ sudo systemctl enable httpd

Idan ka zaɓi kada ka fara aikin ta atomatik a kan taya, gudu:

$ sudo systemctl disable httpd

Kafa Apungiyoyin Masu Girman Apache

Ta hanyar tsoho, an saita sabar yanar gizo ta Apache don yin aiki ko karɓar rukunin yanar gizo ɗaya kawai. Idan kanaso ka dauki bakuncin gidan yanar gizo daya kawai, to wannan matakin baya bukata. Amma a yayin da kuka shirya karɓar bakuna yankuna da yawa akan sabarku, to kuna buƙatar saita rundunonin kama-da-wane na Apache.

Mai masaukin baki fayil ne na musamman wanda ya ƙunshi abubuwan daidaitawa waɗanda ke ba ku damar kafa wani yanki na daban daga wanda yake na asali. Don wannan jagorar, za mu kafa masaukin baki don yankin crazytechgeek.info.

Tsohuwar rundunar kama-da-wane ta kasance a cikin /var/www/html directory. Wannan yana aiki ne kawai don shafi guda ɗaya. Don ƙirƙirar keɓaɓɓen mai masaukin baki yankinmu, za mu ƙirƙiri wani tsarin kundin adireshi a cikin adireshin /var/www kamar yadda aka nuna.

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

Allyari, kuna iya ƙirƙirar kundin adireshi don adana fayilolin log.

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

Na gaba, shirya izinin fayil suna amfani da $USER sauyin yanayi kamar yadda aka nuna.

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

Hakanan, daidaita izini na kundin adireshin yanar gizo kamar yadda aka nuna.

$ sudo chmod -R 755 /var/www

Na gaba, ƙirƙiri samfurin index.html fayil kamar yadda aka nuna.

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

Buga harafin i akan madannin ki liƙa wasu samfurin abun ciki kamar yadda aka nuna wanda za a nuna akan burauzar yanar gizo yayin gwada mai masaukin.

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

Adana kuma ka fita fayil din sanyi.

Tare da fayil din samfurin samfurin da kundin adireshin rukunin yanar gizo da aka kirkira, yanzu zaku iya ci gaba da ƙirƙirar fayil ɗin mai masauki kama-da-wane. Fayil mai masauki na kama-da-wane zai ƙunshi tsarin shafin yanar gizon ku kuma koya wa Apache yadda za ta amsa buƙatun abokan ciniki.

Fayil mai masauki na kama-da-wane zai ƙunshi tsarin shafin yanar gizon ku kuma koya wa Apache yadda za ta amsa buƙatun abokan ciniki. Amma ci gaba, kuna buƙatar ƙirƙirar kundayen adireshi 2: shafukan yanar gizo-akwai da shafuka-kunna kundin adireshi.

Za a adana fayil ɗin mai karɓar baƙon a cikin adireshin akwai-shafukan yanar gizo yayin da saitunan-kunna kundin adireshin zai ƙunsar alamar alama ta mai masaukin baki.

Createirƙiri duka kundayen adireshi kamar yadda aka nuna.

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

Na gaba, gyara babban fayil ɗin sabar gidan yanar gizo na Apache sannan ka umarci Apache inda zaka sami mai masaukin baki a cikin kundin adireshi.

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

Endara layin kamar yadda aka nuna a ƙarshen fayil ɗin daidaitawa.

IncludeOptional sites-enabled/*.conf

Ajiye ka fita.

Yanzu ƙirƙirar fayil ɗin mai masauki kama-da-wane kamar yadda aka nuna:

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

Manna abubuwan da ke ƙasa kuma maye gurbin crazytechgeek.info tare da sunan yankin ku.

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

Adana kuma ka fita fayil din.

Yanzu kunna fayil ɗin mai karɓar baƙi ta ƙirƙirar hanyar haɗin alama a cikin adireshin saitunan-kunnawa .

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

Daidaita Izini na izini don Mai watsa shiri na Musamman

CentOS 8 da RHEL 8 suna jigila tare da SELinux wanda shine tsarin tsaro don ƙarfafa tsarin Linux na tsaro. Tunda kun saita kundin adireshi na al'ada a matakin da ya gabata, kuna buƙatar sabunta wasu manufofin SELinux don koya wa Apache webserver ya rubuta zuwa kundin adireshin.

Akwai hanyoyi 2 a cikin daidaita manufofin SELinux Apache: Daidaita daidaita manufofin duniya & manufofin kan kundin adireshi. Ana fifita na karshen saboda an fi fifita shi.

Gyara izini na SELinux don kundin adireshi yana baku cikakken iko kan manufofin masu amfani da yanar gizo na Apache. Wannan hanyar tana da tsayi kuma tana buƙatar ku daidaita da yanayin mahallin da hannu don ƙarin kundayen adireshi waɗanda aka ƙayyade a cikin fayil ɗin mai karɓar mai masauki.

Kafin farawa, fara tabbatar da yanayin mahallin da aka sanya wa kundin adireshi ta hanyar SELinux:

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

Samarwa ya zama daidai da abin da muke da shi a ƙasa.

Daga fitarwa, saitin da aka saita shine httpd_sys_content_t. Wannan yana nuna cewa mai amfani da yanar gizo zai iya karanta fayiloli ne kawai a cikin kundin adireshi. Kuna buƙatar canza wannan mahallin zuwa httpd_log_t don bawa Apache damar haɓakawa da ƙara shigarwar shiga cikin kundin adireshin.

Saboda haka, aiwatar da umarnin:

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

Idan ka sami kuskure a ƙasa\"semanage: ba a samo umarni ba".

Hakan yana nuna cewa ba a sanya fakitin da ke ba da umarnin semanage ba. Don gyara wannan kuskuren, kuna buƙatar shigar da waɗancan fakitin. Amma da farko, bincika wane kunshin da aka samar da umarnin semanage ta hanyar gudu:

$ sudo dnf whatprovides /usr/sbin/semanage

Sakamakon ya ba mu kunshin da ke ba da samari, wanda shine manufofin siyasa-kayan-kayan aiki.

Yanzu shigar da kunshin kamar yadda aka nuna ta amfani da mai sarrafa kunshin DNF.

$ sudo dnf install policycoreutils-python-utils

Umurnin canza mahallin yakamata yayi aiki yanzu.

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

Don adana canje-canjen kuma sanya su dorewa, ba da umarnin mayar da su kamar yadda aka nuna:

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

Kuna iya tabbatar da canje-canje ta sake aiwatar da umarnin:

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

Tabbatar da lura cewa nau'in mahallin ya canza zuwa httpd_log_t kamar yadda aka gani a cikin fitarwa.

Sake kunna Apache don canje-canjen da za a yi amfani da su.

$ sudo systemctl restart httpd

Yanzu zaku iya tabbatarwa idan Apache yana adana fayilolin log a cikin kundin adireshi ta jerin abubuwan da ke ciki kamar yadda aka nuna:

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

Ya kamata ku sami damar ganin fayilolin log guda biyu kamar yadda aka nuna: kuskuren kuskure da buƙatar fayilolin log.

Gwajin Apache Virtual Host

Aƙarshe, kuna buƙatar tabbatar da cewa Apache webserver yana bautar da fayil ɗin mai watsa shiri na kamala. Don yin wannan, buɗe burauz ɗin ku kuma je adireshin IP ɗin uwar garkenku ko sunan yanki:

http://domain-name

Cikakke! Wannan yana nuna cewa komai ya tafi daidai kuma ana yiwa mai masaukinmu aiki kamar yadda ake tsammani.

A cikin wannan jagorar, mun koyi yadda ake girka Apache webserver akan CentOS 8 da RHEL 8 da kuma yadda ake tsara fayil ɗin mai karɓar baƙon don ba da abun ciki don ƙarin yanki. Kuna jin kyauta don daidaita fayilolin mai masauki da yawa yayin da kuke ganin ya dace don karɓar ƙarin yankuna.

Idan kana son kafa cikakken rukunin talla, Na baka shawarar ka sanya LAMP tari akan CentOS 8.