Kuinka asentaa Apachen WWW-palvelin CentOS 7: ään

Johdanto

Apachen HTTP-palvelin on maailman käytetyin WWW-palvelin. Se tarjoaa monia tehokkaita ominaisuuksia, mukaan lukien dynaamisesti kuormitettavat moduulit, vankka mediatuki ja laaja integrointi muihin suosittuihin ohjelmistoihin.

tässä oppaassa asennat CentOS 7-palvelimellesi Apache-verkkopalvelimen, jossa on virtuaalisia isäntiä.

edeltävät opaskirjat

tarvitset seuraavat ohjeet tämän oppaan täydentämiseksi:

  • ei-pääkäyttäjä, jonka sudo-oikeudet on määritetty palvelimellasi ja joka on perustettu noudattamalla CentOS 7: n alkuperäistä palvelimen asennusohjetta.
  • peruspalomuuri, joka on määritetty noudattamalla uuden CentOS 7-Palvelinoppaan suositeltuja lisävaiheita.

Vaihe 1 — Apachen asentaminen

Apache on saatavilla Centosin oletusohjelmistovarastoista, eli sen voi asentaa

yum

paketinhallinta.

edeltävissä asetuksissa ei-root sudo-käyttäjänä Päivitä paikallinen Apache httpd paketti-indeksi vastaamaan viimeisimpiä ylävirran muutoksia:

  • sudo yum update httpd

kun paketit on päivitetty, asenna Apache-paketti:

  • sudo yum install httpd

asennuksen vahvistamisen jälkeen yum asentaa Apachen ja kaikki tarvittavat riippuvuudet.

Jos olet suorittanut edeltävissä osioissa mainitut uuden CentOS 7-Palvelinoppaan Lisäsuositukset, olet asentanut firewalld palvelimellesi ja sinun on avattava portti 80, jotta Apache voi palvella pyyntöjä HTTP: n kautta. Jos et ole vielä tehnyt sitä, voit tehdä sen ottamalla firewalld ’s http palvelun käyttöön seuraavalla komennolla:

  • sudo firewall-cmd --permanent --add-service=http

Jos aiot määrittää Apachen palvelemaan sisältöä HTTPS: n kautta, haluat myös avata portin 443 ottamalla käyttöön https palvelu:

  • sudo firewall-cmd --permanent --add-service=https

lataa seuraavaksi palomuuri, jotta nämä uudet säännöt tulevat voimaan:

  • sudo firewall-cmd --reload

palomuurin uudelleenlatauksen jälkeen olet valmis käynnistämään palvelun ja tarkistamaan WWW-palvelimen.

Vaihe 2 — WWW-palvelimen tarkistaminen

Apache ei käynnisty automaattisesti CentOS-järjestelmässä asennuksen päätyttyä. Apache-prosessi on aloitettava manuaalisesti:

  • sudo systemctl start httpd

varmista, että palvelu on käynnissä seuraavalla komennolla:

  • sudo systemctl status httpd

näet active status kun palvelu on käynnissä:

Output
Redirecting to /bin/systemctl status httpd.service● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago Docs: man:httpd(8) man:apachectl(8) Main PID: 1290 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─1290 /usr/sbin/httpd -DFOREGROUND ├─1291 /usr/sbin/httpd -DFOREGROUND ├─1292 /usr/sbin/httpd -DFOREGROUND ├─1293 /usr/sbin/httpd -DFOREGROUND ├─1294 /usr/sbin/httpd -DFOREGROUND └─1295 /usr/sbin/httpd -DFOREGROUND...

kuten tästä tulosteesta näkyy, palvelu näyttää käynnistyneen onnistuneesti. Paras tapa testata tätä on kuitenkin pyytää sivu Apassilta.

voit käyttää Apache-aloitussivua vahvistaaksesi, että ohjelmisto toimii oikein IP-osoitteesi kautta. Jos et tiedä palvelimesi IP-osoitetta, voit saada sen muutamalla eri tavalla komentoriviltä.

kirjoita tämä palvelimesi komentokehotteeseen:

  • hostname -I

Tämä komento näyttää kaikki isännän verkko-osoitteet, joten saat takaisin muutaman välilyönneillä erotetun IP-osoitteen. Voit kokeilla jokaista selaimessasi nähdäksesi, toimivatko ne.

