Zelfstudie: Een LAMP-stack installeren op een Azure Linux-VM

Van toepassing op: ✔️ Linux-VM's

Dit artikel begeleidt u bij de implementatie van een Apache-webserver, MySQL en PHP (de LAMP-stack) op een Ubuntu-VM in Azure. Als u de LAMP-server in actie wilt zien, kunt u eventueel een WordPress-site installeren en configureren. In deze zelfstudie leert u het volgende:

  • Maken van een Ubuntu-VM
  • Poort 80 openen voor webverkeer
  • Apache, MySQL en PHP installeren
  • Installatie en configuratie verifiëren
  • WordPress installeren

Deze installatie is voor snelle tests en het testen van het concept. Zie de documentatie van Ubuntu (Engelstalig) voor meer informatie over de LAMP-stack, waaronder aanbevelingen voor een productieomgeving.

In deze zelfstudie wordt gebruikgemaakt van de CLI in de Azure Cloud Shell, die voortdurend wordt bijgewerkt naar de nieuwste versie. Als u de Cloud Shell wilt openen, selecteert u Probeer het bovenaan een willekeurig codeblok.

Als u ervoor kiest om de CLI lokaal te installeren en te gebruiken, moet u voor deze zelfstudie Azure CLI versie 2.0.30 of hoger uitvoeren. Voer az --version uit om de versie te bekijken. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.

Een resourcegroep maken

Een resourcegroep maken met de opdracht az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.

In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.

az group create --name myResourceGroup --location eastus

Een virtuele machine maken

Maak een VM met de opdracht az vm create.

In het volgende voorbeeld wordt een VM met de naam myVM gemaakt en worden er SSH-sleutels gemaakt als deze nog niet bestaan op een standaardsleutellocatie. Als u een specifieke set sleutels wilt gebruiken, gebruikt u de optie --ssh-key-value. Met de opdracht wordt azureuser ook ingesteld als gebruikersnaam voor de beheerder. Later gebruikt u deze naam om verbinding te maken met de VM.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Wanneer de virtuele machine is gemaakt, toont de Azure CLI informatie die lijkt op de informatie in het volgende voorbeeld. Noteer het publicIpAddress. Dit adres wordt in latere stappen gebruikt voor toegang tot de VM.

{
  "fqdns": "",
  "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

Poort 80 openen voor webverkeer

Standaard worden alleen SSH-verbindingen toegestaan naar Linux-VM’s die zijn geïmplementeerd in Azure. Omdat deze VM wordt gebruikt als een webserver, moet u poort 80 openen voor verkeer vanaf internet. Gebruik de opdracht az vm open-port om de gewenste poort te openen.

az vm open-port --port 80 --resource-group myResourceGroup --name myVM

Zie Poorten openen voor meer informatie over het openen van poorten voor uw VM.

SSH in uw virtuele machine

Als u het openbare IP-adres van de VM niet weet, voert u de opdracht az network public-ip list uit. U hebt dit IP-adres nodig voor verschillende latere stappen.

az network public-ip list --resource-group myResourceGroup --query [].ipAddress

Gebruik de volgende opdracht om een SSH-sessie te starten voor de virtuele machine. Gebruik hierbij het juiste openbare IP-adres van uw virtuele machine. In dit voorbeeld is het IP-adres 40.68.254.142. azureuser is de gebruikersnaam voor de beheerder die u hebt ingesteld bij het maken van de VM.

ssh azureuser@40.68.254.142

Apache, MySQL en PHP installeren

Voer de volgende opdracht uit om Ubuntu-pakketbronnen bij te werken en Apache, MySQL en PHP te installeren. Let op het caret-teken (^) aan het eind van de opdracht. Dit maakt deel uit van de pakketnaam van lamp-server^.

sudo apt update && sudo apt install lamp-server^

U wordt gevraagd de pakketten en andere afhankelijkheden te installeren. In dit proces worden de minimaal vereiste PHP-extensies geïnstalleerd die voor het gebruik van PHP met MySQL nodig zijn.

Apache Verifiëren

Controleer de versie van Apache met de volgende opdracht:

apache2 -v

Als Apache is geïnstalleerd en poort 80 is geopend voor de VM, is de webserver nu toegankelijk vanaf internet. Als u de standaardpagina van Apache2 Ubuntu wilt weergeven, opent u een webbrowser en voert u het openbare IP-adres van de VM in. Gebruik het openbare IP-adres dat u hebt gebruikt om een SSH-verbinding met de VM te maken:

Standaardpagina van Apache

MySQL verifiëren en beveiligen

Controleer de versie van MySQL met de volgende opdracht (let op de hoofdletter V van de parameter):

mysql -V

Als u de installatie van MySQL wilt beveiligen, inclusief het instellen van een hoofdwachtwoord, voert u het script mysql_secure_installation uit.

sudo mysql_secure_installation

U kunt desgewenst de invoegtoepassing voor wachtwoordvalidatie instellen (aanbevolen). Vervolgens stelt u een wachtwoord in voor de MySQL-hoofdgebruiker en configureert u de resterende instellingen voor uw omgeving. We raden u aan alle vragen met 'J' (Ja) te beantwoorden.

Als u MySQL-functies wilt uitproberen (MySQL-database maken, gebruikers toevoegen of configuratie-instellingen wijzigen), meldt u zich aan bij MySQL. Deze stap is niet vereist om deze zelfstudie te voltooien.

sudo mysql -u root -p

Als u klaar bent, sluit u de mysql-prompt door \q te typen.

PHP verifiëren

Controleer de versie van PHP met de volgende opdracht:

php -v

Als u meer tests wilt uitvoeren, maakt u snel een PHP-infopagina om in een browser weer te geven. Met de volgende opdracht wordt de PHP-infopagina gemaakt:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

Nu kunt u de zojuist gemaakte PHP-infopagina controleren. Open een browser en ga naar http://yourPublicIPAddress/info.php. Vervang het openbare IP-adres van uw VM. Het moet er ongeveer uitzien als in deze afbeelding.

PHP-infopagina

WordPress installeren

Als u uw stack wilt uitproberen, installeert u een voorbeeld-app. Bijvoorbeeld: met de volgende stappen installeert u het open-sourceplatform WordPress om website en blogs te maken. Andere workloads die u kunt uitproberen, zijn onder andere Drupal en Moodle.

Deze WordPress-installatie is alleen bedoeld als Proof of Concept. Raadpleeg de WordPress-documentatie voor het installeren van de nieuwste WordPress-versie in een productieomgeving met de aanbevolen beveiligingsinstellingen.

Het WordPress-pakket installeren

Voer de volgende opdracht uit:

sudo apt install wordpress

WordPress configureren

WordPress configureren voor het gebruik van MySQL en PHP.

Maak in een werkmap een tekstbestand wordpress.sql om de MySQL-database te configureren voor WordPress:

sudo sensible-editor wordpress.sql

Voeg de volgende opdrachten toe, waarbij u yourPassword vervangt door een databasewachtwoord van uw keuze (laat andere waarden ongewijzigd). Als u eerder MySQL-beveiligingsbeleid hebt ingesteld om de wachtwoordsterkte te valideren, moet u ervoor zorgen dat het wachtwoord voldoet aan de vereisten voor een sterk wachtwoord. Sla het bestand op.

CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';

Voer de volgende opdracht uit om de database te maken:

cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf

Omdat het bestand wordpress.sql databasereferenties bevat, verwijdert u het bestand na gebruik:

sudo rm wordpress.sql

Configureer PHP door de volgende opdracht uit te voeren om een teksteditor van uw keuze te openen en het bestand /etc/wordpress/config-localhost.php te maken:

sudo sensible-editor /etc/wordpress/config-localhost.php

Kopieer de volgende regels in het bestand, waarbij u yourPassword vervangt door het WordPress-wachtwoord (laat andere waarden ongewijzigd). Sla het bestand op.

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'yourPassword');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
?>

Verplaats de WordPress-installatie naar de hoofdmap van het webserverdocument:

sudo ln -s /usr/share/wordpress /var/www/html/wordpress

sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php

Nu kunt u de WordPress-installatie voltooien en op het platform publiceren. Open een browser en ga naar http://yourPublicIPAddress/wordpress. Vervang het openbare IP-adres van uw VM. Het moet er ongeveer uitzien als in deze afbeelding.

Installatiepagina voor WordPress

Volgende stappen

In deze zelfstudie hebt u een LAMP-server in Azure geïmplementeerd. U hebt geleerd hoe u:

  • Maken van een Ubuntu-VM
  • Poort 80 openen voor webverkeer
  • Apache, MySQL en PHP installeren
  • Installatie en configuratie verifiëren
  • WordPress op de LAMP-server installeren

Ga door naar de volgende zelfstudie om te leren hoe u webservers kunt beveiligen met behulp van TSL-/SSL-certificaten.