Slik Installerer Du Apache-Webserveren På CentOS 7

Introduksjon

Apache HTTP-serveren er den mest brukte webserveren i verden. Det gir mange kraftige funksjoner, inkludert dynamisk lastbare moduler, robust mediestøtte og omfattende integrasjon med annen populær programvare.

i denne veiledningen vil Du installere En Apache webserver med virtuelle verter på CentOS 7-serveren din.

Forutsetninger

du trenger følgende for å fullføre denne veiledningen:

  • en ikke-rotbruker med sudo-privilegier konfigurert på serveren din, satt opp ved å følge den første serveroppsettveiledningen For CentOS 7.
  • en grunnleggende brannmur konfigurert ved å følge De Ekstra Anbefalte Trinnene For Nye CentOS 7 Servere guide.

Trinn 1-Installere Apache

Apache er tilgjengelig i CentOS standard programvarelagre, noe som betyr at du kan installere den medyum pakkebehandling.

som ikke-root sudo-brukeren konfigurert i forutsetningene, oppdater den lokale Apachehttpd pakkeindeks for å gjenspeile de siste oppstrømsendringene:

  • sudo yum update httpd

når pakkene er oppdatert, installer Apache-pakken:

  • sudo yum install httpd

etter å ha bekreftet installasjonen, vilyum installere apache og alle nødvendige avhengigheter.

hvis Du har fullført De Ekstra Anbefalte Trinnene For Nye CentOS 7 Servere guide nevnt i forutsetninger delen, vil du ha installert firewalld på serveren din, og du må åpne opp port 80 for å tillate Apache å betjene forespørsler OVER HTTP. Hvis du ikke allerede har gjort det, kan du gjøre dette ved å aktiverefirewalld‘shttp service med følgende kommando:

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

hvis Du planlegger Å konfigurere Apache til å betjene innhold over HTTPS, vil du også åpne opp port 443 ved å aktivere https service:

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

last deretter brannmuren på nytt for å sette disse nye reglene i kraft:

  • sudo firewall-cmd --reload

etter at brannmuren har lastet inn, er du klar til å starte tjenesten og sjekke webserveren.

Trinn 2-Kontrollere Webserveren

Apache starter ikke Automatisk På CentOS når installasjonen er fullført. Du må starte Apache-prosessen manuelt:

  • sudo systemctl start httpd

Kontroller at tjenesten kjører med følgende kommando:

  • sudo systemctl status httpd

du vil se en active status når tjenesten kjører:

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

som du kan se fra denne utgangen, ser tjenesten ut til å ha startet vellykket. Den beste måten å teste Dette på er imidlertid å be om en Side Fra Apache.

du kan få tilgang Til standard apache-destinasjonssiden for å bekrefte at programvaren kjører riktig via IP-adressen din. Hvis du ikke kjenner serverens IP-adresse, kan du få det noen forskjellige måter fra kommandolinjen.

Skriv inn dette på serverens ledetekst:

  • hostname -I

denne kommandoen vil vise alle vertens nettverksadresser, slik at DU får TILBAKE NOEN IP-adresser adskilt av mellomrom. Du kan prøve hver i nettleseren din for å se om de fungerer.

Alternativt kan du bruke curl for å be OM DIN IP fra icanhazip.com, som vil gi deg din offentlige IPv4-adresse sett fra et annet sted på internett:

  • curl -4 icanhazip.com

når du har SERVERENS IP-adresse, skriv DEN inn i nettleserens adressefelt:

http://your_server_ip

du vil se Standard CentOS 7 Apache nettside:

Standard Apache side For CentOS 7

denne siden indikerer at apache fungerer som den skal. Den inneholder også grunnleggende informasjon om Viktige Apache-filer og katalogplasseringer. Nå som tjenesten er installert og kjører, kan du nå bruke forskjelligesystemctl kommandoer for å administrere tjenesten.

Trinn 3-Administrere Apache-Prosessen

Nå som du har webserveren din oppe, la oss gå over noen grunnleggende administrasjonskommandoer.

for å stoppe webserveren, skriv:

  • sudo systemctl stop httpd

for å starte webserveren når den er stoppet, skriv:

  • sudo systemctl start httpd

for å stoppe og deretter starte tjenesten på nytt, skriv:

  • sudo systemctl restart httpd

hvis du bare gjør konfigurasjonsendringer, kan apache ofte laste uten å slippe tilkoblinger. For å gjøre dette, bruk denne kommandoen:

  • sudo systemctl reload httpd