Vaihtoehtoisesti voit käyttää curl IP-osoitteesi pyytämiseen icanhazip.com, joka antaa sinulle julkisen IPv4-osoitteesi katsottuna toisesta paikasta internetissä:

  • curl -4 icanhazip.com

kun sinulla on palvelimen IP-osoite, syötä se selaimesi osoiteriville:

http://your_server_ip

näet oletussivut CentOS 7 Apache web page:

Oletusapache page for CentOS 7

Tämä sivu osoittaa, että Apache toimii oikein. Se sisältää myös joitakin perustietoja tärkeistä Apache-tiedostoista ja hakemistojen sijainneista. Nyt kun palvelu on asennettu ja käynnissä, voit käyttää erilaisia systemctl – komentoja palvelun hallintaan.

Vaihe 3 — Apache-prosessin hallinta

nyt kun sinulla on web-palvelin toiminnassa, käydään läpi joitakin perushallintakomentoja.

pysäyttääksesi WWW-palvelimen, type:

  • sudo systemctl stop httpd

käynnistääksesi WWW-palvelimen, kun se on pysäytetty, type:

  • sudo systemctl start httpd

pysäyttääksesi ja käynnistääksesi palvelun uudelleen, type:

  • sudo systemctl restart httpd

Jos teet vain asetusmuutoksia, Apache voi usein ladata uudelleen ilman, että yhteydet katkeavat. Voit tehdä tämän käyttämällä tätä komentoa:

  • sudo systemctl reload httpd

oletuksena Apache on määritetty käynnistymään automaattisesti, kun palvelin käynnistyy. Jos tämä ei ole mitä haluat, poista tämä käyttäytyminen kirjoittamalla:

  • sudo systemctl disable httpd

jotta palvelu käynnistyisi uudelleen käynnistyksen yhteydessä, type:

  • sudo systemctl enable httpd

Apache käynnistyy nyt automaattisesti, kun palvelin käynnistyy uudelleen.

Apachen oletusasetukset sallivat palvelimesi isännöidä yhtä verkkosivustoa. Jos aiot hosting useita verkkotunnuksia palvelimella, sinun täytyy määrittää virtuaalisia isäntiä Apache web-palvelimen.

Vaihe 4 — virtuaalisten isäntien perustaminen (suositeltava)

Kun käytät Apache-www-palvelinta, voit käyttää virtuaalisia isäntiä (samanlaisia palvelinlohkoja nginx: ssä) kapseloidaksesi määritystiedot ja isännöidäksesi useampaa kuin yhtä verkkotunnusta yhdeltä palvelimelta. Tässä vaiheessa luot verkkotunnuksen nimeltä example.com, mutta sinun tulee korvata tämä omalla verkkotunnuksellasi. Lisätietoja verkkotunnuksen perustamisesta DigitalOcean-ohjelmalla on DigitalOcean DNS-ohjelman Johdantoesityksessä.

Apache CentOS 7: ssä on oletusarvoisesti käytössä yksi palvelinlohko, joka on määritetty palvelemaan asiakirjoja/var/www/html hakemistosta. Vaikka tämä toimii hyvin yhden sivuston, se voi tulla kömpelö, jos hosting useita sivustoja. Sen sijaan, että muuttaisit /var/www/html, luot hakemistorakenteen /var/wwwexample.com site, jättäen /var/www/html palvelevaksi oletushakemistoksi, jos asiakkaan pyyntö ei vastaa muita sivustoja.

Luo html Hakemisto example.com käyttäen -p lippua tarvittavien ylähakemistojen luomiseen:

  • sudo mkdir -p /var/www/example.com/html

luo lisähakemisto lokin tallentamiseen sivuston tiedostot:

  • sudo mkdir -p /var/www/example.com/log

seuraavaksi html hakemiston omistajaksi $USER ympäristömuuttuja:

  • sudo chown -R $USER:$USER /var/www/example.com/html

varmista, että verkkojuurellasi on oletusluvat aseta:

  • sudo chmod -R 755 /var/www

Next, create a sample index.html page using vi or your favorite editor:

  • sudo vi /var/www/example.com/html/index.html

Press i to switch to INSERT mode and add the following sample HTML to the file:

/var/www/example.com/html/index.html
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body></html>

Save and close the file by pressing ESC, typing :wq, and pressing ENTER.

