Hoe de Apache-webserver te installeren op Ubuntu 22.04

Introductie

De Apache HTTP-server is de meest gebruikte webserver ter wereld. Het biedt vele krachtige functies, waaronder dynamisch inlaadbare modules, robuuste mediasupport en uitgebreide integratie met andere populaire software.

In deze handleiding leer je hoe je een Apache-webserver installeert op je Ubuntu 22.04-server.

Implementeer je applicaties vanuit GitHub met behulp van DigitalOcean App Platform. Laat DigitalOcean zich richten op het schalen van je app.

Vereisten

Voordat je met deze handleiding begint, heb je een Ubuntu 22.04-server nodig die is ingesteld met een niet-root-gebruiker met sudo-rechten en een firewall ingeschakeld om niet-essentiële poorten te blokkeren. Je kunt leren hoe je dit moet doen door onze Initiële serverinstellingengids voor Ubuntu 22.04 te volgen.

Als je dit hebt ingesteld, log dan in als je niet-root-gebruiker en ga verder naar de eerste stap.

Stap 1 — Apache installeren

Apache is beschikbaar in de standaard software repositories van Ubuntu, waardoor het mogelijk is om het te installeren met conventionele pakketbeheertools.

Begin met het bijwerken van de lokale pakketindex om de nieuwste upstream wijzigingen te weerspiegelen:

  1. sudo apt update

Vervolgens, installeer het apache2 pakket:

  1. sudo apt install apache2

Na het bevestigen van de installatie, zal apt Apache en alle benodigde afhankelijkheden installeren.

Stap 2 — Firewall aanpassen

Voordat Apache wordt getest, is het nodig om de firewallinstellingen aan te passen om buiten toegang tot de standaard webpoorten toe te staan. Als je de instructies in de vereisten hebt gevolgd, zou je een UFW firewall geconfigureerd moeten hebben om de toegang tot je server te beperken.

Tijdens de installatie registreert Apache zichzelf bij UFW om een paar toepassingsprofielen te bieden die kunnen worden gebruikt om de toegang tot Apache via de firewall in of uit te schakelen.

Controleer de lijst met ufw toepassingsprofielen door het volgende uit te voeren:

  1. sudo ufw app list

Je output zal een lijst zijn van de toepassingsprofielen:

Output
Available applications: Apache Apache Full Apache Secure OpenSSH

Zoals aangegeven door de output, zijn er drie profielen beschikbaar voor Apache:

  • Apache: Dit profiel opent alleen poort 80 (normaal, ongecodeerd webverkeer)
  • Apache Full: Dit profiel opent zowel poort 80 (normaal, ongecodeerd webverkeer) als poort 443 (TLS/SSL-gecodeerd verkeer)
  • Apache Secure: Dit profiel opent alleen poort 443 (TLS/SSL-gecodeerd verkeer)

Het wordt aanbevolen om het meest restrictieve profiel in te schakelen dat nog steeds het verkeer toestaat dat u hebt geconfigureerd. Aangezien u nog geen SSL hebt geconfigureerd voor uw server in deze handleiding, hoeft u alleen verkeer op poort 80 toe te staan:

  1. sudo ufw allow 'Apache'

U kunt de wijziging verifiëren door de status te controleren:

  1. sudo ufw status

De uitvoer geeft een lijst van toegestaan HTTP-verkeer:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

Zoals aangegeven door de uitvoer, is het profiel geactiveerd om toegang tot de Apache-webserver toe te staan.

Stap 3 — Uw webserver controleren

Aan het einde van het installatieproces start Ubuntu 22.04 Apache. De webserver zal al actief zijn.

Zorg ervoor dat de service actief is door het commando voor het systemd-init-systeem uit te voeren:

  1. sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese> Active: active (running) since Tue 2022-04-26 15:33:21 UTC; 43s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 5089 (apache2) Tasks: 55 (limit: 1119) Memory: 4.8M CPU: 33ms CGroup: /system.slice/apache2.service ├─5089 /usr/sbin/apache2 -k start ├─5091 /usr/sbin/apache2 -k start └─5092 /usr/sbin/apache2 -k start

Zoals bevestigd door deze uitvoer, is de service succesvol gestart. De beste manier om dit te testen, is echter door een pagina van Apache op te vragen.

U kunt de standaard Apache-landingspagina openen om te controleren of de software correct werkt via uw IP-adres. Als u het IP-adres van uw server niet kent, kunt u het op verschillende manieren krijgen vanaf de opdrachtregel.

Probeer het volgende te schrijven op de opdrachtprompt van uw server:

  1. hostname -I

U ontvangt een paar adressen gescheiden door spaties. U kunt elk in uw webbrowser proberen om te bepalen of ze werken.

Een andere optie is om de gratis icanhazip.com-tool te gebruiken. Dit is een website die, wanneer u deze opent, het openbare IP-adres van uw machine retourneert zoals gelezen vanaf een andere locatie op het internet:

  1. curl -4 icanhazip.com

Wanneer u het IP-adres van uw server heeft, voert u het in in de adresbalk van uw browser:

http://your_server_ip

U ziet de standaard Ubuntu 22.04 Apache-webpagina zoals hieronder:

Deze pagina geeft aan dat Apache correct werkt. Het bevat ook enkele basisinformatie over belangrijke Apache-bestanden en directorylocaties.

Stap 4 — Beheer van het Apache-proces

Nu u uw webserver operationeel hebt, laten we enkele basisbeheeropdrachten bekijken met behulp van systemctl.

Om uw webserver te stoppen, voert u uit:

  1. sudo systemctl stop apache2

Om de webserver te starten wanneer deze is gestopt, voert u uit:

  1. sudo systemctl start apache2

Om de service te stoppen en vervolgens opnieuw te starten, voert u uit:

  1. sudo systemctl restart apache2

Als u eenvoudigweg configuratiewijzigingen doorvoert, kan Apache vaak worden herladen zonder verbindingen te verbreken. Gebruik hiervoor het volgende commando:

  1. sudo systemctl reload apache2

Standaard is Apache geconfigureerd om automatisch te starten wanneer de server wordt opgestart. Als dit niet is wat u wilt, schakel dan dit gedrag uit door het volgende uit te voeren:

  1. sudo systemctl disable apache2

Om de service opnieuw in te schakelen om bij het opstarten te starten, voer het volgende uit:

  1. sudo systemctl enable apache2

Apache zal nu automatisch starten wanneer de server opnieuw wordt opgestart.

Bij het gebruik van de Apache-webserver kunt u virtuele hosts (vergelijkbaar met serverblokken in Nginx) gebruiken om configuratiedetails te encapsuleren en meer dan één domein vanaf één server te hosten. We zullen een domein genaamd uw_domein instellen, maar u moet dit vervangen door uw eigen domeinnaam.

Informatie: Als u een domeinnaam instelt bij DigitalOcean, raadpleeg dan onze Netwerkdocumentatie.

Apache op Ubuntu 22.04 heeft standaard één serverblok ingeschakeld dat is geconfigureerd om documenten te serveren vanuit de map /var/www/html. Hoewel dit goed werkt voor een enkele site, kan het onhandig worden als u meerdere sites host. In plaats van /var/www/html te wijzigen, maakt u een directorystructuur binnen /var/www voor een your_domain-site en laat u /var/www/html op zijn plaats staan als de standaarddirectory om te worden geserveerd als een clientverzoek niet overeenkomt met andere sites.

Maak de directory voor your_domain als volgt:

  1. sudo mkdir /var/www/your_domain

Wijs vervolgens eigendom van de directory toe aan de gebruiker waarbij u momenteel bent aangemeld met de $USER-omgevingsvariabele:

  1. sudo chown -R $USER:$USER /var/www/your_domain

De machtigingen van uw webroot moeten juist zijn als u uw umask-waarde niet hebt gewijzigd, die standaardbestandsmachtigingen instelt. Om ervoor te zorgen dat uw machtigingen correct zijn en de eigenaar toestaan ​​om bestanden te lezen, schrijven en uitvoeren, terwijl alleen lees- en uitvoeringsmachtigingen aan groepen en anderen worden verleend, kunt u de volgende opdracht invoeren:

  1. sudo chmod -R 755 /var/www/your_domain

Maak vervolgens een voorbeeldpagina index.html met behulp van nano of uw favoriete editor:

  1. sudo nano /var/www/your_domain/index.html

Voeg binnenin de volgende voorbeeld-HTML toe:

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

Sla het bestand op en sluit het af wanneer u klaar bent. Als u nano gebruikt, kunt u dit doen door op CTRL + X te drukken, vervolgens Y en ENTER.

Om deze inhoud te laten serveren door Apache, is het noodzakelijk om een virtueel hostbestand te maken met de juiste richtlijnen. In plaats van het standaard configuratiebestand rechtstreeks te wijzigen dat zich bevindt op /etc/apache2/sites-available/000-default.conf, maak een nieuw bestand aan op /etc/apache2/sites-available/uw_domein.conf:

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

