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.