kun sivustohakemisto ja sample index-tiedosto ovat paikoillaan, olet lähes valmis luomaan virtuaaliset isäntätiedostot. Virtuaaliset isäntätiedostot määrittelevät erillisten sivustojesi kokoonpanon ja kertovat Apache-verkkopalvelimelle, miten vastata erilaisiin verkkotunnuspyyntöihin.

ennen kuin luot virtuaalisia isäntiä, sinun täytyy luoda sites-available hakemisto, johon voit tallentaa ne. Luot myös sites-enabled – hakemiston, joka kertoo Apachelle, että virtuaalinen isäntä on valmis palvelemaan vierailijoita. sites-enabled hakemistossa on symbolisia linkkejä virtuaalisiin isäntiin, jotka haluamme julkaista. Luo molemmat hakemistot seuraavalla komennolla:

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

seuraavaksi pyydät Apachea etsimään virtuaalisia isäntiä sites-enabled hakemistosta. Tämän saavuttamiseksi muokkaa Apachen pääasetustiedostoa ja lisää rivi, joka ilmoittaa valinnaisen hakemiston lisäasetustiedostoille:

  • sudo vi /etc/httpd/conf/httpd.conf

Lisää tämä rivi tiedoston loppuun:

IncludeOptional sites-enabled/*.conf

Tallenna ja sulje tiedosto, kun olet lisännyt kyseisen rivin. Nyt kun sinulla on virtuaalinen isäntä hakemistoja paikallaan, voit luoda virtuaalisen isäntätiedoston.

aloita luomalla uusi tiedosto sites-available Hakemisto:

  • sudo vi /etc/httpd/sites-available/example.com.conf

Lisää seuraavaan asetuslohkoon ja muuta example.com verkkotunnus verkkotunnukseesi:

/etc/httpd/sites-available/esimerkki.com.conf
<VirtualHost *:80> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/example.com/html ErrorLog /var/www/example.com/log/error.log CustomLog /var/www/example.com/log/requests.log combined</VirtualHost>

Tämä kertoo Apachelle, mistä löytyy suoraan juuri, jolla on julkisesti saatavilla olevat verkkodokumentit. Se kertoo myös Apache missä tallentaa virhe ja pyytää lokit tämän tietyn sivuston.

Tallenna ja sulje tiedosto, kun olet valmis.

nyt kun olet luonut virtuaaliset isäntätiedostot, otat ne käyttöön niin, että Apache tietää palvella niitä vierailijoille. Voit tehdä tämän luomalla symbolisen linkin jokaiselle virtuaaliselle isännälle sites-enabled hakemistoon:

  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

virtuaalinen isäntäsi on nyt konfiguroitu ja valmis palvelemaan sisältöä. Ennen kuin käynnistät Apache-palvelun uudelleen, varmistakaamme, että selinuxilla on oikeat käytännöt virtuaalisille isännillesi.

Vaihe 5 — SELinuxin käyttöoikeuksien säätäminen virtuaalisille isännille (suositeltava)

SELinux on määritetty toimimaan Apachen oletusasetuksilla. Koska määrität mukautetun lokihakemiston virtual hosts-asetustiedostoon, saat virheen, jos yrität käynnistää Apache-palvelun. Tämän ratkaisemiseksi sinun on päivitettävä SELinux-käytännöt, jotta Apache voi kirjoittaa tarvittaviin tiedostoihin. SELinux tuo parannetun tietoturvan CentOS 7-ympäristöösi, joten ytimen moduulin poistaminen käytöstä kokonaan ei ole suositeltavaa.

on olemassa erilaisia tapoja asettaa käytäntöjä ympäristön tarpeiden mukaan, sillä SELinuxin avulla voit muokata suojaustasoasi. Tämä vaihe kattaa kaksi tapaa säätää Apache politiikkaa: yleisesti ja tiettyyn hakemistoon. Hakemistojen käytäntöjen säätäminen on turvallisempaa, ja siksi se on suositeltava lähestymistapa.

Apache-käytäntöjen säätäminen universaalisti

Apache-käytäntöjen asettaminen universaalisti kertoo Selinuxille, että kaikkien Apache-prosessien tulee käsitellä identtisesti käyttämällä httpd_unified boolean. Vaikka tämä lähestymistapa on kätevämpi, se ei anna sinulle saman tason valvontaa kuin lähestymistapa, joka keskittyy tiedosto-tai hakemistokäytäntöön.

suorita seuraava komento yleisen Apache-käytännön asettamiseksi:

  • sudo setsebool -P httpd_unified 1

setsebool komento muuttaa SELinux boolean-arvoja. -P lippu päivittää käynnistysajan arvon, jolloin tämä muutos jatkuu uudelleenkäynnistyksissä. httpd_unified on Boolen, joka käskee SELinuxia käsittelemään kaikkia Apache-prosesseja saman tyyppisinä, joten sallit sen arvolla 1.

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

SELinuxin käyttöoikeuksien asettaminen /var/www/example.com/log hakemistoon antaa sinulle enemmän kontrollia Apache-käytäntöihisi, mutta saattaa myös vaatia enemmän ylläpitoa. Koska tämä asetus ei ole yleispätevä, sinun on määritettävä kontekstityyppi manuaalisesti uusille lokihakemistoille, jotka on määritetty virtuaalipalvelimen määrityksissä.

tarkista ensin SELinuxin antama kontekstityyppi /var/www/example.com/log Hakemisto:

  • sudo ls -dZ /var/www/example.com/log/

Tämä komento listaa ja tulostaa hakemiston SELinux-kontekstin. Näet ulostulo samanlainen kuin seuraavat:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/example.com/log/

nykyinen konteksti on httpd_sys_content_t, mikä kertoo Selinuxille, että Apache-prosessi voi lukea vain tässä hakemistossa luotuja tiedostoja. Tässä opetusohjelmassa /var/www/example.com/log Hakemisto httpd_log_t. Tämän tyypin avulla Apache voi luoda ja liittää verkkosovelluksen lokitiedostoja:

  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

seuraava, käytä restorecon komentoa näiden muutosten soveltamiseen ja niiden jatkamiseen uudelleenkäynnistysten välillä:

  • sudo restorecon -R -v /var/www/example.com/log

-R lippu suorittaa tämän komennon rekursiivisesti, eli se päivittää olemassa olevat tiedostot käyttämään uutta kontekstia. -v lippu tulostaa komennon yhteydessä tehdyt muutokset. Näet seuraavan tuotoksen, joka vahvistaa muutokset:

Output
restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0

voit luetella kontekstit vielä kerran nähdäksesi muutokset:

  • sudo ls -dZ /var/www/example.com/log/

tuotos kuvastaa päivitettyä kontekstityyppiä:

Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log

nyt kun /var/www/example.com/log hakemistossa on käytössä httpd_log_t type, olet valmis testaamaan virtuaalisen isäntäkonfiguraatiosi.

Vaihe 6 — Virtual Hostin testaus (suositus)

kun SELinux-konteksti on päivitetty jommallakummalla menetelmällä, Apache voi kirjoittaa /var/www/example.com/log – hakemistoon. Voit nyt käynnistää Apache-palvelun onnistuneesti uudelleen:

  • sudo systemctl restart httpd

listaa /var/www/example.com/log hakemiston sisältö nähdäksesi, onko Apache luonut lokitiedostot:

  • ls -lZ /var/www/example.com/log

näet, että Apache pystyi luomaan error.log ja requests.log tiedostot, jotka on määritelty virtual host-kokoonpanossa:

Output
-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log

nyt kun olet määrittänyt virtuaalisen isäntäsi ja päivittänyt SELinuxin käyttöoikeudet, Apache palvelee nyt verkkotunnustasi. Tätä voi testata navigoimalla http://example.com, jossa pitäisi nähdä jotain tällaista:

menestys! Ja example.com virtual host toimii!

Tämä vahvistaa, että virtuaalinen isäntäsi on onnistuneesti määritetty ja tarjoiltu sisältöä. Toista vaiheet 4 ja 5 luodaksesi uusia virtuaalisia isäntiä, joilla on SELinux-oikeudet lisäalueille.

johtopäätös

tässä opetusohjelmassa asensit ja hallitsit Apache-www-palvelinta. Nyt kun web-palvelin on asennettu, sinulla on monia vaihtoehtoja sisällön tyyppi voit palvella ja teknologioita voit luoda rikkaampi kokemus.

Jos haluat rakentaa täydellisemmän sovelluspinon, voit katsoa tämän artikkelin siitä, miten Lamppupino määritetään CentOS 7: ssä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *