Oefening: een PHP- en MySQL - Flexible Server-app implementeren in Azure-app Service

Voltooid

In deze les bouwt en implementeert u een PHP-voorbeeld-app in Azure-app Service en integreert u deze met Azure Database for MySQL - Flexible Server op de back-end.

STAP 1: Een flexibele Azure Database for MySQL-server maken

Eerst richt u een flexibele MySQL-server in met openbare toegangsconnectiviteit, configureert u firewallregels om de app toegang te geven tot de server en maakt u een productiedatabase.

U gebruikt Azure Portal om de ervaring voor het maken van flexibele MySQL-servers te doorlopen.

  1. Meld u aan bij de Azur-portal met hetzelfde account waarmee u de sandbox hebt geactiveerd.

  2. Voer in het zoekvak boven aan de pagina MySQL in en selecteer vervolgens Flexibele Servers van Azure Database for MySQL.

    Schermopname van de zoekbalk boven aan de portal met resultaten van het zoeken naar mysql.

  3. Selecteer + Maken en selecteer vervolgens Flexibele server op de pagina Flexibele Servers van Azure Database for MySQL.

    Schermopname van het uitgevouwen menu Maken met de menuopdracht Flexibele server gemarkeerd.

  4. Voer op de pagina Flexibele server op het tabblad Basisinformatie de gegevens in de volgende tabel in.

    Instelling Voorgestelde waarde
    Abonnement Concierge-abonnement
    Resourcegroep Selecteer in de vervolgkeuzelijst de resourcegroep die begint met learn-
    Servernaam Voer een wereldwijd unieke naam in waarmee uw flexibele server wordt geïdentificeerd.
    MySQL-versie 8.0
    Workloadtype Selecteren voor ontwikkeling of hobbyprojecten
    Gebruikersnaam van beheerder Voer mysqladmin in. Gebruik geen azure_superuser, beheerder, beheerder, hoofdbeheerder, gast of openbaar.
    Wachtwoord Voer Passw0rd123 in. Het wachtwoord moet tussen 8 en 128 tekens bevatten en tekens bevatten uit drie categorieën: Engelse hoofdletters, Nederlandse kleine letters, cijfers (0 tot en met 9) en niet-analephanumerische tekens (zoals !, $, #, %).

    Behoud de standaardwaarden voor alle andere instellingen.

  5. Selecteer Op het tabblad Basisbeginselen onder Compute + Storage de optie Server configureren.

  6. Configureer op de pagina Compute + Storage de volgende instellingen:

    • Compute
      • Selecteer de Burstable-rekenlaag .
      • Selecteer in de vervolgkeuzelijst Compute-grootteStandard_B1s (1 vCore, 1 GiB-geheugen, maximaal 400 iops).
    • Storage
      • Controleer of de opslaggrootte (in GB) is ingesteld op 20.
      • Selecteer vooraf ingerichte IOPS en laat de waarde ingesteld op 360.
      • Controleer of het selectievakje Automatische groei van opslag is ingeschakeld.
    • Hoge beschikbaarheid
      • Controleer of het selectievakje Hoge beschikbaarheid inschakelen niet is ingeschakeld.
    • Back-ups
      • Controleer of de bewaarperiode voor back-ups (in dagen) is ingesteld op 7.
      • Controleer of het selectievakje Herstellen na regionale storing of noodgeval niet is ingeschakeld.
  7. Selecteer Opslaan en navigeer naar het tabblad Netwerken .

    Schermopname van de blade Flexibele server maken, met een rood vak rond het tabblad Netwerken.

  8. Selecteer op het tabblad Netwerken de connectiviteitsmethode Openbare toegang (toegestane IP-adressen), schakel openbare toegang tot deze resource via internet toestaan in met behulp van een openbaar IP-adres en schakel openbare toegang vanuit elke Azure-service in Azure naar deze server toe, zoals wordt weergegeven in de volgende schermopname.

  9. Selecteer Beoordelen en maken om de configuratie van uw flexibele MySQL-server te controleren.

  10. Selecteer Maken om de server in te richten. Het inrichten kan tot 10 minuten duren.

  11. Nadat de implementatie is voltooid, selecteert u Ga naar de resource om de overzichtspagina van de flexibele Azure Database for MySQL-server weer te geven.

Voor de rest van deze oefening voert u de opdrachten uit met behulp van de Azure Cloud Shell, die rechts van dit venster wordt weergegeven.

Voer de volgende opdracht uit om een nieuwe MySQL-productiedatabasevoorbeelddb te maken voor gebruik met de PHP-app:

az mysql flexible-server db create \
--resource-group <rgn>[Sandbox resource group name]</rgn> \
--server-name <your-mysql-server-name> \
--database-name sampledb

STAP 2: uw app klonen

Voor deze oefening gebruikt u een PHP-voorbeeld-app die een productcatalogus weergeeft en beheert. De app biedt basisfunctionaliteiten zoals het weergeven van de producten in de catalogus, het toevoegen van nieuwe producten, het bijwerken van de prijzen van bestaande artikelen en het verwijderen van producten.

U kloont de gecodeerde app rechtstreeks en leert hoe u deze implementeert op Azure-app Service.

Notitie

Voor meer informatie over de app-code gaat u verder en verkent u de app in de GitHub-opslagplaats.

  1. Voer de volgende opdrachten uit om de opslagplaats voor de voorbeeld-app te klonen en over te schakelen naar de hoofdmap van de opslagplaats:

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Voer de volgende opdracht uit om ervoor te zorgen dat de standaardbranch is main.

    git branch -m main
    

STAP 3: Een Azure-app Service-web-app maken en configureren

In Azure-app Service (Web Apps, API Apps of Mobile Apps) wordt een app altijd uitgevoerd in een App Service-plan. Een App Service-plan definieert een set rekenresources waarmee een web-app kan worden uitgevoerd. In deze stap maakt u een Azure-app Service-plan en een App Service-web-app hierin, die als host fungeert voor de voorbeeld-app.

  1. Voer de volgende opdracht uit om een App Service-plan te maken in de prijscategorie Gratis:

    az appservice plan create --name plan-learn \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --location centralus \
    --sku FREE --is-linux
    
  2. Als u een app wilt implementeren in een Azure-web-app met behulp van implementatiemethoden zoals FTP of Lokale Git, moet u een implementatiegebruiker met gebruikersnaam en wachtwoordreferenties configureren. Nadat u de implementatiegebruiker hebt geconfigureerd, kunt u hiervan profiteren voor al uw Azure-app Service-implementaties.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. Voer de volgende opdracht uit om een App Service-web-app te maken met PHP 8.0-runtime en om de optie lokale Git-implementatie te configureren om uw app te implementeren vanuit een Git-opslagplaats op uw lokale computer.

    Opmerking: Vervang door <your-app-name> een wereldwijd unieke app-naam (geldige tekens zijn a-z, 0-9 en -).

    az webapp create \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --plan plan-learn \
    --name <your-app-name> \
    --runtime "PHP|8.0" \
    --deployment-local-git
    

    Belangrijk

    In de Azure CLI-uitvoer wordt de URL van de externe Git weergegeven in de deploymentLocalGitUrl eigenschap, met de indeling https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Sla deze URL op, omdat u deze later nodig hebt.

  4. Het config.php bestand in de PHP-voorbeeld-app haalt de databaseverbindingsgegevens (servernaam, databasenaam, gebruikersnaam en wachtwoord van de server) op uit omgevingsvariabelen met behulp van de getenv() functie. Voer in App Service de volgende opdracht uit om omgevingsvariabelen in te stellen als toepassingsinstellingen (appsettings):

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --settings DB_HOST="<your-server-name>.mysql.database.azure.com" \
    DB_DATABASE="sampledb" \
    DB_USERNAME="<your-mysql-admin-username>" \
    DB_PASSWORD="<your-mysql-admin-password>" \
    MYSQL_SSL="true"
    

    Met deze opdracht hierboven configureert u de verbindingsinstellingen voor de mySQL flexibele serverdatabase in de web-app.

STAP 4: Uw app implementeren met behulp van lokale Git

Nu implementeert u de PHP-voorbeeld-app in Azure-app Service met behulp van de optie Lokale Git-implementatie.

  1. Omdat u de hoofdvertakking implementeert, moet u de standaardimplementatiebranch voor uw App Service-app instellen op main. Voer de volgende opdracht uit om de DEPLOYMENT_BRANCH in te stellen onder Toepassingsinstellingen:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Controleer of u zich in de hoofdmap van de app-opslagplaats bevindt.

  3. Als u een externe Azure-opslagplaats wilt toevoegen aan uw lokale Git-opslagplaats, voert u de volgende opdracht uit.

    Opmerking: Vervang door <deploymentLocalGitUrl> de URL van de externe Git-app die u hebt opgeslagen in de stap Een App Service-web-app maken.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Als u uw app wilt implementeren door een externe git push Azure-app uit te voeren, voert u de volgende opdracht uit. Wanneer Git Credential Manager u om referenties vraagt, voert u de implementatiereferenties in die u hebt gemaakt in de stap Een implementatiegebruiker configureren.

    git push azure main
    

Het kan enkele minuten duren voordat de implementatie is voltooid.

STAP 5: Uw app testen

Test ten slotte de app door te bladeren naar en vervolgens items uit de productcatalogus toe te https://<app-name>.azurewebsites.netvoegen, weer te geven, bij te werken of te verwijderen.

Schermopname van de geïmplementeerde web-app die wordt weergegeven in de webbrowser.

Gefeliciteerd U hebt een PHP-voorbeeld-app geïmplementeerd in Azure-app Service en deze geïntegreerd met Azure Database for MySQL - Flexible Server op de back-end.