Übung: Bereitstellen einer PHP- und MySQL-App (flexibler Server) in Azure App Service
In dieser Einheit erstellen Sie eine Beispiel-PHP-Anwendung und stellen sie in Azure App Service bereit. Sie integrieren sie auf dem Back-End mit Azure Database for MySQL (flexibler Server).
Schritt 1: Erstellen einer Azure Database for MySQL-Instanz (flexibler Server)
Zunächst stellen Sie einen flexiblen MySQL-Server mit öffentlicher Zugriffskonnektivität bereit, konfigurieren Firewallregeln, damit die App auf den Server zugreifen kann, und erstellen eine Produktionsdatenbank.
Sie verwenden das Azure-Portal für die Erstellung eines flexiblen MySQL-Servers.
Melden Sie sich beim Azure-Portal mit dem Konto an, das Sie zum Aktivieren der Sandbox verwendet haben.
Geben Sie im Suchfeld oben auf der Seite MySQL ein, und wählen Sie Flexible Server für Azure Database for MySQL aus.
Wählen Sie auf der Seite Azure Database for MySQL flexible Server die Option + Erstellen und dann Flexibler Server aus.
Geben Sie auf der Seite Flexibler Server auf der Registerkarte Grundlagen die Informationen aus der folgenden Tabelle ein.
Einstellung Empfohlener Wert Subscription Concierge-Abonnement Ressourcengruppe Wählen Sie in der Dropdownliste die Ressourcengruppe aus, die mit learn- beginnt. Servername Geben Sie einen global eindeutigen Namen ein, mit dem Ihr flexibler Server identifiziert werden kann. MySQL-Version 8.0 Workloadtyp Wähle Sie For development or hobby projects (Für Entwicklungs- und Hobbyprojekte) aus. Administratorbenutzername Geben Sie mysqladmin ein. Verwenden Sie nicht azure_superuser, admin, administrator, root, guest oder public. Kennwort Geben Sie Passw0rd123 ein. Das Kennwort muss zwischen 8 und 128 Zeichen enthalten und Zeichen aus drei Kategorien enthalten: Englische Großbuchstaben, englische Kleinbuchstaben, Zahlen (0 bis 9) und nicht alphanumerische Zeichen (etwa !, $, #, %). Behalten Sie bei allen anderen Einstellungen die Standardwerte bei.
Wählen Sie auf der Registerkarte Basics unter Compute + Storage die Option Server konfigurieren.
Konfigurieren Sie auf der Seite Compute + Speicher die folgenden Einstellungen:
- Compute
- Wählen Sie die Computeebene Burstfähig aus.
- Wählen Sie in der Dropdownliste Computegröße die Option Standard_B1s (1 virtueller Kern, 1 GiB Arbeitsspeicher, max. 400 IOPS) aus.
- Storage
- Stellen Sie sicher, dass die Speichergröße (in GB) auf 20festgelegt ist.
- Wählen Sie Vorab bereitgestellte IOPS aus, und lassen Sie den Wert auf 360 festgelegt.
- Vergewissern Sie sich, dass das Kontrollkästchen Automatische Vergrößerung des Speichers aktiviert ist.
- Hochverfügbarkeit
- Stellen Sie sicher, dass das Kontrollkästchen Hochverfügbarkeit aktivieren nicht aktiviert ist.
- Sicherungen
- Vergewissern Sie sich, dass die Aufbewahrungsdauer für Sicherungen (in Tagen) auf 7 festgelegt ist.
- Stellen Sie sicher, dass das Kontrollkästchen Wiederherstellung nach regionalem Ausfall oder Katastrophe nicht aktiviert ist.
- Compute
Wählen Sie Speichern aus, und navigieren Sie dann zur Registerkarte Netzwerk.
Wählen Sie auf der Registerkarte Netzwerk die Konnektivitätsmethode öffentlicher Zugriff (zulässige IP-Adressen) aus, aktivieren Sie öffentlichen Zugriff auf diese Ressource über das Internet mit einer öffentlichen IP-Adresse erlauben, und aktivieren Sie öffentlichen Zugriff von einem beliebigen Azure-Dienst in Azure auf diesen Server erlauben, wie im folgenden Screenshot gezeigt.
Wählen Sie Überprüfen + erstellen aus, um Ihre MySQL Flexible Server-Konfiguration zu überprüfen.
Wählen Sie Erstellen aus, um den Server bereitzustellen. Die Bereitstellung kann bis zu 10 Minuten dauern.
Wählen Sie nach der Bereitstellung die Option Zu Ressource wechseln aus, um die Übersichtsseite von Azure Database for MySQL (flexibler Server) anzuzeigen.
Für den Rest dieser Übung führen Sie die Befehle mithilfe von Azure Cloud Shell (rechts neben diesem Fenster) aus.
Wenn Sie eine neue MySQL-Produktionsdatenbank namens sampedb erstellen möchten, um sie in der PHP-Anwendung zu verwenden, führen Sie den folgenden Befehl aus:
az mysql flexible-server db create \
--resource-group <rgn>[Sandbox resource group name]</rgn> \
--server-name <your-mysql-server-name> \
--database-name sampledb
SCHRITT 2: Klonen der App
In dieser Übung verwenden Sie 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.
Sie klonen die programmierte App direkt und lernen, wie Sie sie in Azure App Service bereitstellen.
Hinweis
Wenn Sie mehr über den Anwendungscode erfahren möchten, können Sie die App im GitHub-Repository erkunden!
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
Schritt 3: 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 Sie einen Azure App Service-Plan und darin eine App Service-Web-App, in der die Beispiel-App 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-learn \ --resource-group <rgn>[Sandbox resource group name]</rgn> \ --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.
Hinweis: 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 <rgn>[Sandbox resource group name]</rgn> \ --plan plan-learn \ --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 Formathttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
angezeigt. Speichern Sie diese URL, da Sie sie später noch benötigen.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 <rgn>[Sandbox resource group name]</rgn> \ --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"
Dieser Befehl konfiguriert die Einstellungen für die Datenbankverbindung des flexiblen MySQL-Servers in der Web-App.
SCHRITT 4: Bereitstellen der Anwendung mit „Lokales Git“
Nun stellen Sie die Beispiel-PHP-Anwendung mithilfe der Bereitstellungsoption „Lokales Git“ 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 <rgn>[Sandbox resource group name]</rgn> \ --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.
Hinweis: 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.
SCHRITT 5: Testen der App
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 eine Beispiel-PHP-Anwendung erfolgreich in Azure App Service bereitgestellt und sie auf dem Back-End mit Azure Database for MySQL (flexibler Server) integriert.