Voeg het volgende configuratieblok toe, dat vergelijkbaar is met de standaard, maar bijgewerkt is voor uw nieuwe map en domeinnaam:

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Merk op dat we de DocumentRoot hebben bijgewerkt naar onze nieuwe map en ServerAdmin naar een e-mail die de beheerder van de uw_domein site kan bereiken. We hebben ook twee richtlijnen toegevoegd: ServerName, die het basisdomein vaststelt dat overeenkomt met deze virtuele hostdefinitie, en ServerAlias, die verdere namen definieert die overeenkomen alsof ze de basisnaam waren.

Sla het bestand op en sluit het af wanneer u klaar bent.

Activeer het bestand nu met de a2ensite tool:

  1. sudo a2ensite your_domain.conf

Deactiveer de standaardsite gedefinieerd in 000-default.conf:

  1. sudo a2dissite 000-default.conf

Test vervolgens op configuratiefouten:

  1. sudo apache2ctl configtest

U zou de volgende uitvoer moeten ontvangen:

Output
. . . Syntax OK

Herstart Apache om uw wijzigingen door te voeren:

  1. sudo systemctl restart apache2

Apache zal nu uw domeinnaam bedienen. U kunt dit testen door naar http://uw_domein te navigeren, waar u iets soortgelijks zou moeten zien als het volgende:

Stap 6 – Kennismaking met Belangrijke Apache Bestanden en Mappen

Nu je weet hoe je de Apache-service zelf kunt beheren, moet je een paar minuten nemen om je vertrouwd te maken met een paar belangrijke mappen en bestanden.

Inhoud

  • /var/www/html: De werkelijke webinhoud, die standaard alleen bestaat uit de standaard Apache-pagina die je eerder hebt gezien, wordt geserveerd vanuit de map /var/www/html. Dit kan worden gewijzigd door Apache-configuratiebestanden aan te passen.

Serverconfiguratie

  • /etc/apache2: De Apache-configuratiemap. Alle Apache-configuratiebestanden bevinden zich hier.
  • /etc/apache2/apache2.conf: Het hoofd Apache-configuratiebestand. Dit kan worden gewijzigd om wijzigingen aan te brengen in de Apache-globale configuratie. Dit bestand is verantwoordelijk voor het laden van veel van de andere bestanden in de configuratiemap.
  • /etc/apache2/ports.conf: Dit bestand specificeert de poorten waar Apache naar luistert. Standaard luistert Apache op poort 80 en luistert bovendien op poort 443 wanneer een module met SSL-mogelijkheden is ingeschakeld.
  • /etc/apache2/sites-available/: De map waar per-site virtuele hosts kunnen worden opgeslagen. Apache gebruikt de configuratiebestanden in deze map niet tenzij ze zijn gelinkt naar de sites-enabled map. Typisch wordt alle serverblokconfiguratie in deze map gedaan en vervolgens ingeschakeld door te linken naar de andere map met het a2ensite commando.
  • /etc/apache2/sites-enabled/: De map waar ingeschakelde per-site virtuele hosts worden opgeslagen. Typisch worden deze gemaakt door te linken naar configuratiebestanden in de sites-available map met het a2ensite commando. Apache leest de configuratiebestanden en links die in deze map worden gevonden wanneer het wordt gestart of herladen om een volledige configuratie samen te stellen.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: Deze mappen hebben dezelfde relatie als de sites-available en sites-enabled mappen maar worden gebruikt om configuratiefragmenten op te slaan die niet thuishoren in een virtuele host. Bestanden in de conf-available map kunnen worden ingeschakeld met het a2enconf commando en uitgeschakeld met het a2disconf commando.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Deze mappen bevatten respectievelijk de beschikbare en ingeschakelde modules. Bestanden met de extensie .load bevatten fragmenten om specifieke modules te laden, terwijl bestanden met de extensie .conf de configuratie voor die modules bevatten. Modules kunnen worden ingeschakeld en uitgeschakeld met de commando’s a2enmod en a2dismod.

Server Logs

  • /var/log/apache2/access.log: Standaard wordt elke aanvraag aan uw webserver geregistreerd in dit logbestand, tenzij Apache is geconfigureerd om anders te doen.
  • /var/log/apache2/error.log: Standaard worden alle fouten in dit bestand geregistreerd. De LogLevel-richtlijn in de Apache-configuratie geeft aan hoeveel detail de foutenlogs zullen bevatten.

Conclusie

Nu u uw webserver hebt geïnstalleerd, heeft u veel opties voor het type inhoud dat u kunt serveren en de technologieën die u kunt gebruiken om een rijkere ervaring te creëren.

Als u een meer complete toepassingsstack wilt opbouwen, kunt u dit artikel lezen over hoe u een LAMP-stack configureert op Ubuntu 22.04

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-22-04