Som standard er Apache konfigurert til å starte automatisk når serveren starter. Hvis dette ikke er det du vil, deaktiver denne oppførselen ved å skrive:

  • sudo systemctl disable httpd

For å aktivere tjenesten for å starte opp ved oppstart, skriv:

  • sudo systemctl enable httpd

Apache starter nå automatisk når serveren starter igjen.

standardkonfigurasjonen For Apache vil tillate serveren din å være vert for et enkelt nettsted. Hvis du planlegger å være vert for flere domener på serveren din, må du konfigurere virtuelle verter på Apache-webserveren din.

Trinn 4-Sette Opp Virtuelle Verter (Anbefalt)

når Du bruker Apache-webserveren, kan du bruke virtuelle verter (ligner serverblokker I Nginx) til å kapsle konfigurasjonsdetaljer og være vert for mer enn ett domene fra en enkelt server. I dette trinnet vil du sette opp et domene som heter example.com, men du bør erstatte dette med ditt eget domenenavn. For å lære mer om å sette opp et domenenavn Med DigitalOcean, se Vår Introduksjon Til DigitalOcean DNS.

Apache På CentOS 7 har en serverblokk aktivert som standard som er konfigurert til å betjene dokumenter fra/var/www/html katalogen. Selv om dette fungerer bra for et enkelt nettsted, kan det bli uhåndterlig hvis du er vert for flere nettsteder. I stedet for å endre /var/www/html, vil du opprette en katalogstruktur i /var/www for example.com området, forlater /var/www/html på plass som standard katalog som skal serveres hvis en klientforespørsel ikke samsvarer med andre nettsteder.

Opprett html katalogen for example.com som følger, ved hjelp av -p flagget for å opprette alle nødvendige overordnede kataloger:

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

Opprett en ekstra katalog for å lagre loggfiler for området:

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

neste, tilordne eierskap av html katalogen med $USER miljøvariabel:

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

kontroller at webroten har standard tillatelser satt:

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

med områdekatalogen og eksempelindeksfilen på plass, er du nesten klar til å opprette virtuelle vertsfiler. Virtuelle vertsfiler angir konfigurasjonen av de separate nettstedene dine og forteller Apache-webserveren hvordan De skal svare på ulike domeneforespørsler.

Før du oppretter dine virtuelle verter, må du opprette ensites-available katalog for å lagre dem i. Du vil også opprettesites-enabled katalogen som forteller Apache at en virtuell vert er klar til å tjene til besøkende. Katalogensites-enabled vil inneholde symbolske lenker til virtuelle verter som vi vil publisere. Opprett begge katalogene med følgende kommando:

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

Neste vil Du fortelle Apache å se etter virtuelle verter isites-enabled katalogen. For å oppnå dette, rediger Apache hovedkonfigurasjonsfil og legg til en linje som erklærer en valgfri katalog for flere konfigurasjonsfiler:

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

Legg denne linjen til slutten av filen:

IncludeOptional sites-enabled/*.conf

Lagre og lukk filen når du er ferdig med å legge til den linjen. Nå som du har dine virtuelle vertskataloger på plass, vil du opprette din virtuelle vertsfil.

Start med å opprette en ny fil isites-available katalogen:

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

Legg til i følgende konfigurasjonsblokk, og endre example.com domenet til domenenavnet ditt:

/etc/httpd/sites-available/example.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>

Dette vil fortelle Apache hvor Du finner roten direkte som inneholder de offentlig tilgjengelige webdokumenter. Det forteller Også Apache hvor du skal lagre feil og be om logger for dette nettstedet.

Lagre og lukk filen når du er ferdig.

Nå som du har opprettet de virtuelle vertsfilene, vil Du aktivere Dem slik At Apache vet å betjene dem til besøkende. For å gjøre dette, opprett en symbolsk lenke for hver virtuell vert i katalogensites-enabled :

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

din virtuelle vert er nå konfigurert og klar til å betjene innhold. Før Du starter Apache-tjenesten på Nytt, la Oss sørge For At SELinux har de riktige retningslinjene på plass for dine virtuelle verter.

Trinn 5-Justere SELinux-Tillatelser for Virtuelle Verter (Anbefalt)

SELinux er konfigurert til å fungere med Standard Apache-konfigurasjon. Siden du konfigurerer en egendefinert loggkatalog i konfigurasjonsfilen for virtuelle verter, vil du få en feilmelding hvis Du prøver å starte Apache-tjenesten. For å løse dette må Du oppdatere SELinux-policyene slik At Apache kan skrive til de nødvendige filene. SELinux gir økt sikkerhet Til CentOS 7-miljøet, derfor anbefales det ikke å deaktivere kjernemodulen helt.

Det er forskjellige måter Å sette retningslinjer basert på miljøets behov, Da SELinux lar deg tilpasse sikkerhetsnivået ditt. Dette trinnet vil dekke to metoder for å justere Apache-policyer: universelt og på en bestemt katalog. Justering av retningslinjer på kataloger er sikrere, og er derfor den anbefalte tilnærmingen.

Justering Av Apache-Policyer Universelt

Innstilling Av Apache-policyen universelt vil fortelle SELinux å behandle Alle Apache-prosesser identisk ved å brukehttpd_unified boolsk. Selv om denne tilnærmingen er mer praktisk, vil den ikke gi deg samme kontrollnivå som en tilnærming som fokuserer på en fil-eller katalogpolicy.

Kjør følgende kommando for å angi en universell Apache-policy:

  • sudo setsebool -P httpd_unified 1

setsebool kommandoen endrer selinux boolske verdier. -P – flagget vil oppdatere oppstartsverdien, slik at denne endringen vedvarer på tvers av omstart. httpd_unified er den boolske som vil fortelle SELinux å behandle Alle Apache-prosesser som samme type, så du aktiverte den med en verdi på 1.

Justering Av Apache-Policyer på En Katalog

Individuelt innstilling Av SELinux-tillatelser For/var/www/example.com/log – katalogen vil gi deg mer kontroll over Apache-policyene dine, men kan også kreve mer vedlikehold. Siden dette alternativet ikke er universelt innstillingspolicyer, må du manuelt angi konteksttypen for alle nye loggmapper som er angitt i de virtuelle vertskonfigurasjonene.

kontroller først konteksttypen Som SELinux ga /var/www/example.com/log katalogen:

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

denne kommandoen viser Og skriver ut selinux-konteksten til katalogen. Du vil se utdata som ligner på følgende:

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

gjeldende kontekst er httpd_sys_content_t, som forteller SELinux At Apache-prosessen bare kan lese filer opprettet i denne katalogen. I denne opplæringen vil du endre konteksttypen til/var/www/example.com/log katalogen til httpd_log_t. Denne typen Vil tillate Apache å generere og legge til webapplikasjonsloggfiler:

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

bruk kommandoen restorecon for å bruke disse endringene og få dem til å fortsette på tvers av omstart:

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

flagget-R kjører denne kommandoen rekursivt, noe som betyr at den vil oppdatere eksisterende filer for å bruke den nye konteksten. -v flagget vil skrive ut kontekstendringer kommandoen gjort. Du vil se følgende utdata som bekrefter endringene:

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

du kan liste sammenhenger en gang til for å se endringene:

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

utgangen gjenspeiler den oppdaterte konteksttypen:

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

nå som /var/www/example.com/log katalogen bruker httpd_log_t typen, er du klar til å teste din virtuelle vertskonfigurasjon.

Trinn 6-Testing Av Den Virtuelle Verten (Anbefalt)

Når selinux-konteksten er oppdatert med begge metodene, Vil Apache kunne skrive til/var/www/example.com/log katalogen. Du kan nå starte Apache-tjenesten på Nytt:

  • sudo systemctl restart httpd

Oppgi innholdet i /var/www/example.com/log katalogen for å se Om Apache opprettet loggfilene:

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

Du vil se At Apache var i stand til å oppretteerror.log ogrequests.log filer som er angitt i den virtuelle vertskonfigurasjonen:

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

nå som du har din virtuelle vert satt opp og selinux tillatelser oppdatert, apache vil nå tjene ditt domenenavn. Du kan teste dette ved å navigere til http://example.com, hvor du bør se noe slikt:

Suksess! Den example.com virtual host jobber!

dette bekrefter at den virtuelle verten er konfigurert og serverer innhold. Gjenta Trinn 4 og 5 for å opprette nye virtuelle verter Med SELinux-tillatelser for flere domener.

Konklusjon

i denne opplæringen installerte Og administrerte Du Apache webserveren. Nå som du har installert webserveren din, har du mange alternativer for typen innhold du kan betjene og teknologiene du kan bruke til å skape en rikere opplevelse.

hvis du vil bygge ut en mer komplett applikasjonsbunke, kan du se på denne artikkelen om hvordan du konfigurerer EN LAMP-stabel På CentOS 7.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *