Övning – Distribuera en PHP- och MySQL-app – flexibel server i Azure App Service

Slutförd

I den här lektionen skapar och distribuerar du en PHP-exempelapp till Azure App Service och integrerar den med Azure Database for MySQL – flexibel server på serverdelen.

STEG 1 – Skapa en flexibel Azure Database for MySQL-server

Först etablerar du en flexibel MySQL-server med anslutning till offentlig åtkomst, konfigurerar brandväggsregler så att appen får åtkomst till servern och skapar en produktionsdatabas.

Du använder Azure Portal för att gå igenom mySQL-funktionen för flexibel serverskapande.

  1. Logga in på Azure Portal med samma konto som du använde för att aktivera sandbox-miljön.

  2. I sökrutan överst på sidan anger du MySQL och väljer sedan Flexibla Azure Database for MySQL-servrar.

    Skärmbild av sökfältet överst i portalen som visar resultat från sökning efter mysql.

  3. På sidan Flexibla Azure Database for MySQL-servrar väljer du + Skapa och väljer sedan Flexibel server.

    Skärmbild av den expanderade menyn Skapa med menyalternativet Flexibel server markerat.

  4. På sidan Flexibel server går du till fliken Grundläggande och anger informationen i följande tabell.

    Inställning Föreslaget värde
    Prenumeration Concierge-prenumeration
    Resursgrupp I listrutan väljer du resursgruppen som börjar med learn-
    Servernamn Ange ett globalt unikt namn som identifierar din flexibla server.
    MySQL-version 8.0
    Typ av arbetsbelastning Välj För utveckling eller hobbyprojekt
    Användarnamn för administratör Ange mysqladmin. Använd inte azure_superuser, administratör, administratör, rot, gäst eller offentligt.
    Lösenord Ange Passw0rd123. Lösenordet måste innehålla mellan 8 och 128 tecken och innehålla tecken från tre kategorier: engelska versaler, engelska gemener, siffror (0 till 9) och icke-numeriska tecken (till exempel !, $, #, %).

    Behåll standardvärdena för alla andra inställningar.

  5. På fliken Grundläggande väljer du Konfigurera server under Compute + Storage.

  6. På sidan Compute + Storage konfigurerar du följande inställningar:

    • Beräkning
      • Välj beräkningsnivån Burstable .
      • I listrutan Beräkningsstorlekväljer du Standard_B1s (1 virtuell kärna, 1 GiB-minne, 400 max iops).
    • Storage
      • Kontrollera att lagringsstorleken (i GB) är inställd på 20.
      • Välj Företablerad IOPS och låt värdet vara inställt på 360.
      • Kontrollera att kryssrutan Automatisk tillväxt för lagring är markerad.
    • Hög tillgänglighet
      • Kontrollera att kryssrutan Aktivera hög tillgänglighet inte är markerad.
    • Säkerhetskopior
      • Kontrollera att kvarhållningsperioden för säkerhetskopiering (i dagar) är inställd på 7.
      • Kontrollera att kryssrutan Återställ från regionalt avbrott eller haveri inte är markerad.
  7. Välj Spara och gå sedan till fliken Nätverk .

    Skärmbild som visar bladet Skapa flexibel server med röd ruta runt fliken Nätverk.

  8. På fliken Nätverk väljer du Anslutningsmetod för offentlig åtkomst (tillåtna IP-adresser), markerar Tillåt offentlig åtkomst till den här resursen via Internet med hjälp av en offentlig IP-adress och markerar Tillåt offentlig åtkomst från alla Azure-tjänster i Azure till den här servern enligt följande skärmbild.

  9. Välj Granska + skapa för att granska din flexibla MySQL-serverkonfiguration.

  10. Välj Skapa för att etablera servern. Etableringen kan ta upp till 10 minuter.

  11. När distributionen är klar väljer du Gå till resurs för att visa sidan Översikt för Azure Database for MySQL– flexibel server.

Under resten av den här övningen kör du kommandona med hjälp av Azure Cloud Shell, som visas till höger om det här fönstret.

Kör följande kommando för att skapa en ny MySQL-produktionsdatabas sampledb som ska användas med PHP-appen:

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

STEG 2 – Klona din app

I den här övningen använder du en PHP-exempelapp som visar och hanterar en produktkatalog. Appen innehåller grundläggande funktioner som att visa produkterna i katalogen, lägga till nya produkter, uppdatera befintliga artikelpriser och ta bort produkter.

Du klonar den kodade appen direkt och lär dig hur du distribuerar den i Azure App Service.

Kommentar

Om du vill veta mer om appkoden kan du gå vidare och utforska appen på GitHub-lagringsplatsen!

  1. Om du vill klona exempelapplagringsplatsen och ändra till lagringsplatsens rot kör du följande kommandon:

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Kör följande kommando för att säkerställa att standardgrenen är main.

    git branch -m main
    

STEG 3 – Skapa och konfigurera en Azure App Service-webbapp

I Azure App Service (Web Apps, API Apps eller Mobile Apps) körs alltid en app i en App Service-plan. En App Service-plan definierar en uppsättning beräkningsresurser som en webbapp ska köra. I det här steget skapar du en Azure App Service-plan och en App Service-webbapp i den, som är värd för exempelappen.

  1. Kör följande kommando för att skapa en App Service-plan på prisnivån Kostnadsfri:

    az appservice plan create --name plan-learn \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --location centralus \
    --sku FREE --is-linux
    
  2. Om du vill distribuera en app till Azure-webbappen med hjälp av distributionsmetoder som FTP eller lokal Git måste du konfigurera en distributionsanvändare med autentiseringsuppgifter för användarnamn och lösenord. När du har konfigurerat distributionsanvändaren kan du dra nytta av den för alla dina Azure App Service-distributioner.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. Kör följande kommando för att skapa en App Service-webbapp med PHP 8.0-körning och konfigurera alternativet Lokal Git-distribution för att distribuera appen från en Git-lagringsplats på den lokala datorn.

    Obs! Ersätt <your-app-name> med ett globalt unikt appnamn (giltiga tecken är a-z, 0-9 och -).

    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
    

    Viktigt!

    I Azure CLI-utdata visas URL:en för Git-fjärren i deploymentLocalGitUrl egenskapen med formatet https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Spara den här URL:en eftersom du behöver den senare.

  4. Filen config.php i PHP-exempelappen hämtar databasanslutningsinformationen (servernamn, databasnamn, serveranvändarnamn och lösenord) från miljövariabler med hjälp av getenv() funktionen. Kör följande kommando i App Service för att ange miljövariabler som Programinställningar (apparinställningar):

    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"
    

    Det här kommandot ovan konfigurerar anslutningsinställningarna för MySQL-flexibel serverdatabas i webbappen.

STEG 4 – Distribuera din app med hjälp av lokal Git

Nu distribuerar du PHP-exempelappen till Azure App Service med hjälp av distributionsalternativet Lokal Git.

  1. Eftersom du distribuerar huvudgrenen måste du ange standarddistributionsgrenen för din App Service-app till main. Kör följande kommando för att ange DEPLOYMENT_BRANCH under Programinställningar:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group <rgn>[Sandbox resource group name]</rgn> \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Kontrollera att du finns i applagringsplatsens rotkatalog.

  3. Om du vill lägga till en Azure-fjärranslutning till din lokala Git-lagringsplats kör du följande kommando.

    Obs! Ersätt <deploymentLocalGitUrl> med URL:en för git-fjärrappen som du sparade i steget Skapa en App Service-webbapp.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Om du vill distribuera din app genom att köra en git push till Azure-fjärren kör du följande kommando. När Git Credential Manager frågar efter autentiseringsuppgifter anger du de autentiseringsuppgifter för distribution som du skapade i steget Konfigurera en distributionsanvändare .

    git push azure main
    

Distributionen kan ta några minuter att lyckas.

STEG 5 – Testa din app

Testa slutligen appen genom att bläddra till och sedan lägga till https://<app-name>.azurewebsites.net, visa, uppdatera eller ta bort objekt från produktkatalogen.

Skärmbild av den distribuerade webbappen som visas i webbläsaren.

Grattis! Du har distribuerat en PHP-exempelapp till Azure App Service och integrerat den med Azure Database for MySQL – flexibel server på serversidan.