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
- Installeer Git.
- De Azure-opdrachtregelinterface (CLI).
- 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.
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.
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 .
- Open de opdrachtprompt.
- Meld u aan bij uw Azure-account.
az login
- Kies uw Azure-abonnement.
az account set -s <your-subscription-ID>
- Maak de resourcegroep.
az group create --name rg-php-demo --location centralus
Een exemplaar van een flexibele Azure Database for MySQL-server maken
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.
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
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.
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
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.
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
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>
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.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 degetenv()
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.
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'
Controleer of u zich in de hoofdmap van de toepassingsopslagplaats bevindt.
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>
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.net
voegen, weer te geven, bij te werken of te verwijderen.
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