Tutorial: Eine PHP- und Azure Database for MySQL bereitstellen – Flexible Server-App auf Azure App Service
Azure App Service bietet einen hochgradig skalierbaren Webhostingdienst mit Self-Patching unter dem Linux-Betriebssystem.
In diesem Tutorial erfahren Sie, wie Sie eine PHP-Beispielanwendung erstellen, in Azure App Service bereitstellen und in Azure Database for MySQL – Flexibler Server im Back-End integrieren. Sie verwenden hier die Konnektivitätsmethode des öffentlichen Zugriffs (zulässige IP-Adressen) in der Instanz von Azure Database for MySQL – Flexibler Server, um eine Verbindung zur App Service-App herzustellen.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen einer Azure Database for MySQL Flexible Server-Instanz
- Verbinden Sie eine PHP-Anwendung mit der flexiblen Serverinstanz Azure Database for MySQL
- Bereitstellen der App in Azure App Service
- Aktualisieren und erneutes Bereitstellen der App
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen. Mit einem kostenlosen Azure-Konto können Sie Azure Database for MySQL – Flexibler Server derzeit 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Verwenden eines kostenlosen Azure-Kontos, um Azure Database for MySQL – Flexible Server kostenlos zu testen.
Voraussetzungen
- Git installieren.
- Die Azure-Befehlszeilenschnittstelle (CLI)
- Ein Azure-Abonnement: Sollten Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen, bevor Sie beginnen. Mit einem kostenlosen Azure-Konto können Sie Azure Database for MySQL – Flexibler Server derzeit 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Verwenden eines kostenlosen Azure-Kontos, um Azure Database for MySQL – Flexible Server kostenlos zu testen.
Erstellen einer Instanz von Azure Database for MySQL – Flexible Server
Zunächst stellen Sie eine Instanz von Azure Database for MySQL – Flexibler Server mit öffentlichem Zugriff bereit. Anschließend konfigurieren Sie Firewallregeln, damit die Anwendung auf den Server zugreifen kann, und schließlich erstellen Sie eine Produktionsdatenbank.
Informationen dazu, wie Sie stattdessen den privaten Zugriff verwenden sowie App- und Datenbankressourcen in einem virtuellen Netzwerk isolieren, finden Sie im Tutorial: Verbinden einer App Services-Web-App mit einer Instanz von Azure Database for MySQL – Flexibler Server in einem virtuellen Netzwerk.
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden. Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe namens rg-php-demo am Standort centralus.
Öffnen Sie die Eingabeaufforderung.
Melden Sie sich bei Ihrem Azure-Konto an.
az login
Wählen Sie Ihr Azure-Abonnement aus.
az account set -s <your-subscription-ID>
Erstellen Sie die Ressourcengruppe.
az group create --name rg-php-demo --location centralus
Erstellen einer Azure Database for MySQL Flexible Server-Instanz
Um eine Instanz von Azure Database for MySQL – Flexibler Server mit öffentlichem Zugriff zu erstellen, führen Sie den Befehl az flexible-server create aus. Ersetzen Sie Ihre Werte für Servername, Admin-Benutzername und Passwort.
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>
Sie haben jetzt eine Instanz von Azure Database for MySQL – Flexibler Server in der Region „CentralUS“ erstellt. Der Server basiert auf der Compute-SKU „Burstfähig B1MS“ mit 32 GB Speicher sowie einem 7-tägigen Sicherungsaufbewahrungszeitraum, und ist mit öffentlicher Zugriffskonnektivität konfiguriert.
Um eine Firewallregel für Ihre Instanz von Azure Database for MySQL – Flexibler Server zu erstellen, die Clientverbindungen zulässt, führen Sie den folgenden Befehl aus. Wenn sowohl die Start- als auch die End-IP-Adresse auf 0.0.0.0 festgelegt sind, können nur andere Azure-Ressourcen (wie App Services-Apps, VMs, AKS-Cluster usw.) eine Verbindung zur Instanz von Azure Database for MySQL – Flexibler Server herstellen.
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
Um eine neue Produktionsdatenbank für Azure Database for MySQL– Flexibler Server mit dem Namen sampledb zur Verwendung mit der PHP-Anwendung zu erstellen, führen Sie den folgenden Befehl aus:
az mysql flexible-server db create \ --resource-group rg-php-demo \ --server-name <your-mysql-server-name> \ --database-name sampledb
Erstellen Ihrer Anwendung
In diesem Tutorial verwenden wir eine Beispiel-PHP-Anwendung, mit der ein Produktkatalog angezeigt und verwaltet wird. Die Anwendung bietet grundlegende Funktionen wie das Anzeigen der Produkte im Katalog, das Hinzufügen von neuen Produkten, das Aktualisieren vorhandener Artikelpreise und das Entfernen von Produkten.
Wenn Sie mehr über den Anwendungscode erfahren möchten, können Sie die App im GitHub-Repository erkunden. Wie Sie eine PHP-Anwendung mit Azure Database for MySQL – Flexibler Server verbinden können, erfahren Sie unter Verwenden von PHP mit Azure Database for MySQL – Flexibler Server.
In diesem Tutorial wird die programmierte Beispiel-App direkt geklont und gezeigt, wie Sie diese in Azure App Service bereitstellen können.
Führen Sie die folgenden Befehle aus, um das Beispielanwendungsrepository zu klonen und den Repositorystamm zu ändern:
git clone https://github.com/Azure-Samples/php-mysql-app-service.git cd php-mysql-app-service
Führen Sie den folgenden Befehl aus, um zu gewährleisten, dass der Standardbranch
main
ist.git branch -m main
Erstellen und Konfigurieren einer Azure App Service-Web-App
In Azure App Service (Web-Apps, API-Apps oder Mobile Apps) wird eine App immer in einem App Service-Plan ausgeführt. Mit einem App Service-Plan wird ein Satz mit Computeressourcen für eine auszuführende Web-App definiert. In diesem Schritt erstellen wir einen Azure App Service-Plan und darin eine App Service-Web-App, in der die Beispielanwendung gehostet wird.
Führen Sie den folgenden Befehl aus, um einen App Service-Plan im „Free“-Tarif zu erstellen:
az appservice plan create --name plan-php-demo \ --resource-group rg-php-demo \ --location centralus \ --sku FREE --is-linux
Wenn Sie eine Anwendung in der Azure-Web-App mithilfe von Bereitstellungsmethoden wie FTP oder „Lokales Git“ bereitstellen möchten, müssen Sie einen Bereitstellungsbenutzer mit Benutzernamen und Kennwort konfigurieren. Nach der Konfiguration des Bereitstellungsbenutzers können Sie ihn für alle Azure App Service-Bereitstellungen verwenden.
az webapp deployment user set \ --user-name <your-deployment-username> \ --password <your-deployment-password>
Führen Sie den folgenden Befehl aus, um eine App Service-Web-App mit einer PHP 8.0-Runtime zu erstellen und die „Lokales Git“-Bereitstellungskonfiguration zu konfigurieren, um Ihre App aus einem Git-Repository auf Ihrem lokalen Computer bereitzustellen. Ersetzen Sie
<your-app-name>
durch einen global eindeutigen App-Namen (gültige Zeichen sind „a“ bis „z“, „0“ bis „9“ und „-“).az webapp create \ --resource-group rg-php-demo \ --plan plan-php-demo \ --name <your-app-name> \ --runtime "PHP|8.0" \ --deployment-local-git
Wichtig
In der Azure CLI-Ausgabe wird die URL des Git-Remoterepositorys in der Eigenschaft „deploymentLocalGitUrl“ im Format
https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
angezeigt. Speichern Sie diese URL, da Sie sie später noch benötigen.Als Nächstes konfigurieren Sie die Einstellungen für die Datenbankverbindung von Azure Database for MySQL – Flexibler Server in der Web-App.
Die
config.php
-Datei in der Beispiel-PHP-Anwendung ruft die Informationen zur Datenbankverbindung (den Servernamen, Datenbanknamen, Serverbenutzernamen und das Kennwort) aus den Umgebungsvariablen mithilfe dergetenv()
-Funktion ab. Führen Sie den folgenden Befehl aus, um die Umgebungsvariablen in App Service als Anwendungseinstellungen (appsettings) festzulegen.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"
Alternativ können Sie den Service Connector verwenden, um eine Verbindung zwischen der App Service-App und der flexiblen Serverinstanz Azure Database for MySQL herzustellen. Weitere Einzelheiten finden Sie unter Integration von Azure Database for MySQL flexible Server mit Service Connector.
Bereitstellen der Anwendung mit „Lokales Git“
Nun stellen wir die Beispiel-PHP-Anwendung mithilfe der „Lokales Git“-Bereitstellungsoption in Azure App Service bereit.
Da Sie den Mainbranch bereitstellen, müssen Sie den Standard-Bereitstellungsbranch für Ihre App Service-App auf „main“ festlegen. Führen Sie den folgenden Befehl aus, um den „DEPLOYMENT_BRANCH“ unter Anwendungseinstellungen festzulegen:
az webapp config appsettings set \ --name <your-app-name> \ --resource-group rg-php-demo \ --settings DEPLOYMENT_BRANCH='main'
Stellen Sie sicher, dass Sie sich im Stammverzeichnis des Anwendungsrepositorys befinden.
Führen Sie den folgenden Befehl aus, um ein Azure-Remoterepository zu Ihrem lokalen Git-Repository hinzuzufügen. Ersetzen Sie
<deploymentLocalGitUrl>
durch die URL des Git-Remoterepositorys, die Sie im Schritt Erstellen einer App Service-Web-App gespeichert haben.git remote add azure <deploymentLocalGitUrl>
Führen Sie den folgenden Befehl aus, um Ihre App bereitzustellen, indem Sie einen
git push
an das Azure-Remoterepository durchführen. Wenn Sie von der Git-Anmeldeinformationsverwaltung zur Eingabe von Anmeldeinformationen aufgefordert werden, geben Sie die Bereitstellungsanmeldeinformationen ein, die Sie im Schritt Konfigurieren eines Bereitstellungsbenutzers erstellt haben.git push azure main
Die Bereitstellung kann einige Minuten dauern.
Testen Ihrer Anwendung
Testen Sie die Anwendung schließlich, indem Sie zu https://<app-name>.azurewebsites.net
navigieren, und dann Artikel aus dem Produktkatalog hinzufügen, anzeigen, aktualisieren oder löschen.
Herzlichen Glückwunsch! Sie haben erfolgreich eine PHP-Beispielanwendung in Azure App Service bereitgestellt und sie in Azure Database for MySQL – Flexibler Server im Back-End integriert.
Aktualisieren und erneutes Bereitstellen der App
Nehmen Sie die erforderlichen Codeänderungen vor, um die Azure-App zu aktualisieren, committen Sie alle Änderungen in Git, und pushen Sie dann die Codeänderungen an Azure.
git add .
git commit -m "Update Azure app"
git push azure main
Navigieren Sie nach Abschluss des git push
-Vorgangs zur Azure-App oder aktualisieren Sie diese, um die neuen Funktionen zu testen.
Bereinigen von Ressourcen
In diesem Tutorial haben Sie alle Azure-Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, löschen Sie die Ressourcengruppe, indem Sie den folgenden Befehl in Cloud Shell ausführen:
az group delete --name rg-php-demo