Sådan installeres Apache-serveren på CentOS 7

introduktion

Apache HTTP-serveren er den mest anvendte internetserver i verden. Det giver mange kraftfulde funktioner, herunder dynamisk belastbare moduler, robust mediestøtte og omfattende integration med andre populære programmer.

i denne vejledning installerer du en Apache-server med virtuelle værter på din CentOS 7-server.

forudsætninger

Du skal bruge følgende for at fuldføre denne vejledning:

  • en ikke-root-bruger med sudo-rettigheder konfigureret på din server, konfigureret ved at følge den oprindelige serveropsætningsvejledning til CentOS 7.
  • en grundlæggende brandvæg konfigureret ved at følge de yderligere anbefalede trin til den nye CentOS 7-Serverguide.

Trin 1 — installation af Apache

Apache er tilgængelig i CentOS ‘ standardprogramregistre, hvilket betyder, at du kan installere det medyum pakkehåndtering.

som den ikke-root sudo-bruger konfigureret i forudsætningerne, skal du opdatere den lokale Apache httpd pakkeindeks for at afspejle de seneste opstrømsændringer:

  • sudo yum update httpd

når pakkerne er opdateret, skal du installere Apache-pakken:

  • sudo yum install httpd

efter bekræftelse af installationen, yum vil installere Apache og alle nødvendige afhængigheder.

Hvis du har gennemført de yderligere anbefalede trin til den nye CentOS 7-Serverguide, der er nævnt i afsnittet forudsætninger, har du installeretfirewalld på din server, og du skal åbne port80 for at tillade Apache at betjene anmodninger via HTTP. Hvis du ikke allerede har gjort det, kan du gøre dette ved at aktiverefirewalld‘shttp service med følgende kommando:

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

Hvis du planlægger at konfigurere Apache til at servere indhold via HTTPS, vil du også åbne port 443 ved at aktivere https service:

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

genindlæs derefter brandvæggen for at sætte disse nye regler i kraft:

  • sudo firewall-cmd --reload

efter genindlæsningen er du klar til at starte tjenesten og kontrollere internetserveren.

Trin 2-Kontrol af din internetserver

Apache starter ikke automatisk på CentOS, når installationen er afsluttet. Du skal starte Apache-processen manuelt:

  • sudo systemctl start httpd

Kontroller, at tjenesten kører med følgende kommando:

  • sudo systemctl status httpd

du vil se en active status, når tjenesten kø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 udgang, ser tjenesten ud til at være startet med succes. Den bedste måde at teste dette på er dog at anmode om en side fra Apache.

Du kan få adgang til Apache-standardlandingssiden for at bekræfte, at programmet kører korrekt via din IP-adresse. Hvis du ikke kender din server IP-adresse, kan du få det et par forskellige måder fra kommandolinjen.

Skriv dette på din server kommandoprompt:

  • hostname -I

denne kommando viser alle værtens netværksadresser, så du får tilbage et par IP-adresser adskilt af mellemrum. Du kan prøve hver i din internetsøgemaskine for at se, om de fungerer.

Alternativt kan du bruge curl til at anmode om din IP fra icanhazip.com, som giver dig din offentlige IPv4-adresse set fra et andet sted på internettet:

  • curl -4 icanhazip.com

Når du har din server IP-adresse, skal du indtaste den i din server adresselinje:

http://your_server_ip

Du vil se Standard CentOS 7 Apache hjemmeside:

standard Apache side for CentOS 7

denne side angiver, at Apache fungerer korrekt. Det indeholder også nogle grundlæggende oplysninger om vigtige Apache-filer og katalogplaceringer. Nu hvor tjenesten er installeret og kører, kan du nu bruge forskellige systemctl kommandoer til at administrere tjenesten.

Trin 3-styring af Apache-processen

nu hvor du har din internetserver i gang, lad os gennemgå nogle grundlæggende styringskommandoer.

for at stoppe din internetserver skal du skrive:

  • sudo systemctl stop httpd

for at starte internetserveren, når den stoppes, skal du skrive:

  • sudo systemctl start httpd

for at stoppe og derefter starte tjenesten igen skal du skrive:

  • sudo systemctl restart httpd

Hvis du foretager simpelthen konfigurationsændringer, Apache kan ofte genindlæses uden at tabe forbindelser. For at gøre dette skal du bruge denne kommando:

  • sudo systemctl reload httpd

Som standard er Apache konfigureret til at starte automatisk, når serveren starter. Hvis dette ikke er, hvad du vil, skal du deaktivere denne opførsel ved at skrive:

  • sudo systemctl disable httpd

for at genaktivere tjenesten til at starte ved opstart, skal du skrive:

  • sudo systemctl enable httpd

Apache starter nu automatisk, når serveren starter igen.

standardkonfigurationen for Apache giver din server mulighed for at være vært for en enkelt hjemmeside. Hvis du planlægger at hoste flere domæner på din server, skal du konfigurere virtuelle værter på din Apache-server.

Trin 4-Opsætning af virtuelle værter (anbefales)

når du bruger Apache-serveren, kan du bruge virtuelle værter (svarende til serverblokke) til at indkapsle konfigurationsoplysninger og være vært for mere end et domæne fra en enkelt server. I dette trin opretter du et domæne kaldet example.com, men du skal erstatte dette med dit eget domænenavn. For at lære mere om opsætning af et domænenavn med DigitalOcean, se vores Introduktion til DigitalOcean DNS.

Apache på CentOS 7 har en serverblok aktiveret som standard, der er konfigureret til at betjene dokumenter fra/var/www/html mappe. Selvom dette fungerer godt for et enkelt sted, kan det blive uhåndterligt, hvis du er vært for flere sider. I stedet for at ændre /var/www/html opretter du en mappestruktur inden for /var/www for example.com og efterlader /var/www/html på plads som standardmappe, der skal serveres, hvis en klientanmodning ikke matcher andre sider.

Opret html directory for example.com som følger, ved hjælp af -p flag for at oprette eventuelle nødvendige overordnede mapper:

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

Opret en ekstra mappe til at gemme logfiler filer til siden:

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

næste, Tildel ejerskab af html mappen med $USER miljøvariabel:

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

sørg for, at din netrod har standardtilladelserne til din hjemmeside sæt:

  • 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 din site directory og prøve indeksfil på plads, er du næsten klar til at oprette de virtuelle vært filer. Virtuelle værtsfiler angiver konfigurationen af dine separate sider og fortæller Apache-serveren, hvordan man reagerer på forskellige domæneanmodninger.

før du opretter dine virtuelle værter, skal du oprette en sites-available mappe til at gemme dem i. Du opretter også mappen sites-enabled, der fortæller Apache, at en virtuel vært er klar til at tjene til besøgende. sites-enabled mappen vil indeholde symbolske links til virtuelle værter, som vi vil offentliggøre. Opret begge mapper med følgende kommando:

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

Dernæst vil du bede Apache om at kigge efter virtuelle værter i sites-enabled mappe. For at opnå dette skal du redigere Apaches hovedkonfigurationsfil og tilføje en linje, der erklærer et valgfrit bibliotek for yderligere konfigurationsfiler:

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

Tilføj denne linje til slutningen af filen:

