Kuinka asentaa Apache Virtual Hostilla CentOS 8:ssa


Apache-verkkopalvelin on avoimen lähdekoodin ja suosittu HTTP-verkkopalvelin, jolla on edelleen valtava markkinaosuus hosting-alalla. Sen mukana tulee runsaasti ominaisuuksia, kuten moduuliparannuksia, usean protokollan tuki, yksinkertaistettu konfigurointi ja monikielinen tuki mainitakseni vain muutaman.

Lue myös: Nginxin asentaminen CentOS 8:aan

Tässä oppaassa opastamme sinut Apache-verkkopalvelimen asennuksen läpi CentOS 8:aan ja RHEL 8:aan Virtual Host -ympäristöön. Tätä opetusohjelmaa kirjoitettaessa Apachen uusin versio on Apache 2.2.43.

Asennetaan Apache Web Server

Aloita päivittämällä ensin CentOS 8- tai RHEL 8 -järjestelmäpakettiluettelo käyttämällä seuraavaa dnf-komentoa.

sudo dnf update

Kun päivitys on valmis, asenna Apache-verkkopalvelin suorittamalla seuraava komento.

sudo dnf install httpd

Asennuksen jälkeen voit tarkistaa Apachen version suorittamalla rpm-komennon.

rpm -qi httpd

Komento tulostaa joukon tietoja, kuten paketin version, julkaisupäivän, koontiversion ja arkkitehtuurin.

Käynnistä Apache HTTP -verkkopalvelu suorittamalla systemctl-komento.

sudo systemctl start httpd

Varmista, että palvelu on käynnissä, suorittamalla.

sudo systemctl status httpd

Vihreänä oleva aktiivinen-tila osoittaa, että Apache-verkkopalvelin on toiminnassa.

Poistaaksesi epäilykset verkkopalvelimen toiminnasta pyytämällä testisivua Apachelta selaamalla palvelimesi IP-osoitetta tai verkkotunnuksen nimeä kuvan osoittamalla tavalla.

http://server-ip  

Saat palvelimesi IP-osoitteen suorittamalla ifconfig-komennon. Jos palvelimesi on pilvessä, voit hankkia julkisen IP-osoitteen suorittamalla curl-komennon.

curl ifconfig.me 
OR
curl -4 icanhazip.com

Kun selaat palvelimen IP-osoitetta, sinun pitäisi saada seuraava verkkosivu näkyviin.

Tämä on varma vahvistus siitä, että verkkopalvelin on käynnissä.

Apache-verkkopalvelimen hallinta

Kun Apache on asennettu ja käynnissä, voit käyttää systemctl-tarkastustyökalua Apachen hallintaan.

Esimerkiksi, jos haluat pysäyttää Apachen, suorita komento:

sudo systemctl stop httpd

Käynnistä palvelu uudelleen suorittamalla:

sudo systemctl start httpd

Jos olet tehnyt muutoksia johonkin sen asetustiedostoihin ja sinun on käynnistettävä uudelleen, jotta muutokset otetaan käyttöön, suorita komento:

sudo systemctl restart httpd

Palvelun uudelleenkäynnistäminen aiheuttaa yleensä palveluhäiriön. Parempi vaihtoehto on yksinkertaisesti ladata uudelleen ilman yhteyden keskeyttämistä.

sudo systemctl reload httpd

Käynnistä Apache-verkkopalvelin automaattisesti käynnistyksen tai uudelleenkäynnistyksen yhteydessä suorittamalla alla oleva komento. Tämä varmistaa, että Apache käynnistyy automaattisesti ilman sinun puuttumistasi.

sudo systemctl enable httpd

Jos et halua käynnistää palvelua automaattisesti käynnistyksen yhteydessä, suorita:

sudo systemctl disable httpd

Apache Virtual Hosts -palvelimen määrittäminen

Oletuksena Apache-verkkopalvelin on määritetty palvelemaan tai isännöimään vain yhtä verkkosivustoa. Jos haluat isännöidä vain yhtä verkkosivustoa, tämä vaihe ei ole pakollinen. Mutta jos aiot isännöidä useita verkkotunnuksia palvelimellasi, sinun on määritettävä Apache-virtuaalipalvelimet.

Virtuaalinen isäntä on erillinen tiedosto, joka sisältää määritykset, joiden avulla voit määrittää erillisen toimialueen oletuspalvelimesta. Tätä opasta varten määritämme virtuaalisen isännän verkkotunnukselle crazytechgeek.info.

Virtuaalinen oletusisäntä sijaitsee hakemistossa /var/www/html. Tämä toimii vain yhdellä sivustolla. Luodaksemme erillisen virtuaalisen isännän verkkotunnuksellemme luomme toisen hakemistorakenteen /var/www-hakemistoon kuvan mukaisesti.

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

Lisäksi voit myös luoda hakemiston lokitiedostojen tallentamista varten.

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

Muokkaa seuraavaksi tiedoston käyttöoikeuksia käyttämällä ympäristömuuttujaa $USER kuvan mukaisesti.

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

Säädä myös webroot-hakemiston käyttöoikeuksia kuvan osoittamalla tavalla.

sudo chmod -R 755 /var/www

Luo seuraavaksi esimerkkitiedosto index.html kuvan mukaisesti.

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

Paina näppäimistön kirjainta 'i' ja liitä näytesisältöä kuvan mukaisesti, joka näkyy verkkoselaimessa, kun testataan virtuaalipalvelinta.

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

Tallenna ja poistu asetustiedostosta.

Kun esimerkkihakemistotiedosto ja sivustohakemisto on luotu, voit nyt jatkaa ja luoda virtuaalisen isäntätiedoston. Virtuaalinen isäntätiedosto sisältää verkkotunnuksesi sivustomääritykset ja opastaa Apachea, kuinka se vastaa asiakkaiden pyyntöihin.

