Share via


Tutorial: Eine PHP- und Azure Database for MySQL bereitstellen – Flexible Server-App auf Azure App Service

GILT FÜR: Azure Database for MySQL – Flexibler Server

Azure App Service bietet einen hochgradig skalierbaren Webhostingdienst mit Self-Patching unter dem Linux-Betriebssystem.

Dieses Tutorial zeigt Ihnen, wie Sie eine PHP-Beispielanwendung erstellen und in Azure App Service bereitstellen und sie mit Azure Database for MySQL flexible Server auf dem Backend integrieren. Hier verwenden Sie die Konnektivität für den öffentlichen Zugang (erlaubte IP-Adressen) in der flexiblen Serverinstanz von Azure Database for MySQL, 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 – Flexible Server derzeit 12 Monate lang kostenlos testen. Weitere Informationen finden Sie unter Testen Sie Azure Database for MySQL – Flexible Server kostenlos.

Voraussetzungen

Erstellen einer Instanz von Azure Database for MySQL – Flexible Server

Zunächst stellen wir eine flexible Serverinstanz von Azure Database for MySQL mit öffentlicher Zugriffsmöglichkeit bereit, konfigurieren Firewall-Regeln, damit die Anwendung auf den Server zugreifen kann, und erstellen eine Produktionsdatenbank.

Wie Sie stattdessen private Zugriffsverbindungen nutzen und App- und Datenbankressourcen in einem virtuellen Netzwerk isolieren können, erfahren Sie im Tutorial: Verbinden einer App Services Webanwendung mit einer flexiblen Azure Database for MySQL Serverinstanz 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.

  1. Öffnen Sie die Eingabeaufforderung.
  2. Melden Sie sich bei Ihrem Azure-Konto an.
    az login
    
  3. Wählen Sie Ihr Azure-Abonnement aus.
    az account set -s <your-subscription-ID>
    
  4. Erstellen Sie die Ressourcengruppe.
    az group create --name rg-php-demo --location centralus
    

Erstellen einer Azure Database for MySQL Flexible Server-Instanz

  1. Um eine flexible Serverinstanz von Azure Database for MySQL mit Konnektivität für den öffentlichen Zugang zu erstellen, führen Sie den folgenden 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 flexible Serverinstanz von Azure Database for MySQL 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.

  2. Um eine Firewall-Regel für Ihre Azure Database for MySQL flexible Serverinstanz zu erstellen, die Client-Verbindungen zulässt, führen Sie den folgenden Befehl aus. Wenn sowohl die Start- als auch die End-IP auf 0.0.0.0 eingestellt sind, können nur andere Azure-Ressourcen (wie App Services-Apps, VMs, AKS-Cluster, usw.) eine Verbindung zur flexiblen Serverinstanz Azure Database for MySQL 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
    
  3. Um eine neue Azure Database for MySQL flexible Server-Produktionsdatenbank 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 dem flexiblen Server Azure Database for MySQL verbinden können, erfahren Sie im Quickstart: Verbinden mit PHP.

In diesem Tutorial wird die programmierte Beispiel-App direkt geklont und gezeigt, wie Sie diese in Azure App Service bereitstellen können.

  1. 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
    
  2. 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.

  1. 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
    
  2. 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>
    
  3. 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.

  4. Als Nächstes konfigurieren wir die Einstellungen für die Datenbankverbindung von Azure Database for MySQL flexible 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 der getenv()-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.

  1. 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'
    
  2. Stellen Sie sicher, dass Sie sich im Stammverzeichnis des Anwendungsrepositorys befinden.

  3. 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>
    
  4. 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.

Screenshot showing the sample Product Catalog PHP Web App.

Herzlichen Glückwunsch! Sie haben erfolgreich eine PHP-Beispielanwendung auf Azure App Service bereitgestellt und sie mit Azure Database for MySQL flexible Server auf dem Backend 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

Nächste Schritte