introduktion
Apache HTTP-servern är den mest använda webbservern i världen. Det ger många kraftfulla funktioner, inklusive dynamiskt belastningsbara moduler, robust mediastöd och omfattande integration med andra populära program.
i den här guiden förklarar vi hur du installerar en Apache-webbserver på din Ubuntu 20.04-server.
förutsättningar
innan du börjar den här guiden bör du ha en vanlig, icke-root-användare med sudo-behörighet konfigurerad på din server., Dessutom måste du aktivera en grundläggande brandvägg för att blockera icke-väsentliga portar. Du kan lära dig hur du konfigurerar ett vanligt användarkonto och ställer in en brandvägg för din server genom att följa vår första server Installationsguide för Ubuntu 20.04.
När du har ett konto tillgängligt, logga in som din icke-root-användare att börja.
Steg 1-installera Apache
Apache är tillgänglig inom Ubuntu standardprogramvaruförråd, vilket gör det möjligt att installera det med konventionella pakethanteringsverktyg.,
låt oss börja med att uppdatera det lokala paketindexet för att återspegla de senaste uppströmsändringarna:
- sudo apt update
Installera sedan paketet apache2
:
- sudo apt install apache2
Efter att ha bekräftat installationen installerar apt
Apache och alla nödvändiga ändringar kommer att installeras.beroende.
steg 2-Justera brandväggen
innan du testar Apache är det nödvändigt att ändra brandväggsinställningarna för att tillåta extern åtkomst till standardwebbportarna., Förutsatt att du följde instruktionerna i förutsättningarna bör du ha en UFW-brandvägg konfigurerad för att begränsa åtkomsten till din server.
under installationen registrerar Apache sig med UFW för att tillhandahålla några applikationsprofiler som kan användas för att aktivera eller inaktivera åtkomst till Apache genom brandväggen.,>
Du kommer att få en lista över applikationsprofilerna:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
som indikeras av utmatningen finns det tre profiler tillgängliga för Apache:
- Apache: den här profilen öppnar endast port 80 (normal, okrypterad webbtrafik)
- Apache Full: den här profilen öppnar både port 80 (normal, okrypterad webbtrafik) och port 443 (TLS/SSL-krypterad trafik)
- Apache Secure: den här profilen öppnar endast port 443 (TLS/SSL-krypterad trafik)
det rekommenderas att du aktiverar den mest restriktiva profilen som fortfarande tillåter den trafik du har konfigurerat., Eftersom vi inte har konfigurerat SSL för vår server ännu i den här guiden behöver vi bara tillåta trafik på port 80:
- sudo ufw allow 'Apache'
Du kan verifiera ändringen genom att skriva:
- sudo ufw status
utmatningen kommer att ge en lista över tillåten HTTP-trafik:
som indikeras av utmatningen har profilen aktiverats för att tillåta åtkomst till Apache-webbservern.
steg 3 — Kontrollera din webbserver
i slutet av installationsprocessen startar Ubuntu 20.04 Apache. Webbservern ska redan vara igång.,
Kontrollera med systemd
init-systemet för att se till att tjänsten körs genom att skriva:
- sudo systemctl status apache2
som bekräftats av denna utgång har tjänsten startat framgångsrikt. Det bästa sättet att testa detta är dock att begära en sida från Apache.
Du kan komma åt Standardmålsidan för Apache för att bekräfta att programvaran körs korrekt via din IP-adress. Om du inte känner till serverns IP-adress kan du få det på några olika sätt från kommandoraden.,
försök att skriva detta på serverns kommandotolk:
- hostname -I
Du kommer att få tillbaka några adresser åtskilda av mellanslag. Du kan prova varje i din webbläsare för att avgöra om de fungerar.,
ett annat alternativ är att använda icanhazip-verktyget, som ska ge dig din offentliga IP-adress som läses från en annan plats på internet:
- curl -4 icanhazip.com
När du har din server IP-adress anger du den i webbläsarens adressfält:
You should see the default Ubuntu 20.04 Apache web page:
This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.
Step 4 — Managing the Apache Process
Now that you have your web server up and running, let’s go over some basic management commands using systemctl
.
To stop your web server, type:
- sudo systemctl stop apache2
för att starta webbservern när den stoppas, skriv:
You should see the default Ubuntu 20.04 Apache web page:
This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.
Step 4 — Managing the Apache Process
Now that you have your web server up and running, let’s go over some basic management commands using systemctl
.
To stop your web server, type:
- sudo systemctl stop apache2
för att starta webbservern när den stoppas, skriv:
- sudo systemctl start apache2
För att stoppa och sedan starta tjänsten igen, skriv:
- sudo systemctl restart apache2
om du helt enkelt gör konfigurationsändringar kan Apache ofta ladda om utan att släppa anslutningar., För att göra detta, använd det här kommandot:
- sudo systemctl reload apache2
som standard är Apache konfigurerad att starta automatiskt när servern startar. Om detta inte är vad du vill, inaktivera detta beteende genom att skriva:
- sudo systemctl disable apache2
för att återaktivera tjänsten för att starta upp vid uppstart, skriv:
- sudo systemctl enable apache2
Apache ska nu starta automatiskt när servern startar igen.,
Steg 5-konfigurera virtuella värdar (rekommenderas)
När du använder Apache-webbservern kan du använda virtuella värdar (liknande serverblock i Nginx) för att inkapsla konfigurationsdetaljer och vara värd för mer än en domän från en enda server. Vi kommer att skapa en domän som heter your_domain, men du bör ersätta det med ditt eget domännamn. Om du skapar ett domännamn med DigitalOcean, se vår Nätverksdokumentation.
Apache på linux 20.,04 har ett serverblock aktiverat som standard som är konfigurerat för att visa dokument från katalogen/var/www/html
. Även om detta fungerar bra för en enda webbplats, kan det bli otympligt om du är värd för flera webbplatser. I stället för att ändra /var/www/html
, låt oss skapa en katalogstruktur inom /var/www
för en your_domain-webbplats och lämna /var/www/html
på plats som standardkatalogen som ska serveras om en klientbegäran inte matchar några andra webbplatser.,
Skapa katalogen för your_domain enligt följande:
- sudo mkdir /var/www/your_domain
tilldela sedan äganderätten till katalogen med miljövariabeln$USER
:
- sudo chown -R $USER:$USER /var/www/your_domain
behörigheterna för dina webbrötter ska vara korrekta om du inte har ändrat ditt umask-värde, vilket anger standardfilbehörigheter., För att säkerställa att dina behörigheter är korrekta och tillåta ägaren att läsa, skriva och köra filerna samtidigt som du bara ger läsbehörigheter och kör behörigheter till grupper och andra, kan du mata in följande kommando:
- sudo chmod -R 755 /var/www/your_domain
skapa sedan ett prov index.html
sida med nano
eller din favoritredigerare:
- sudo nano /var/www/your_domain/index.html
Inside, Lägg till följande exempel HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain virtual host is working!</h1> </body></html>
spara och stäng filen när du är klar.,
För att Apache ska kunna tjäna detta innehåll är det nödvändigt att skapa en virtuell värdfil med rätt direktiv. I stället för att ändra standardkonfigurationsfilen som finns på /etc/apache2/sites-available/000-default.conf
direkt, Låt oss göra en ny på /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
klistra in i följande konfigurationsblock, som liknar standard, men uppdateras för vår nya katalog och domännamn:
Observera att vi har uppdaterat DocumentRoot
till vår nya katalog och ServerAdmin
till ett e-postmeddelande som your_domain webbplatsadministratören kan komma åt. Vi har också lagt till två direktiv: ServerName
, som fastställer basdomänen som ska matcha för denna virtuella värddefinition, och ServerAlias
, som definierar ytterligare namn som ska matcha som om de var basnamnet.
spara och stäng filen när du är klar.,
låt oss aktivera filen med a2ensite
verktyg:
- sudo a2ensite your_domain.conf
inaktivera standardwebbplatsen definierad i 000-default.conf
:
- sudo a2dissite 000-default.conf
låt oss sedan testa konfigurationsfel:
- sudo apache2ctl configtest
Du bör få följande utdata:
OutputSyntax OK
Starta om Apache för att implementera dina ändringar:
- sudo systemctl restart apache2
Apache bör nu betjäna ditt domännamn., Du kan testa detta genom att navigera till , där du ska se något så här:
steg 6 – bekanta dig med viktiga Apache-filer och kataloger
Nu när du vet hur du hanterar Apache-tjänsten själv bör du ta några minuter att bekanta dig med några viktiga kataloger och filer.,
innehåll
-
/var/www/html
: det faktiska webbinnehållet, som som standard endast består av den standard Apachesida du såg tidigare, serveras ur katalogen/var/www/html
. Detta kan ändras genom att ändra Apache konfigurationsfiler.
serverkonfiguration
-
/etc/apache2
: Apache-konfigurationskatalogen. Alla Apache konfigurationsfiler finns här. -
/etc/apache2/apache2.conf
: Huvudkonfigurationsfilen för Apache. Detta kan ändras för att göra ändringar i den globala konfigurationen Apache., Den här filen är ansvarig för att ladda många av de andra filerna i konfigurationskatalogen. -
/etc/apache2/ports.conf
: den här filen anger de portar som Apache kommer att lyssna på. Som standard lyssnar Apache på port 80 och lyssnar dessutom på port 443 när en modul som tillhandahåller SSL-funktioner är aktiverad. -
/etc/apache2/sites-available/
: katalogen där virtuella värdar per webbplats kan lagras. Apache kommer inte att använda konfigurationsfilerna som finns i den här katalogen om de inte är länkade till katalogensites-enabled
., Vanligtvis görs All serverblockkonfiguration i den här katalogen och aktiveras sedan genom att länka till den andra katalogen med kommandota2ensite
. -
/etc/apache2/sites-enabled/
: katalogen där aktiverade virtuella värdar per webbplats lagras. Vanligtvis skapas dessa genom att länka till konfigurationsfiler som finns i katalogensites-available
med katalogena2ensite
. Apache läser konfigurationsfilerna och länkarna som finns i den här katalogen när den startar eller laddas om för att kompilera en komplett konfiguration., -
/etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: dessa kataloger har samma relation somsites-available
ochsites-enabled
kataloger, men används för att lagra konfigurationsfragment som inte hör hemma i en virtuell värd. Filer iconf-available
– katalogen kan aktiveras med kommandota2enconf
och inaktiveras med kommandota2disconf
. -
/etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: dessa kataloger innehåller de tillgängliga respektive aktiverade modulerna., Filer som slutar i.load
innehåller fragment för att ladda specifika moduler, medan filer som slutar i.conf
innehåller konfigurationen för dessa moduler. Moduler kan aktiveras och inaktiveras med kommandota2enmod
ocha2dismod
.
serverloggar
-
/var/log/apache2/access.log
: som standard registreras varje begäran till din webbserver i den här loggfilen om inte Apache är konfigurerad att göra något annat. -
/var/log/apache2/error.log
: som standard registreras alla fel i den här filen.,LogLevel
– direktivet i Apache-konfigurationen anger hur mycket detaljer felloggarna kommer att innehålla.
slutsats
nu när du har din webbserver installerad har du många alternativ för vilken typ av innehåll du kan tjäna och vilken teknik du kan använda för att skapa en rikare upplevelse.
om du vill bygga ut en mer komplett applikationsstack kan du läsa den här artikeln om hur du konfigurerar en LAMPSTACK på Ubuntu 20.04