Övning – Distribuera en PHP- och MySQL-app – flexibel server i Azure App Service
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.
Logga in på Azure Portal med samma konto som du använde för att aktivera sandbox-miljön.
I sökrutan överst på sidan anger du MySQL och väljer sedan Flexibla Azure Database for MySQL-servrar.
På sidan Flexibla Azure Database for MySQL-servrar väljer du + Skapa och väljer sedan Flexibel server.
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.
På fliken Grundläggande väljer du Konfigurera server under Compute + Storage.
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.
-
Beräkning
Välj Spara och gå sedan till fliken Nätverk .
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.
Välj Granska + skapa för att granska din flexibla MySQL-serverkonfiguration.
Välj Skapa för att etablera servern. Etableringen kan ta upp till 10 minuter.
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!
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
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.
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
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>
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 formatethttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Spara den här URL:en eftersom du behöver den senare.Filen
config.php
i PHP-exempelappen hämtar databasanslutningsinformationen (servernamn, databasnamn, serveranvändarnamn och lösenord) från miljövariabler med hjälp avgetenv()
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.
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'
Kontrollera att du finns i applagringsplatsens rotkatalog.
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>
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.
Grattis! Du har distribuerat en PHP-exempelapp till Azure App Service och integrerat den med Azure Database for MySQL – flexibel server på serversidan.