Virtuaalinen isäntätiedosto sisältää verkkotunnuksesi sivustomääritykset ja opastaa Apachea, kuinka se vastaa asiakkaiden pyyntöihin. Mutta jatkaaksesi sinun on luotava kaksi hakemistoa: sites-available- ja sites-enabled-hakemistot.

Virtuaalinen isäntätiedosto tallennetaan sites-available-hakemistoon, kun taas sites-enabled -hakemisto sisältää symbolisen linkin virtuaaliseen isäntään.

Luo molemmat hakemistot kuvan osoittamalla tavalla.

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

Muokkaa seuraavaksi Apache-verkkopalvelimen päämääritystiedostoa ja osoita Apachelle, missä virtuaalinen isäntä sijaitsee sivustoja tukevassa hakemistossa.

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

Liitä rivi määritystiedoston lopussa olevan kuvan mukaisesti.

IncludeOptional sites-enabled/*.conf

Tallenna ja poistu.

Luo nyt virtuaalinen isäntätiedosto kuvan mukaisesti:

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

Liitä alla oleva sisältö ja korvaa crazytechgeek.info omalla verkkotunnuksellasi.

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

Tallenna ja poistu tiedostosta.

Ota nyt virtuaalinen isäntätiedosto käyttöön luomalla symbolinen linkki sites-enabled-hakemistoon.

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

SELinux-käyttöoikeuksien säätäminen virtuaalisille koneille

CentOS 8 ja RHEL 8 toimitetaan SELinuxin kanssa, joka on suojausmoduuli, joka vahvistaa Linux-järjestelmän turvallisuutta. Koska määritit mukautetun loki-hakemiston edellisessä vaiheessa, sinun on päivitettävä joitain SELinux-käytäntöjä, jotta Apache-verkkopalvelin voi kirjoittaa hakemistoon.

SELinux Apache -käytäntöjen säätämiseen on kaksi tapaa: Säätökäytäntöjen säätäminen yleisesti ja hakemiston käytännöt. Jälkimmäinen on edullinen, koska se on edullisempi.

SELinux-käytäntöjen säätäminen hakemistossa

Lokihakemiston SELinux-oikeuksien muokkaaminen antaa sinulle täydellisen hallinnan Apachen verkkopalvelimen käytäntöihin. Tämä menetelmä on melko pitkä ja vaatii manuaalisesti määrittämään kontekstityypin lisähakemistoille, jotka on määritetty virtuaalisen isännän määritystiedostossa.

Ennen kuin aloitat, varmista ensin SELinuxin lokihakemistolle määrittämä kontekstityyppi:

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

Tuloksen tulisi olla samanlainen kuin alla.

Tulosteessa asetettu konteksti on httpd_sys_content_t. Tämä osoittaa, että verkkopalvelin voi lukea vain lokihakemistossa olevia tiedostoja. Sinun on muutettava tämä konteksti muotoon httpd_log_t, jotta Apache voi luoda ja lisätä lokimerkintöjä hakemistoon.

Suorita siis komento:

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

Jos saat virheilmoituksen alla "semanage: komentoa ei löydy".

Se tarkoittaa, että semanage-komennon sisältäviä paketteja ei ole asennettu. Korjaaksesi tämän virheen, sinun on asennettava kyseiset paketit. Mutta ensin tarkista, mitkä paketit tarjoavat semanage-komennon suorittamalla:

sudo dnf whatprovides /usr/sbin/semanage

Tulos antaa meille semanagen paketin, joka on policycoreutils-python-utils.

Asenna nyt paketti kuvan mukaisesti käyttämällä DNF-pakettienhallintaa.

sudo dnf install policycoreutils-python-utils

Kontekstin muuttamiskomennon pitäisi nyt toimia.

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

Jos haluat tallentaa muutokset ja tehdä niistä pysyviä, anna restorecon-komento kuvan mukaisesti:

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

Voit vahvistaa muutokset suorittamalla komennon uudelleen:

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

Muista huomata, että kontekstityyppi on muuttunut muotoon httpd_log_t, kuten tulosteessa näkyy.

Käynnistä Apache uudelleen, jotta muutokset tulevat voimaan.

sudo systemctl restart httpd

Voit nyt vahvistaa, tallentaako Apache lokitiedostoja lokihakemistoon, luettelemalla sen sisällön kuvan osoittamalla tavalla:

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

Sinun pitäisi pystyä näkemään kaksi lokitiedostoa kuvan mukaisesti: virheloki ja pyyntölokitiedostot.

Testataan Apache Virtual Hostia

Lopuksi sinun on varmistettava, että Apache-verkkopalvelin palvelee virtuaalista isäntätiedostoasi. Voit tehdä tämän avaamalla selaimesi ja siirtymällä palvelimesi IP-osoitteeseen tai verkkotunnuksen nimeen:

http://domain-name

Täydellinen! Tämä osoittaa, että kaikki meni hyvin ja virtuaalista isäntäämme palvellaan odotetusti.

Johtopäätös

Tässä oppaassa olemme oppineet asentamaan Apache-verkkopalvelimen CentOS 8- ja RHEL 8 -käyttöjärjestelmiin sekä kuinka määrität virtuaalisen isäntätiedoston tarjota sisältöä ylimääräiselle verkkotunnukselle. Voit vapaasti määrittää useita virtuaalisia isäntätiedostoja, jos katsot sopivaksi lisätoimialueille.

Jos haluat määrittää täydellisen isännöintipinon, suosittelen, että asennat LAMP-pinon CentOS 8:aan.