Självstudie: Distribuera en PHP- och Azure Database for MySQL – flexibel serverapp i Azure App Service
GÄLLER FÖR: Azure Database for MySQL – flexibel server
Azure App Service tillhandahåller en mycket skalbar webbvärdtjänst med självkorrigering med hjälp av Linux-operativsystemet.
Den här självstudien visar hur du skapar och distribuerar ett PHP-exempelprogram till Azure App Service och integrerar det med Azure Database for MySQL – flexibel server på serversidan. Här använder du offentlig åtkomstanslutning (tillåtna IP-adresser) i azure database for MySQL– flexibel serverinstans för att ansluta till App Service-appen.
I den här självstudien får du lära dig att:
- Skapa en flexibel Azure Database for MySQL-serverinstans
- Ansluta en PHP-app till Azure Database for MySQL– flexibel serverinstans
- Distribuera appen till Azure App Service
- Uppdatera och distribuera om appen
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Med ett kostnadsfritt Azure-konto kan du prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Prova Azure Database for MySQL – flexibel server kostnadsfritt.
Förutsättningar
- Installera Git.
- Azures kommandoradsgränssnitt (CLI).
- En Azure-prenumeration Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Med ett kostnadsfritt Azure-konto kan du prova Azure Database for MySQL – flexibel server kostnadsfritt i 12 månader. Mer information finns i Prova Azure Database for MySQL – flexibel server kostnadsfritt.
Skapa en Azure Database for MySQL – flexibel server
Först etablerar vi en flexibel Azure Database for MySQL-serverinstans med anslutning till offentlig åtkomst, konfigurerar brandväggsregler så att programmet får åtkomst till servern och skapar en produktionsdatabas.
Information om hur du använder privat åtkomstanslutning i stället och isolerar app- och databasresurser i ett virtuellt nätverk finns i Självstudie: Ansluta en App Services-webbapp till en flexibel Azure Database for MySQL-serverinstans i ett virtuellt nätverk.
Skapa en resursgrupp
En Azure-resursgrupp är en logisk grupp där Azure-resurser distribueras och hanteras. Nu ska vi skapa en resursgrupp rg-php-demo med kommandot az group create på centralus-platsen.
- Öppna kommandotolken.
- Logga in på ditt Azure-konto.
az login
- Välj din Azure-prenumeration.
az account set -s <your-subscription-ID>
- Skapa resursgruppen.
az group create --name rg-php-demo --location centralus
Skapa en flexibel Azure Database for MySQL-serverinstans
Om du vill skapa en flexibel Azure Database for MySQL-serverinstans med anslutning till offentlig åtkomst kör du följande az flexible-server create-kommando . Ersätt dina värden för servernamn, administratörsanvändarnamn och lösenord.
az mysql flexible-server create \ --name <your-mysql-server-name> \ --resource-group rg-php-demo \ --location centralus \ --admin-user <your-mysql-admin-username> \ --admin-password <your-mysql-admin-password>
Nu har du skapat en flexibel Azure Database for MySQL-serverinstans i regionen CentralUS. Servern baseras på SKU:n burstable B1MS compute, med 32 GB lagring, en kvarhållningsperiod på 7 dagar för säkerhetskopiering och konfigurerad med anslutning till offentlig åtkomst.
Kör sedan följande kommando för att skapa en brandväggsregel för din flexibla Azure Database for MySQL-serverinstans för att tillåta klientanslutningar. När både start-IP och slut-IP är inställda på 0.0.0.0 kan endast andra Azure-resurser (t.ex. App Services-appar, virtuella datorer, AKS-kluster osv.) ansluta till azure database for MySQL– flexibel serverinstans.
az mysql flexible-server firewall-rule create \ --name <your-mysql-server-name> \ --resource-group rg-php-demo \ --rule-name AllowAzureIPs \ --start-ip-address 0.0.0.0 \ --end-ip-address 0.0.0.0
Kör följande kommando för att skapa en ny Azure Database for MySQL– flexibel serverproduktionsdatabas som ska användas med PHP-programmet:
az mysql flexible-server db create \ --resource-group rg-php-demo \ --server-name <your-mysql-server-name> \ --database-name sampledb
Skapa ditt program
I den här självstudien använder vi ett PHP-exempelprogram som visar och hanterar en produktkatalog. Programmet innehåller grundläggande funktioner som att visa produkterna i katalogen, lägga till nya produkter, uppdatera befintliga artikelpriser och ta bort produkter.
Om du vill veta mer om programkoden går du vidare och utforskar appen på GitHub-lagringsplatsen. Mer information om hur du ansluter en PHP-app till en flexibel Azure Database for MySQL-server finns i Snabbstart: Anslut med PHP.
I den här självstudien ska vi klona den kodade exempelappen direkt och lära oss hur du distribuerar den i Azure App Service.
Om du vill klona exempelprogrammets lagringsplats 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
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 vi en Azure App Service-plan och en App Service-webbapp i den, som är värd för exempelprogrammet.
Kör följande kommando för att skapa en App Service-plan på prisnivån Kostnadsfri:
az appservice plan create --name plan-php-demo \ --resource-group rg-php-demo \ --location centralus \ --sku FREE --is-linux
Om du vill distribuera ett program 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. Ersätt
<your-app-name>
med ett globalt unikt appnamn (giltiga tecken är a-z, 0-9 och -).az webapp create \ --resource-group rg-php-demo \ --plan plan-php-demo \ --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 egenskapen deploymentLocalGitUrl med formatet
https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Spara den här URL:en eftersom du behöver den senare.Nu ska vi konfigurera anslutningsinställningarna för Azure Database for MySQL för flexibel serverdatabas i webbappen.
Filen
config.php
i PHP-exempelprogrammet 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 rg-php-demo \ --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"
Du kan också använda Service Connector för att upprätta en anslutning mellan App Service-appen och Azure Database for MySQL– flexibel serverinstans. Mer information finns i Integrera flexibel Azure Database for MySQL-server med Service Connector.
Distribuera ditt program med hjälp av lokal Git
Nu ska vi distribuera PHP-exempelprogrammet 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 rg-php-demo \ --settings DEPLOYMENT_BRANCH='main'
Kontrollera att du finns i programlagringsplatsens rotkatalog.
Om du vill lägga till en Azure-fjärranslutning till din lokala Git-lagringsplats kör du följande kommando. Ersätt
<deploymentLocalGitUrl>
med URL:en för git-fjärren 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.
Testa ditt program
Testa slutligen programmet 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 ett PHP-exempelprogram till Azure App Service och integrerat det med Azure Database for MySQL – flexibel server på serversidan.
Uppdatera och distribuera om appen
Uppdatera Azure-appen genom att göra nödvändiga kodändringar, checka in alla ändringar i Git och sedan skicka kodändringarna till Azure.
git add .
git commit -m "Update Azure app"
git push azure main
När den git push
är klar går du till eller uppdaterar Azure-appen för att testa de nya funktionerna.
Rensa resurser
I den här självstudien skapade du alla Azure-resurser i en resursgrupp. Om du inte tror att du behöver dessa resurser i framtiden tar du bort resursgruppen genom att köra följande kommando i Cloud Shell:
az group delete --name rg-php-demo