IncludeOptional sites-enabled/*.conf

Gem og luk filen, når du er færdig med at tilføje den linje. Nu hvor du har dine virtuelle værtsmapper på plads, opretter du din virtuelle værtsfil.

Start med at oprette en ny fil isites-available directory:

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

Tilføj i følgende konfigurationsblok, og skiftexample.com domæne til dit domænenavn:

/etc / httpd / sites-available / eksempel. 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 fortælle Apache, hvor man finder roden direkte, der indeholder de offentligt tilgængelige internetdokumenter. Det fortæller også Apache hvor man kan gemme fejl og anmode logfiler for netop dette site.

Gem og luk filen, når du er færdig.

nu hvor du har oprettet de virtuelle værtsfiler, aktiverer du dem, så Apache ved at tjene dem til besøgende. For at gøre dette skal du oprette et symbolsk link for hver virtuel vært i sites-enabled :

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

din virtuelle vært er nu konfigureret og klar til at servere indhold. Før vi genstarter Apache-tjenesten, skal vi sørge for, at vi har de korrekte politikker på plads for dine virtuelle værter.

Trin 5-Justering af tilladelser til virtuelle værter (anbefales)

er konfigureret til at fungere med standard Apache-konfigurationen. Da du opretter en brugerdefineret logbog i konfigurationsfilen virtual hosts, vil du modtage en fejl, hvis du forsøger at starte Apache-tjenesten. For at løse dette skal du opdatere vores politikker, så Apache kan skrive til de nødvendige filer. Selinuk bringer øget sikkerhed til dit CentOS 7-miljø, derfor anbefales det ikke at deaktivere kernemodulet helt.

der er forskellige måder at angive politikker baseret på dit miljøs behov, da du kan tilpasse dit sikkerhedsniveau. Dette trin dækker to metoder til justering af Apache-politikker: universelt og på en bestemt mappe. Justering af politikker på mapper er mere sikker og er derfor den anbefalede tilgang.

justering af Apache-politikker universelt

indstilling af Apache-politikken universelt vil fortælle os, at vi skal behandle alle Apache-processer identisk ved hjælp afhttpd_unified boolsk. Selvom denne tilgang er mere praktisk, giver den dig ikke det samme niveau af kontrol som en tilgang, der fokuserer på en fil-eller katalogpolitik.

Kør følgende kommando for at indstille en universel Apache-politik:

  • sudo setsebool -P httpd_unified 1

setsebool kommandoen ændrer selinuks boolske værdier. -P flag opdaterer opstartstidsværdien, hvilket gør denne ændring vedvarende på tværs af genstarter. httpd_unifieder den boolske, der vil fortælle Selinuks at behandle alle Apache-processer som den samme type, så du aktiverede den med en værdi på1.

justering af Apache-politikker i en mappe

individuelt indstilling af tilladelser til/var/www/example.com/log – mappen giver dig mere kontrol over dine Apache-politikker, men kan også kræve mere vedligeholdelse. Da denne indstilling ikke angiver politikker universelt, skal du manuelt indstille konteksttypen for nye logmapper, der er angivet i dine virtuelle værtskonfigurationer.

Kontroller først den konteksttype, som Selinuk gav/var/www/example.com/log directory:

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

denne kommando viser og udskriver katalogets Selinukskontekst. Du vil se output svarende til følgende:

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

den aktuelle kontekst erhttpd_sys_content_t, som fortæller os, at Apache-processen kun kan læse filer oprettet i denne mappe. I denne vejledning ændrer du konteksttypen for /var/www/example.com/log – mappen til httpd_log_t. Denne type giver Apache mulighed for at generere og tilføje logfiler til internetapplikationer:

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

brug derefter kommandoenrestorecon til at anvende disse ændringer og få dem til at fortsætte på tværs af genstarter:

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

-R flag kører denne kommando rekursivt, hvilket betyder, at den opdaterer alle eksisterende filer for at bruge den nye kontekst. -v flaget udskriver kontekstændringerne, som kommandoen er foretaget. Du vil se følgende output, der bekræfter ændringerne:

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 konteksterne igen for at se ændringerne:

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

udgangen afspejler den opdaterede konteksttype:

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

nu hvor/var/www/example.com/log mappen brugerhttpd_log_t typen, er du klar til at teste din virtuelle værtskonfiguration.

Trin 6-Test af den virtuelle vært (anbefales)

når den valgte kontekst er blevet opdateret med begge metoder, vil Apache være i stand til at skrive til /var/www/example.com/log mappe. Du kan nu genstarte Apache-tjenesten:

  • sudo systemctl restart httpd

liste indholdet af/var/www/example.com/log mappe for at se, om Apache oprettede logfilerne:

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

du vil se, at Apache var i stand til at oprette error.log og requests.log filer angivet i den virtuelle værtskonfiguration:

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

nu hvis du har oprettet din virtuelle vært og opdateret dine tilladelser, vil Apache nu vise dit domænenavn. Du kan teste dette ved at navigere til http://example.com, hvor du skal se noget som dette:

succes! Den example.com virtuel vært arbejder!

dette bekræfter, at din virtuelle vært er konfigureret og serverer indhold. Gentag trin 4 og 5 for at oprette nye virtuelle værter med flere domæner.

konklusion

i denne vejledning installerede og administrerede du Apache-serveren. Nu hvor du har installeret din internetserver, har du mange muligheder for den type indhold, du kan servere, og de teknologier, du kan bruge til at skabe en rigere oplevelse.

Hvis du gerne vil opbygge en mere komplet applikationsstak, kan du se på denne artikel om, hvordan du konfigurerer en LAMPESTAK på CentOS 7.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *