Hur man installerar Apache HTTPD på CentOS Stream 9

Apache HTTP Server (httpd) är en av de mest populära och robusta webbservrarna som finns tillgängliga, känd för sin flexibilitet, prestanda och breda utbud av funktioner. Det används ofta för att vara värd för webbplatser och webbapplikationer. Genom att ställa in Apache på CentOS Stream 9 kan du utnyttja dess kraftfulla funktioner för dina webbhotellbehov. Att dessutom säkra din webbplats med ett gratis SSL-certifikat från Let's Encrypt säkerställer att din webbplats är krypterad och pålitlig.

För att installera Apache HTTP Server på CentOS Stream 9 och ställa in ett Let's Encrypt SSL-certifikat, följ stegen som beskrivs i den här guiden. Detta ger dig en säker och effektiv webbserverkonfiguration.

Säkerställa ett helt uppdaterat CentOS Stream System före Apache-installation

Innan vi fortsätter med Apache-installationen på din CentOS Stream-maskin måste vi verifiera att vårt system är helt uppdaterat. Detta är mer än bara en försiktighetsåtgärd. Att uppdatera ditt system hjälper till att förhindra kompatibilitetsproblem och förbättrar avsevärt dess stabilitet, säkerhet och prestanda.

För att sätta igång detta, kör följande kommando i din terminal:

sudo dnf upgrade --refresh

Detta kommando sätter igång uppdateringsmekanismen, skaffar och installerar ditt systems senaste programuppdateringar och säkerhetskorrigeringar. Det är viktigt att låta uppdateringsprocessen avslutas helt innan du går vidare till Apache-installationen. Detta säkerställer att ditt system är i sitt bästa skick, optimalt konfigurerat och förberett för att köra Apache utan att stöta på några problem eller kompatibilitetsproblem.

Installera Apache HTTPD via DNF Command

Det andra steget är att installera Apache, eller HTTPD, på ditt CentOS Stream-system. Detta är en enkel process, tack vare den kraftfulla DNF-pakethanteraren. DNF, eller Dandified Yum, pakethanteraren förenklar installation, uppdatering och hantering av mjukvarupaket.

Kickstarta installationen av Apache (HTTPD) genom att köra följande kommando i din terminal:

sudo dnf install httpd

Detta kommando initierar installationsmekanismen och hämtar och installerar alla nödvändiga komponenter för att Apache (HTTPD) ska kunna köras på ditt system. Processen bör avslutas på bara några minuter. Efteråt kommer du att ha Apache (HTTPD) fullt installerad och redo att användas.

Aktivera och konfigurera Apache HTTPD för att köras vid systemstart

Efter den framgångsrika installationen av Apache (HTTPD) på ditt CentOS Stream-system är följande nyckelåtgärd att aktivera tjänsten och konfigurera den för att starta automatiskt vid systemstart. Apache (HTTPD) är alltid aktiv och redo att skicka webbförfrågningar när ditt system startar.

Om Apache (HTTPD)-tjänsten inte är aktiv eller inställd på att köras som standard, använd dessa kommandon i din terminal för att starta tjänsten och se till att den körs vid systemstart:

sudo systemctl start httpd
sudo systemctl enable httpd

Det första kommandot, sudo systemctl start httpd, startar Apache-tjänsten (HTTPD), medan det andra kommandot, sudo systemctl enable httpd, ställer in tjänsten att köras automatiskt vid systemstart. Genom att implementera dessa två kommandon garanterar du att Apache (HTTPD) är ständigt tillgänglig och aktiv, redo att tillgodose webbförfrågningar varje gång ditt system slås på.

Som ett alternativ kan du kondensera de två föregående stegen till ett enda kommando:

sudo systemctl enable httpd --now

Alternativet –now i kommandot sudo systemctl enable httpd –now startar samtidigt Apache-tjänsten (HTTPD) och konfigurerar den att starta automatiskt vid systemstart. Detta enda kommando förenar de två separata kommandona från de föregående stegen, vilket gör processen mer strömlinjeformad och effektiv.

Kontrollera Apache HTTPD Service Status

Slutligen bör vi verifiera den framgångsrika implementeringen och funktionen av Apache (HTTPD) genom att använda följande systemctl-kommando:

systemctl status httpd

Detta kommando ger dig status i realtid för Apache-tjänsten (HTTPD), inklusive eventuella fel eller meddelanden som kan ha uppstått. Genom att granska tjänstens status kan du bekräfta att Apache (HTTPD) fungerar sömlöst.

Konfigurera FirewallD-regler

Efter att ha installerat Apache (HTTPD) på CentOS Stream kanske du märker att brandväggen inte innehåller förkonfigurerade regler för standardportarna 80 och 443. Du måste konfigurera dessa brandväggsregler innan du går vidare för att förbättra säkerheten för din webbapplikation.

Ställ in brandväggsreglerna med brandvägg-cmd-verktyget, CentOS Streams standardverktyg för brandväggshantering. Reglerna du behöver konfigurera kommer att variera beroende på vilka portar du tänker använda. Vi listar dock alla kritiska alternativ i följande steg.

Öppna portarna 80 och 443

Vi kommer att köra de två första kommandona för att öppna portarna 80 och 443. Dessa portar hanterar inkommande HTTP- respektive HTTPS-trafik.

För att öppna port 80 eller HTTP, kör följande kommando:

sudo firewall-cmd --permanent --add-port=80/tcp

Öppna sedan port 443, eller HTTPS, med följande kommando:

sudo firewall-cmd --permanent --add-port=443/tcp

Verifiera brandväggsändringar

Efter att ha angett vilka portar som ska öppnas måste vi instruera brandväggen att implementera dessa ändringar. Gör detta genom att ladda om brandväggsreglerna med kommandot nedan:

sudo firewall-cmd --reload

Förstå konsekvenserna

Det är ytterst viktigt att ha en god förståelse för säkerhetskonsekvenserna av att öppna portar på ditt system. Genom att selektivt endast öppna de nödvändiga portarna, stärker du din webbapplikations försvar mot obehörig åtkomst och potentiella säkerhetshot. Detta understryker varför det är viktigt att korrekt konfigurera brandväggsreglerna för din Apache (HTTPD)-installation på CentOS Stream.

Verifierar Apache HTTPD-åtkomst

Efter att ha noggrant konfigurerat Firewalld, se till att du kan komma åt Apaches (HTTPD) målsida via din webbläsare. Starta din favoritwebbläsare och gå till antingen http://localhost eller http://din_server_ip.

För att komma åt via din servers IP:

http://your_server_ip

Alternativt, för att komma åt via localhost:

http://localhost

När du konfigurerar allt exakt, kommer Apaches (HTTPD) standardmålsida att hälsa dig välkomna. Den här sidan visar ett meddelande som bekräftar att servern fungerar som förväntat. Sidan kommer att likna:

Skapa och konfigurera en virtuell värd

Det här avsnittet kommer att fördjupa sig i den praktiska aspekten av att skapa en virtuell värd med Apache (HTTPD), en flexibel webbserver känd för sin förmåga att vara värd för flera domäner på en enda server. Det här verktyget är analogt med attributet "server block" för Nginx. I den efterföljande handledningen kommer vi att illustrera hur man formulerar en virtuell värd för en viss domän, representerad som "exempel-domän.com." Naturligtvis kommer du att ersätta denna exempeldomän med ditt specifika domännamn.

Att skapa virtuella värdar underlättar oberoende hantering av konfigurationer för varje domän. Detta ger kontroll över olika aspekter av din webbservermiljö, inklusive säkerhet, prestanda och anpassade inställningar. Detta kan visa sig vara särskilt fördelaktigt om du siktar på att vara värd för flera webbplatser på en enda server eller bibehålla separata inställningar för olika delar av din webbplats. Med Apache (HTTPD) kan du enkelt skapa virtuella värdar för att uppfylla dessa krav.

Skapa och konfigurera kataloger

Att påbörja installationen av din virtuella värd innebär att du skapar en ny katalog som fungerar som rotmappen för din virtuella värd. Namnet på den här katalogen överensstämmer vanligtvis med ditt domännamn.

Om ditt domännamn till exempel är "example.com", skulle du skapa en ny katalog med kommandot:

sudo mkdir /var/www/example.com

Detta kommando kräver att "example.com" ersätts med ditt domännamn. Således kommer katalogen att innehålla filer och tillgångar som är associerade med dina virtuella värdar, inklusive HTML-filer, bilder, skript och andra resurser.

Att skapa individuella kataloger för varje virtuell värd underlättar en distinkt separation av problem, vilket är viktigt i samband med säkerhet och felsökning.

Den nya katalogen kan kräva lämpligt ägande och behörighet för att tillåta Apache (HTTPD) åtkomst. De efterföljande kommandona ställer in rätt äganderätt och behörigheter:

sudo chown -R apache:apache /var/www/example.com
sudo chmod -R 755 /var/www/example.com

Med den nya katalogen förberedd kan vi konfigurera din virtuella värd.

Skapa en index.html-fil

En textredigerare genererar en index.html-fil för din virtuella värd. För vår handledning använder vi nanotextredigeraren, men du kan välja vilken textredigerare du föredrar.

Utför följande kommando för att skapa filen index.html:

sudo nano /var/www/example.com/index.html

Börja skapa innehållet för din index.html-fil i textredigeraren. Den här filen fungerar vanligtvis som den första kontaktpunkten för en användare som besöker din webbplats.

Här är ett enkelt exempel:

<html>
  <head>
    <title>Example Domain</title>
  </head>
  <body>
    <h1>Welcome to Example Domain</h1>
    <p>This is a sample page for the domain example.com.</p>
  </body>
</html>

När du har slutfört innehållet i din index.html-fil, spara filen och avsluta textredigeraren. När det gäller nano, görs detta genom att trycka på Ctrl + X, Y och Enter.

Konfigurera virtuella värdkataloger

Att säkerställa korrekt kataloginställningar för Apache-webbservern garanterar en sömlös och organiserad konfiguration. Specifikt används katalogerna "sites-available" och "sites-enabled". Denna konfiguration speglar den som användes i Nginx och främjar organiserade och tillgängliga konfigurationer.

För att skapa dessa kataloger, använd följande kommando:

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

Instruera sedan Apache att leta efter virtuella värdfiler i katalogen "/etc/httpd/sites-available":

sudo nano /etc/httpd/conf/httpd.conf

I den öppnade konfigurationsfilen lägger du till raden "IncludeOptional sites-enabled/*.conf" i slutet. Den här raden instruerar Apache att inkludera alla virtuella värdkonfigurationsfiler i katalogen "sites-enabled".

IncludeOptional sites-enabled/*.conf

Alternativt kanske du vill kommentera "Inkludera Optional conf.d/*.conf", och inaktivera standardmappen där Apache söker efter virtuella värdfiler. Detta hjälper till att förhindra eventuell förvirring.

Exempel:

#IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf

För att spara filen och avsluta, använd tangentbordskombinationen CTRL + O, följt av CTRL + X.

Skapa den virtuella värdkonfigurationsfilen

Därefter kommer vi, med din textredigerare, att skapa en virtuell värdkonfigurationsfil på /etc/httpd/sites-available/example.com.conf.

sudo nano /etc/httpd/sites-available/example.com.conf

Fyll i platshållarinformationen i följande konfigurationsblock med ditt servernamn, serveralias och dokumentrot innan du kopierar det till den virtuella värdkonfigurationsfilen som finns på /etc/httpd/sites-available/example.com.conf.

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName example_domain
    ServerAlias www.example_domain
    DocumentRoot /var/www/example.com/
</VirtualHost>

Justera serverdirektiven för att passa dina specifika krav.

Steg 5: Ändra åtkomstbehörigheter

För att ge publik åtkomst till din server, ändra åtkomstbehörigheterna för Apache-tjänsten i /etc/httpd/conf/httpd.conf-konfigurationsfilen. Standardkonfigurationen nekar åtkomst. Om du försummar det här steget kan du stöta på HTTP 403-fel när folk försöker komma åt din webbplats.

sudo nano /etc/httpd/conf/httpd.conf

Lägg till följande block i din fil och se till att du justerar rotkatalogen så att den matchar din egen.

<Directory /var/www/example.com/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

För att spara dessa ändringar, använd tangentbordskombinationen CTRL+O och avsluta textredigeraren med CTRL+X.

Steg 6: Aktivera den virtuella värden för Apache på CentOS Stream

För att ställa in den virtuella värden måste du aktivera den som det sista steget. Skapa en symbolisk länk från katalogen för webbplatser som är tillgängliga till katalogen med webbplatser med hjälp av kommandot nedan:

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

Du måste starta om Apache-tjänsten för att slutföra aktiveringsprocessen.

sudo systemctl restart httpd

Efter att ha startat om Apache-tjänsten, öppna din webbläsare och navigera till "HTTP://example_domain." Om du inte har registrerat en domän kan du komma åt din webbplats med IP-adressen (lokal eller fjärransluten). Om du ställer in allt korrekt kommer målsidan du skapade i filen index.html att hälsa dig välkommen.

Ytterligare kommandon och tips

Säkra kataloger och filer

Ställa in säkra behörigheter

Att använda säkra behörigheter för filer och kataloger i Apache på CentOS är avgörande. Ofta ges överdrivna behörigheter, som full offentlig tillgång. För att förhindra säkerhetsrisker rekommenderas det att du begränsar behörigheterna. För kataloger, använd chmod 755 och för filer, chmod 644. Nedan finns kommandon för att ställa in dessa behörigheter. Kom ihåg att vissa applikationer kan kräva andra behörigheter, till exempel 777 för phpBB.

  • För kataloger:
sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
  • För filer:
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Dessa kommandon kommer att ersätta /var/www/example.com/ med lämplig katalogsökväg. Detta steg garanterar inte fullständig säkerhet men minskar riskerna avsevärt genom att förhindra allmänhetens tillgång till viktiga filer.

Säkra Apache med Let's Encrypt SSL

Installera Let's Encrypt SSL-certifikat

Att säkra din Apache-server med ett SSL-certifikat är nödvändigt för säkra klient-server-anslutningar. Let's Encrypt tillhandahåller ett gratis, automatiserat SSL-certifikat. Se först till att CRB-förvaret är aktiverat och att EPEL-förvaret är installerat. Installationsprocessen varierar något mellan CentOS Stream 9 och 8.

För CentOS Stream 9:
  • Aktivera CRB:
sudo dnf config-manager --set-enabled crb
  • Installera EPEL-förvaret:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

Installera sedan mod_ssl och Snap:

sudo dnf install mod_ssl

Aktivera EPEL på din CentOS Stream-distribution och installera sedan Snap.

sudo dnf install snapd -y

Efter installationen, se till att aktivera Snap och vid systemstart omedelbart.

sudo systemctl enable snapd --now

Nästa steg är att installera snap-kärnan, som tar hand om alla beroenden som behövs för att snap-paket ska köras.

sudo snap install core

Skapa en symbolisk länk för snapd-katalogen.

sudo ln -s /var/lib/snapd/snap /snap

Använd följande terminalkommando för att installera Certbot snap-paketet.

sudo snap install --classic certbot

Slutligen, skapa en annan symbolisk länk för Certbot snap-paketet.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Kör Certbot för Apache

Kör följande kommando i din terminal för att generera ditt SSL-certifikat med Certbot.

sudo certbot --dry-run --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

För de nya på Let's Encrypt kan du söka mer information om förkortningen i kommandot.

  • Alternativet "–torrkörning" låter dig köra en testkörning av certifikatgenereringsprocessen utan att ändra systemet. Det här alternativet är värdefullt för testning.
  • Alternativet "–apache" är att generera ett certifikat för en Apache-webbserver.
  • Alternativet "–agree-tos" låter dig acceptera användarvillkoren från Let's Encrypt, certifikatutfärdaren som tillhandahåller SSL-certifikatet.
  • Alternativet "–redirect" omdirigerar automatiskt all HTTP-trafik till HTTPS.
  • Alternativet "–hsts" aktiverar HTTP Strict Transport Security (HSTS). Denna säkerhetsfunktion hjälper till att skydda mot protokollnedgraderingsattacker och kapning av kakor genom att säga åt webbläsare att endast komma åt din webbplats via en säker HTTPS-anslutning.
  • Alternativet “–staple-ocsp” möjliggör häftning av Online Certificate Status Protocol (OCSP), som verifierar ett SSL-certifikats återkallelsestatus utan att kontakta certifikatutfärdaren.
  • Använd alternativet "–email" för att ange den e-postadress du vill koppla till certifikatet.
  • Alternativet "-d" anger det domännamn som du ska generera certifikatet för. I det här exemplet är domännamnet "www.example.com."

Alternativt kan du använda följande kommando och följa steg-för-steg-anvisningarna för en mer tillgänglig upplevelse.

sudo certbot certonly --apache

Genom att utföra kommandot med de nämnda parametrarna uppmanar du certbot att skapa ett SSL-certifikat för din domän "www.example.com" samtidigt som du inkluderar de nödvändiga säkerhetsfunktionerna som en forcerad HTTPS 301-omdirigering, Strict-Transport-Security-huvudet och OCSP-häftning. Det är viktigt att notera att du bör ersätta e-postadressen i kommandot med din egen, och även se till att ersätta domännamnet "www.example.com" med ditt önskade domännamn.

Konfigurera SSL på Apache

Efter att ha erhållit SSL-certifikatet, konfigurera din Apache-server för att använda den. Redigera ssl.conf fil och lägg till följande rader och ersätt "example.com" med din domän:

sudo nano /etc/httpd/conf.d/ssl.conf

Lägg till följande rader i konfigurationsfilen: ersätt "example.com" med ditt domännamn.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Spara ändringarna och starta om Apache så att konfigurationen träder i kraft.

sudo systemctl restart httpd 

Denna inställning säkerställer krypterad, säker kommunikation mellan webbläsare och din webbplats.

Automatisera certifikatförnyelse

För att hålla SSL-certifikatet uppdaterat, ställ in ett cron-jobb för automatisk förnyelse. Testa förnyelseprocessen med en torrkörning:

sudo certbot renew --dry-run

Kontrollera timers med hjälp av systemctl list-timers kommandot och bekräfta att "snap.certbot.renew.timer" är närvarande.

systemctl list-timers snap.certbot.renew.timer

Använd kommandot "systemctl list-timers -all" för att se aktiva och inaktiva timers på ditt system. Det här kommandot överblickar alla timers, inklusive "snap.certbot.renew.timer." "snap.certbot.renew.timer" säkerställer automatisk kontroll och förnyelse av ditt certifikat innan det löper ut. På så sätt eliminerar du bekymmer angående förnyelseprocessen.

systemctl list-timers --all

Apache HTTPD-hantering

Med Apache framgångsrikt konfigurerad på din server, här är några viktiga punkter att komma ihåg för effektiv hantering.

Apache-serverloggar

Apache-serverloggar lagras i katalogen på /var/log/httpd/. Standardfilnamnen för åtkomst- och felloggarna är access.log respektive error.log. Det är dock möjligt att ändra dessa namn i den virtuella värdkonfigurationsfilen.

Här är ett exempel på hur du ändrar Apache-serverloggarna i den virtuella värdkonfigurationsfilen.

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com
    
    # Change access log to custom-access.log
    CustomLog /var/log/httpd/custom-access.log combined
    
    # Change error log to custom-error.log
    ErrorLog /var/log/httpd/custom-error.log
</VirtualHost>

Det här exemplet ändrar åtkomst- och felloggarna till custom-access.log respektive custom-error.log. Du kan ändra namnen på loggfilerna till vad du föredrar och uppdatera motsvarande sökväg i den virtuella värdkonfigurationsfilen.

Apache-kommandon

Här är några av de ofta använda kommandona när du hanterar Apache:

Stoppa Apache webbserver:

sudo systemctl stop httpd

Starta Apache webbserver:

sudo systemctl start httpd

Starta om Apache webbserver:

sudo systemctl restart httpd

Ladda om Apache webbserver:

sudo systemctl reload httpd

Inaktivera Apache vid serverstart:

sudo systemctl disable httpd

Aktivera Apache vid serverstart:

sudo systemctl enable httpd

Hur man uppdaterar Apache HTTPD

För att hålla Apache uppdaterad, kör kommandot du vanligtvis använder för att kontrollera om ditt system är uppdaterat.

sudo dnf update --refresh

Det är viktigt att säkerhetskopiera eller skapa bilder av ditt system innan du utför några uppgraderingar, eftersom buggar ibland kan uppstå. Följande kommando kommer att uppdatera alla systempaket, inklusive Apache, och uppmanar dig att uppgradera.

Hur man tar bort Apache HTTPD

För att avinstallera Apache från ditt system, använd följande kommando.

sudo systemctl disable httpd --now

Använd nu följande kommando för att ta bort Apache helt och hållet.

sudo dnf remove httpd

Överblivna filer kan finnas kvar i /etc/httpd-huvudkatalogen, så låt oss radera den mappen.

sudo rm -R /etc/httpd/

Slutsats

Med Apache HTTP Server och Let's Encrypt framgångsrikt konfigurerade på ditt CentOS Stream-system blir din webbplats både robust och säker. Att regelbundet uppdatera Apache och förnya ditt Let's Encrypt SSL-certifikat hjälper till att upprätthålla optimal säkerhet och prestanda. Njut av tillförlitligheten och säkerheten som Apache HTTP Server och Let's Encrypt ger din webbhotellmiljö.

Joshua James
Följ mig
Senaste inläggen av Joshua James (se alla)

Lämna en kommentar