Delen via


Zelfstudie: Een PHP- en Azure Database for MySQL - Flexible Server-app implementeren in Azure-app Service

VAN TOEPASSING OP: Azure Database for MySQL - Flexibele server

Azure App Service biedt een uiterst schaalbare webhostingservice met self-patchfunctie via het Linux-besturingssysteem.

Deze zelfstudie laat zien hoe u een PHP-voorbeeldtoepassing bouwt en implementeert in Azure-app Service en hoe u deze integreert met een flexibele Azure Database for MySQL-server op de back-end. Hier gebruikt u openbare toegangsconnectiviteit (toegestane IP-adressen) in het exemplaar van de flexibele Azure Database for MySQL-server om verbinding te maken met de App Service-app.

In deze zelfstudie leert u het volgende:

  • Een exemplaar van een flexibele Azure Database for MySQL-server maken
  • Een PHP-app verbinden met het flexibele serverexemplaren van Azure Database for MySQL
  • De app implementeren in Azure App Service
  • De app bijwerken en opnieuw implementeren

Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint. Op dit moment kunt u met een gratis Azure-account Azure Database for MySQL - Flexible Server 12 maanden gratis proberen. Zie Azure Database for MySQL - Flexible Server gratis uitproberen voor meer informatie.

Vereisten

Azure Database for MySQL - flexibele server maken

Eerst richten we een exemplaar van een flexibele Azure Database for MySQL-server in met openbare toegang, configureert u firewallregels om de toepassing toegang te geven tot de server en maakt u een productiedatabase.

Zie zelfstudie: Een App Services-web-app verbinden met een exemplaar van een flexibele Azure Database for MySQL-server in een virtueel netwerk voor meer informatie over het gebruik van privétoegangsconnectiviteit en het isoleren van app- en databasebronnen in een virtueel netwerk.

Een brongroep maken

Een Azure-resourcegroep is een logische groep waarin Azure-resources worden geïmplementeerd en beheerd. We gaan een resourcegroep maken rg-php-demo met behulp van de opdracht az group create in de centralus-locatie .

  1. Open de opdrachtprompt.
  2. Meld u aan bij uw Azure-account.
    az login
    
  3. Kies uw Azure-abonnement.
    az account set -s <your-subscription-ID>
    
  4. Maak de resourcegroep.
    az group create --name rg-php-demo --location centralus
    

Een exemplaar van een flexibele Azure Database for MySQL-server maken

  1. Als u een exemplaar van een flexibele Azure Database for MySQL-server wilt maken met openbare toegang, voert u de volgende opdracht az flexible-server create uit. Vervang uw waarden voor servernaam, gebruikersnaam en wachtwoord van de beheerder.

    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>
    

    U hebt nu een exemplaar van een flexibele Azure Database for MySQL-server gemaakt in de regio CentralUS. De server is gebaseerd op de burstable B1MS-reken-SKU, met 32 GB opslag, een bewaarperiode van 7 dagen voor back-ups en geconfigureerd met openbare toegangsconnectiviteit.

  2. Voer vervolgens de volgende opdracht uit om een firewallregel te maken voor uw exemplaar van flexibele Azure Database for MySQL-server om clientverbindingen toe te staan. Wanneer zowel het eerste IP-adres als het eind-IP-adres zijn ingesteld op 0.0.0.0, kunnen alleen andere Azure-resources (zoals App Services-apps, VM's, AKS-cluster, enzovoort) verbinding maken met het flexibele Server-exemplaar van Azure Database for MySQL.

    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
    
  3. Voer de volgende opdracht uit om een nieuwe voorbeelddatabase voor een flexibele Azure Database for MySQL-server te maken voor gebruik met de PHP-toepassing:

    az mysql flexible-server db create \
    --resource-group rg-php-demo \
    --server-name <your-mysql-server-name> \
    --database-name sampledb
    

Uw toepassing bouwen

Voor deze zelfstudie gebruiken we een php-voorbeeldtoepassing die een productcatalogus weergeeft en beheert. De toepassing 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.

Voor meer informatie over de toepassingscode gaat u verder met het verkennen van de app in de GitHub-opslagplaats. Als u wilt weten hoe u een PHP-app verbindt met een flexibele Azure Database for MySQL-server, raadpleegt u quickstart: Verbinding maken met PHP.

In deze zelfstudie klonen we de gecodeerde voorbeeld-app rechtstreeks en leert u hoe u deze implementeert in Azure-app Service.

  1. Voer de volgende opdrachten uit om de opslagplaats van de voorbeeldtoepassing 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
    

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 maken we een Azure-app Service-plan en een App Service-web-app hierin, die als host fungeert voor de voorbeeldtoepassing.

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

    az appservice plan create --name plan-php-demo \
    --resource-group rg-php-demo \
    --location centralus \
    --sku FREE --is-linux
    
  2. Als u een toepassing 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. Vervang door <your-app-name> een wereldwijd unieke app-naam (geldige tekens zijn a-z, 0-9 en -).

    az webapp create \
    --resource-group rg-php-demo \
    --plan plan-php-demo \
    --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 eigenschap deploymentLocalGitUrl, met de indeling https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Sla deze URL op, omdat u deze later nodig hebt.

  4. Vervolgens configureren we de verbindingsinstellingen voor de databaseverbinding van Azure Database for MySQL flexibele server in de web-app.

    Het config.php bestand in de PHP-voorbeeldtoepassing 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 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"
    

    U kunt serviceconnector ook gebruiken om een verbinding tot stand te brengen tussen de App Service-app en het flexibele serverexemplaren van Azure Database for MySQL. Zie Azure Database for MySQL Flexibele server integreren met Service Connector voor meer informatie.

Uw toepassing implementeren met behulp van Lokale Git

Nu implementeren we de PHP-voorbeeldtoepassing 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 rg-php-demo \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Controleer of u zich in de hoofdmap van de toepassingsopslagplaats bevindt.

  3. Als u een externe Azure-opslagplaats wilt toevoegen aan uw lokale Git-opslagplaats, voert u de volgende opdracht uit. Vervang <deploymentLocalGitUrl> door de URL van de externe Git-instantie 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.

Uw toepassing testen

Test ten slotte de toepassing 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 PHP-web-app voor de voorbeeldproductcatalogus.

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

De app bijwerken en opnieuw implementeren

Als u de Azure-app wilt bijwerken, moet u de benodigde codewijzigingen aanbrengen, alle wijzigingen doorvoeren in Git en de codewijzigingen naar Azure pushen.

git add .
git commit -m "Update Azure app"
git push azure main

Zodra de app git push is voltooid, gaat u naar of vernieuwt u de Azure-app om de nieuwe functionaliteit te testen.

Resources opschonen

In deze zelfstudie hebt u alle Azure-resources in een resourcegroep gemaakt. Als u deze resources niet meer nodig denkt te hebben, verwijdert u de resourcegroep door de volgende opdracht in Cloud Shell uit te voeren:

az group delete --name rg-php-demo

Volgende stappen