Delen via


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

Van toepassing op: ✔️ Virtuele Linux-machines

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 versie 2.0.30 of hoger van Azure CLI uitvoeren. Voer az --version uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.

Een brongroep 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 gemaakt met behulp van omgevingsvariabelen en wordt een willekeurig achtervoegsel toegevoegd om de uniekheid te garanderen.

export REGION="eastus2"
export RANDOM_SUFFIX="$(openssl rand -hex 3)"
export MY_RESOURCE_GROUP_NAME="myResourceGroup${RANDOM_SUFFIX}"
az group create --name "${MY_RESOURCE_GROUP_NAME}" --location $REGION

Resultaten:

{
  "id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx",
  "location": "eastus",
  "name": "myResourceGroupxxxxx",
  "properties": {
      "provisioningState": "Succeeded"
  }
}

Maak een virtuele machine

Maak een VM met de opdracht az vm create.

In het volgende voorbeeld wordt een virtuele machine gemaakt met behulp van omgevingsvariabelen. Er wordt een virtuele machine met de naam myVM gemaakt en 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.

export MY_VM_NAME="myVM${RANDOM_SUFFIX}"
export IMAGE="Ubuntu2204"
export ADMIN_USERNAME="azureuser"
az vm create \
    --resource-group "${MY_RESOURCE_GROUP_NAME}" \
    --name $MY_VM_NAME \
    --image $IMAGE \
    --admin-username $ADMIN_USERNAME \
    --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 "${MY_RESOURCE_GROUP_NAME}" --name $MY_VM_NAME

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

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.

export PUBLIC_IP=$(az network public-ip list --resource-group "${MY_RESOURCE_GROUP_NAME}" --query [].ipAddress -o tsv)

Gebruik de ssh opdracht om een SSH-sessie te maken met de virtuele machine. Gebruik hierbij het juiste openbare IP-adres van uw virtuele machine.

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^.

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install lamp-server^"

U wordt gevraagd om 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:

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "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 controleren en beveiligen

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

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "mysql -V"

Als u de installatie van MySQL wilt beveiligen, inclusief het instellen van een hoofdwachtwoord, kunt u de sudo mysql_secure_installation opdracht uitvoeren. Met deze opdracht wordt u gevraagd verschillende vragen te beantwoorden om uw MySQL-installatie te beveiligen.

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. Hiervoor kunt u de sudo mysql -u root -p opdracht in uw VIRTUELE machine gebruiken en vervolgens uw hoofdwachtwoord invoeren wanneer u hierom wordt gevraagd. Met deze opdracht maakt u verbinding met uw virtuele machine via SSH en start u de MySQL-opdrachtregelclient als hoofdgebruiker.

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:

ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "php -v"

Als u verder wilt testen, kunt u een snelle PHP-infopagina maken om in een browser weer te geven. Met de volgende opdracht maakt u de PHP-infopagina 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.