CentOS 8-de wirtual host bilen Apache-ni nädip gurmaly


Apache web serweri, hosting pudagynda uly bazar paýyndan peýdalanmagyny dowam etdirýän açyk we meşhur HTTP web serweri. Birnäçe moduly gowulandyrmak, köp protokol goldawy, ýönekeýleşdirilen konfigurasiýa we köp dilli goldaw ýaly köp sanly aýratynlyk bilen iberilýär.

Bu gollanmada, CentOS 8 we RHEL 8-de Apache web serwerini wirtual Host gurşawy bilen gurarys. Bu gollanmany ýazan wagty Apache-iň soňky wersiýasy Apache 2.2.43.

Apache web serwerini gurmak

Başlamak üçin ilki bilen aşakdaky dnf buýrugyny ulanyp, CentOS 8 ýa-da RHEL 8 ulgam paket sanawyňyzy täzeläň.

$ sudo dnf update

Täzelenme tamamlanandan soň, aşakdaky buýrugy ýerine ýetirip, Apache web serwerini guruň.

$ sudo dnf install httpd

Gurlandan soň, rpm buýrugyny işledip, Apache wersiýasyny barlap bilersiňiz.

$ rpm -qi httpd

Buýruk bukjanyň wersiýasy, goýberilen senesi, gurluşy we arhitekturasy ýaly köp sanly maglumatlary çap edýär.

Apache HTTP web hyzmatyny başlamak üçin systemctl buýrugyny işlediň.

$ sudo systemctl start httpd

Hyzmatyň işleýändigini ýa-da ýokdugyny tassyklamak üçin ýerine ýetiriň.

$ sudo systemctl status httpd

Çykyşdan, ýaşyl reňkdäki “işjeň” ýagdaý Apache web serweriniň işleýändigini we işleýändigini görkezýär.

Web serweriniň işleýändigine şübheleri aýyrmak üçin serweriňiziň IP adresine ýa-da domen adyna görkezilişi ýaly Apache-den synag sahypasyny soraň.

http://server-ip  

Serl IP-ni curl buýrugy bilen alyp bilersiňiz.

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

Serweriň IP adresine göz aýlanyňyzda aşakdaky web sahypasyny görkezmeli.

Bu, web serweriniň işleýändigini tassyklaýan tassyklama.

Apache web sahypasyny dolandyrmak

Apache gurnalan we işleýän bolsa, Apache-ni dolandyrmak üçin systemctl barlag guralyny ulanyp bilersiňiz.

Mysal üçin, Apache-ni duruzmak üçin buýrugy işlediň:

$ sudo systemctl stop httpd

Hyzmaty ýene bir gezek başlamak üçin ýerine ýetiriň:

$ sudo systemctl start httpd

Onuň konfigurasiýa faýllarynyň haýsydyr birine üýtgeşme girizen bolsaňyz we üýtgetmeleri ulanmak üçin täzeden başlamaly bolsaňyz, buýrugy ýerine ýetiriň:

$ sudo systemctl restart httpd

Hyzmaty täzeden açmak, adatça hyzmatyň kesilmegine sebäp bolýar. Has oňat alternatiwa, hiç hili päsgelçiliksiz täzeden ýüklemekdir.

$ sudo systemctl reload httpd

“Apache” web serwerini açmak ýa-da gaýtadan açmak bilen awtomatiki başlamak üçin aşakdaky buýrugy işlediň. Bu, Apache-iň gatyşmazdan awtomatiki başlamagyny üpjün eder.

$ sudo systemctl enable httpd

Hyzmaty awtomatiki usulda başlamazlygy saýlasaňyz, işlediň:

$ sudo systemctl disable httpd

Apache wirtual hostlaryny gurmak

Düzgüne görä, Apache web serweri diňe bir web sahypasyna hyzmat etmek ýa-da ýerleşdirmek üçin düzülendir. Diňe bir web sahypasyny ýerleşdirmek isleseňiz, bu ädim hökman däl. Serveröne serweriňizde birnäçe domeni ýerleşdirmegi meýilleşdirýän bolsaňyz, Apache wirtual hostlaryny sazlamaly.

Wirtual host, deslapky faýldan aýratyn domen gurmaga mümkinçilik berýän konfigurasiýalary öz içine alýan aýratyn faýl. Bu gollanma üçin crazytechgeek.info domeni üçin wirtual host gurarys.

Adaty wirtual host /var/www/html katalogynda ýerleşýär. Bu diňe bir sahypa üçin işleýär. Domenimiz üçin aýratyn wirtual host döretmek üçin, görkezilişi ýaly /var/www katalogynyň içinde başga bir katalog gurluşyny dörederis.

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

Mundan başga-da, gündelik faýllary saklamak üçin katalog döredip bilersiňiz.

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

Ondan soň, faýl rugsatlaryny redaktirläň, görkezilişi ýaly $USER gurşaw üýtgeýjisini ulanyň.

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

Şeýle hem, webroot katalogynyň rugsatlaryny görkezilişi ýaly sazlaň.

$ sudo chmod -R 755 /var/www

Ondan soň görkezilişi ýaly index.html faýly dörediň.

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

Klawiaturada i harpyny basyň we wirtual öý eýesini synanyňyzda web brauzerinde görkeziljek käbir mazmun mazmunyny goýuň.

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

Sazlama faýly ýazdyryň we çykyň.

Indeks faýly we sahypa katalogy döredilensoň, indi dowam edip, wirtual host faýly döredip bilersiňiz. Wirtual host faýly domeniňiziň sahypasynyň konfigurasiýasyny öz içine alar we Apache-e müşderileriň isleglerine nähili jogap berjekdigini görkezer.

Wirtual host faýly domeniňiziň sahypasynyň konfigurasiýasyny öz içine alar we Apache-e müşderileriň isleglerine nähili jogap berjekdigini görkezer. Emma dowam etmek üçin 2 sany katalog döretmeli: saýtlary elýeterli we saýtlar bilen işleýän kataloglary.

Wirtual host faýly saýtlary elýeterli katalogynda saklanar, saýtlary işjeňleşdirýän bukjada wirtual host bilen simwoliki baglanyşyk bolar.

Görkezilişi ýaly iki katalogy dörediň.

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

Ondan soň, Apache web serweriniň esasy konfigurasiýa faýlyny üýtgediň we saýtlar bilen işleýän katalogyň içinde wirtual öý eýesini nireden tapmalydygyny Apache görkeziň.

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

Sazlama faýlynyň iň soňunda görkezilişi ýaly setiri goşuň.

IncludeOptional sites-enabled/*.conf

Saklaň we çykyň.

Indi görkezilişi ýaly wirtual host faýly dörediň:

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

Mazmuny aşakda goýuň we crazytechgeek.info öz domen adyňyz bilen çalşyň.

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

Faýly ýazdyryň we çykyň.

Indi saýtlar bilen işleýän katalogynda simwoliki baglanyşyk döredip, wirtual host faýly açyň.

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

Wirtual öý eýeleri üçin SELinux rugsatlaryny sazlamak

CentOS 8 we RHEL 8, Linux ulgamynyň howpsuzlygyny berkitmek üçin howpsuzlyk moduly bolan SELinux bilen iberilýär. Öňki ädimde adaty gündelik bukjasyny düzeniňiz üçin, Apache web serwerine kataloga ýazmagy tabşyrmak üçin käbir SELinux syýasatlaryny täzelemeli.

SELinux Apache syýasatlaryny sazlamakda 2 çemeleşme bar: uniwersal sazlaýyş syýasatlaryny we katalogdaky syýasatlary sazlamak. Soňkusy has ileri tutulýandygy üçin ileri tutulýar.

Directoryurnal katalogy üçin SELinux rugsatlaryny redaktirlemek, Apache web serweriniň syýasatlaryna doly gözegçilik edýär. Bu usul gaty uzyn we wirtual host konfigurasiýa faýlynda görkezilen goşmaça kataloglar üçin kontekst görnüşini el bilen düzmegiňizi talap edýär.

Işe başlamazdan ozal SELinux tarapyndan gündelik bukjasyna bellenen kontekst görnüşini tassyklaň:

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

Çykyş aşakdakylardaky ýaly bolmaly.

Çykyşdan, kesgitlenen kontekst httpd_sys_content_t. Bu, web serweriniň diňe gündelik bukjasyndaky faýllary okap biljekdigini görkezýär. Apache-i katalogda gündelik ýazgylary döretmek we goşmak üçin bu mazmuny httpd_log_t diýip üýtgetmeli.

Şonuň üçin buýrugy ýerine ýetiriň:

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

Aşakdaky ýalňyşlygy alsaňyz\semanage: buýruk tapylmady.

Düzmek buýrugyny üpjün edýän paketleriň gurulmaýandygyny aňladýar. Bu ýalňyşlygy düzetmek üçin şol paketleri gurmaly. Firstöne ilki bilen haýsy paketleriň işlemegi buýrugy üpjün edýändigini barlaň:

$ sudo dnf whatprovides /usr/sbin/semanage

Çykyş, syýasaty ýöretmegi üpjün edýän bukjany berýär, ýagny politcoreutils-python-utils.

Indi bukjany DNF paket dolandyryjysyny ulanyp görkezilişi ýaly guruň.

$ sudo dnf install policycoreutils-python-utils

Konteksti üýtgetmek buýrugy indi işlemeli.

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

Üýtgeşmeleri ýatda saklamak we dowamly etmek üçin, dikeldiş buýrugyny görkezilişi ýaly beriň:

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

Üýtgeşmeleri buýrugy ýene bir gezek işledip tassyklap bilersiňiz:

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

Kontekstiň görnüşiniň çykyşda görkezilişi ýaly httpd_log_t üýtgedilendigini ýadyňyzdan çykarmaň.

Ulanyljak üýtgeşmeler üçin Apache-i täzeden açyň.

$ sudo systemctl restart httpd

Indi Apache-iň mazmunyny görkezilişi ýaly sanaw edip, gündelik bukjalarynda gündelik faýllaryny ýatda saklaýandygyny tassyklap bilersiňiz:

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

Görkezilişi ýaly iki sany gündelik faýly görüp bilmeli: säwlik gündeligi we gündelik faýllaryny haýyş etmek.

Apache wirtual öý eýesini barlamak

Iň soňunda bolsa, Apache web serweriniň wirtual host faýlyňyza hyzmat edýändigine göz ýetirmeli. Munuň üçin brauzeriňizi açyň we serweriňiziň IP adresine ýa-da domen adyna giriň:

http://domain-name

Ajaýyp! Bu, hemme zadyň gowy gidendigini we wirtual öý eýesiniň garaşylşy ýaly hyzmat edilýändigini görkezýär.

Bu gollanmada, CentOS 8 we RHEL 8-de Apache web serwerini nädip gurmalydygyny, goşmaça domen üçin mazmuna hyzmat etmek üçin wirtual host faýly nädip sazlamalydygyny öwrendik. Goşmaça domenleri ýerleşdirmäge laýyk hasaplaýan köp wirtual host faýllaryny düzüp bilersiňiz.

Doly hosting stakasyny gurmak isleseňiz, CentOS 8-de LAMP stakasyny gurmagy maslahat berdim.