Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 Azure Database for MySQL Flexible Server op de back-end. Hier gebruikt u connectiviteit via openbare toegang (toegestane IP-adressen) in het Azure Database for MySQL Flexible Server-exemplaar 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 exemplaar van Azure Database for MySQL Flexible Server
- 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 Een gratis Azure-account gebruiken om Gratis Azure Database for MySQL - Flexible Server te proberen 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 Een gratis Azure-account gebruiken om Gratis Azure Database for MySQL - Flexible Server te proberen voor meer informatie.
Een Azure Database for MySQL - flexibele server maken
Richt eerst een exemplaar van een flexibele Azure Database for MySQL-server in met openbare toegang, configureer firewallregels om de toepassing toegang te geven tot de server en maak een productiedatabase.
Een brongroep maken
Een Azure-resourcegroep is een logische groep waarin Azure-resources worden geïmplementeerd en beheerd. Laten we een resourcegroep rg-php-demo maken met de opdracht az group create op de locatie centralus.
Open de opdrachtprompt.
Meld u aan bij uw Azure-account.
az loginKies uw Azure-abonnement.
az account set -s <your-subscription-ID>Maak de resourcegroep.
az group create --name rg-php-demo --location centralus
Een Azure Database for MySQL Flexible Server-exemplaar maken
Voer de volgende opdracht az flexible-server create uit om een Azure Database for MySQL Flexible Server-exemplaar te maken met openbare toegangsconnectiviteit. 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 Azure Database for MySQL Flexible Server-serverexemplaar, waarmee clientverbindingen worden toegestaan. Wanneer zowel het begin-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 exemplaar van Azure Database for MySQL Flexible Server.
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.0Voer de volgende opdracht uit om een nieuwe productiedatabase sampledb in Azure Database for MySQL Flexible 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 PHP gebruiken met Azure Database for MySQL - Flexible Server.
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-serviceVoer 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-linuxAls 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-gitBelangrijk
In de Azure CLI-uitvoer wordt de URL van de Git-remote 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 databaseverbindingsinstellingen voor Azure Database for MySQL Flexible Server in de web-app.
Het
config.phpbestand 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 ook Service Connector gebruiken om een verbinding tot stand te brengen tussen de App Service-app en de flexibele serverinstantie 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 Git-remote die u hebt opgeslagen in de stap Een App Service-web-app maken.git remote add azure <deploymentLocalGitUrl>Voer de volgende opdracht uit om uw app te implementeren door een
git pushnaar de Azure-remote uit te voeren. 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 naar https://<app-name>.azurewebsites.net te bladeren en vervolgens items in de productcatalogus toe te voegen, te bekijken, bij te werken of te verwijderen.
Gefeliciteerd. U hebt een PHP-voorbeeldtoepassing geïmplementeerd in Azure-app Service en deze geïntegreerd met Azure Database for MySQL Flexible 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 git push is voltooid, navigeert 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 aangemaakt. 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