Erstellen einer PHP-Web-App in Azure App Service
Von Azure App Service wird ein hochgradig skalierbarer Webhostingdienst mit Self-Patching bereitgestellt. In diesem Schnellstarttutorial wird erläutert, wie Sie eine PHP-App in Azure App Service unter Windows bereitstellen.
Sie erstellen die Web-App mithilfe der Azure-Befehlszeilenschnittstelle in Cloud Shell und stellen mit Git PHP-Beispielcode für die Web-App bereit.
Die folgenden Schritte können unter Mac, Windows oder Linux ausgeführt werden. Nachdem die erforderlichen Komponenten installiert wurden, können die Schritte in etwa fünf Minuten durchgeführt werden.
Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
Voraussetzungen
So führen Sie diesen Schnellstart durch:
Lokales Herunterladen des Beispiels
Führen Sie in einem Terminalfenster die folgenden Befehle aus. Dadurch wird die Beispielanwendung auf Ihren lokalen Computer geklont und zum Verzeichnis mit dem Beispielcode gewechselt.
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
Stellen Sie sicher, dass der Standardbranch
main
ist.git branch -m main
Tipp
Die Änderung des Branchnamens ist für App Service nicht erforderlich. Da aber viele Repositorys ihren Standardbranch in
main
ändern, zeigt Ihnen diese Schnellstartanleitung auch, wie Sie ein Repository ausmain
bereitstellen.
Lokales Ausführen der App
Führen Sie die Anwendung lokal aus, damit Sie sehen, wie sie beim Bereitstellen in Azure aussehen sollte. Öffnen Sie ein Terminalfenster, und verwenden Sie den Befehl
php
, um den integrierten PHP-Webserver zu starten.php -S localhost:8080
Öffnen Sie einen Webbrowser, und navigieren Sie zu der Beispielapp auf
http://localhost:8080
.Auf der Seite wird die Nachricht Hello World! aus der Beispiel-App angezeigt.
Drücken Sie in Ihrem Terminalfenster STRG+C, um den Webserver zu beenden.
Azure Cloud Shell
Azure hostet Azure Cloud Shell, eine interaktive Shell-Umgebung, die Sie über Ihren Browser nutzen können. Sie können entweder Bash oder PowerShell mit Cloud Shell verwenden, um mit Azure-Diensten zu arbeiten. Sie können die vorinstallierten Befehle von Cloud Shell verwenden, um den Code in diesem Artikel auszuführen, ohne etwas in Ihrer lokalen Umgebung installieren zu müssen.
Starten von Azure Cloud Shell:
Option | Beispiel/Link |
---|---|
Wählen Sie rechts oben in einem Code- oder Befehlsblock die Option Ausprobieren aus. Durch die Auswahl von Ausprobieren wird der Code oder Befehl nicht automatisch in Cloud Shell kopiert. | |
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. | |
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. |
So verwenden Sie Azure Cloud Shell:
Starten Sie Cloud Shell.
Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.
Fügen Sie den Code oder Befehl mit STRG+UMSCHALT+V unter Windows und Linux oder CMD+UMSCHALT+V unter macOS in die Cloud Shell-Sitzung ein.
Drücken Sie die EINGABETASTE, um den Code oder Befehl auszuführen.
Konfigurieren eines Bereitstellungsbenutzers
Für die Bereitstellung in einer Azure-Web-App über FTP oder ein lokales Git kann ein Bereitstellungsbenutzer verwendet werden. Nach der Konfiguration des Bereitstellungsbenutzers können Sie ihn für alle Azure-Bereitstellungen verwenden. Der Benutzername und das Kennwort für die Bereitstellung auf Kontoebene unterscheiden sich von den Anmeldeinformationen für Ihr Azure-Abonnement.
Führen Sie zum Konfigurieren des Bereitstellungsbenutzers den Befehl az webapp deployment user set in Azure Cloud Shell aus. Ersetzen Sie <Benutzername> und <Kennwort> durch einen Benutzernamen und ein Kennwort der Bereitstellungsbenutzerin oder des Bereitstellungsbenutzers.
- Der Benutzername muss in Azure eindeutig sein und darf bei lokalen Git-Pushes nicht das Symbol „@“ enthalten.
- Das Kennwort muss mindestens acht Zeichen lang sein und zwei der folgenden drei Elemente enthalten: Buchstaben, Zahlen und Symbole.
az webapp deployment user set --user-name <username> --password <password>
In der JSON-Ausgabe wird das Kennwort als null
angezeigt. Wenn Sie den Fehler 'Conflict'. Details: 409
erhalten, müssen Sie den Benutzernamen ändern. Wenn Sie den Fehler 'Bad Request'. Details: 400
erhalten, müssen Sie ein sichereres Kennwort verwenden.
Notieren Sie Ihren Benutzernamen und Ihr Kennwort für die Bereitstellung Ihrer Web-Apps.
Erstellen einer Ressourcengruppe
Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen wie Web-Apps, Datenbanken und Speicherkonten bereitgestellt und verwaltet werden. Sie können z.B. die gesamte Ressourcengruppe später in einem einfachen Schritt löschen.
Erstellen Sie in Cloud Shell mit dem Befehl az group create
eine Ressourcengruppe. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort Europa, Westen. Führen Sie im Tarif Free (Kostenlos) den Befehl az appservice list-locations --sku FREE
aus, um alle unterstützten Standorte für App Service anzuzeigen.
az group create --name myResourceGroup --location "West Europe"
Im Allgemeinen erstellen Sie Ressourcengruppen und Ressourcen in einer Region in Ihrer Nähe.
Nach Ausführung dieses Befehls werden die Ressourcengruppeneigenschaften in einer JSON-Ausgabe angezeigt.
Erstellen eines Azure App Service-Plans
Erstellen Sie in Cloud Shell mit dem Befehl az appservice plan create
einen App Service-Plan.
Im folgenden Beispiel wird ein App Service-Plan namens myAppServicePlan
mit dem Tarif myAppServicePlan
erstellt:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux
Nach Erstellung des App Service-Plans zeigt die Azure-Befehlszeilenschnittstelle Informationen wie im folgenden Beispiel an:
{ "freeOfferExpirationTime": null, "geoRegion": "West Europe", "hostingEnvironmentProfile": null, "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan", "kind": "linux", "location": "West Europe", "maximumNumberOfWorkers": 1, "name": "myAppServicePlan", < JSON data removed for brevity. > "targetWorkerSizeId": 0, "type": "Microsoft.Web/serverfarms", "workerTierName": null }
Erstellen einer Web-App
Erstellen Sie in Cloud Shell mit dem Befehl
az webapp create
eine Web-App im App Service-PlanmyAppServicePlan
.Ersetzen Sie im folgenden Beispiel
<app-name>
durch einen global eindeutigen App-Namen (gültige Zeichen sinda-z
,0-9
und-
). Die Runtime ist aufPHP|7.4
festgelegt. Führen Sieaz webapp list-runtimes
aus, um alle unterstützten Runtimes anzuzeigen.az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --deployment-local-git
Nach Erstellung der Web-App zeigt die Azure CLI eine Ausgabe wie im folgenden Beispiel an:
Local git is configured with url of 'https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git' { "availabilityState": "Normal", "clientAffinityEnabled": true, "clientCertEnabled": false, "cloningInfo": null, "containerSize": 0, "dailyMemoryTimeQuota": 0, "defaultHostName": "<app-name>.azurewebsites.net", "enabled": true, < JSON data removed for brevity. > }
Sie haben eine leere neue Web-App mit aktivierter Git-Bereitstellung erstellt.
Hinweis
Die URL des Git-Remotespeicherorts wird in der
deploymentLocalGitUrl
-Eigenschaft im Formathttps://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
angezeigt. Speichern Sie diese URL, da Sie sie später noch benötigen.Wechseln Sie zu Ihrer neu erstellten Web-App. Ersetzen Sie <app-name> durch Ihren eindeutigen App-Namen, den Sie im vorherigen Schritt erstellt haben.
http://<app-name>.azurewebsites.net
Ihre neue Web-App sollte nun wie folgt aussehen:
Übertragen von Git an Azure mithilfe von Push
Da Sie den Branch
main
bereitstellen, müssen Sie den Standardbereitstellungsbranch für Ihre App Service-App aufmain
festlegen (siehemain
). Legen Sie die App-EinstellungDEPLOYMENT_BRANCH
in Cloud Shell mit dem Befehlaz webapp config appsettings set
fest.az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
Kehren Sie zum lokalen Terminalfenster zurück, und fügen Sie Ihrem lokalen Git-Repository einen Azure-Remotespeicherort hinzu. Ersetzen Sie <deploymentLocalGitUrl-from-create-step> durch die URL der Git-Fernbedienung, die Sie unter Erstellen einer Web-App gespeichert haben.
git remote add azure <deploymentLocalGitUrl-from-create-step>
Führen Sie einen Pushvorgang zum Azure-Remotespeicherort durch, um Ihre App mit dem folgenden Befehl bereitzustellen. Wenn Sie von der Git-Anmeldeinformationsverwaltung zur Eingabe von Anmeldeinformationen aufgefordert werden, müssen Sie die Anmeldeinformationen eingeben, die Sie in Konfigurieren einer lokalen Gut-Bereitstellung erstellt haben, nicht die Anmeldeinformationen, die Sie für die Anmeldung beim Azure-Portal verwenden.
git push azure main
Die Ausführung dieses Befehls kann einige Minuten dauern. Während der Ausführung werden Informationen angezeigt, die den Informationen im folgenden Beispiel ähneln:
Counting objects: 2, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 352 bytes | 0 bytes/s, done. Total 2 (delta 1), reused 0 (delta 0) remote: Updating branch 'main'. remote: Updating submodules. remote: Preparing deployment for commit id '25f18051e9'. remote: Generating deployment script. remote: Running deployment command... remote: Handling Basic Web Site deployment. remote: Kudu sync from: '/home/site/repository' to: '/home/site/wwwroot' remote: Copying file: '.gitignore' remote: Copying file: 'LICENSE' remote: Copying file: 'README.md' remote: Copying file: 'index.php' remote: Ignoring: .git remote: Finished successfully. remote: Running post deployment command(s)... remote: Deployment successful. To https://<app-name>.scm.azurewebsites.net/<app-name>.git cc39b1e..25f1805 main -> main
Navigieren zur App
Navigieren Sie in Ihrem Webbrowser zu der bereitgestellten Anwendung.
http://<app-name>.azurewebsites.net
Der PHP-Beispielcode wird in einer Azure App Service-Web-App ausgeführt.
Herzlichen Glückwunsch! Sie haben Ihre erste PHP-App für App Service bereitgestellt.
Lokales Aktualisieren und erneutes Bereitstellen des Codes
Öffnen Sie die Datei
index.php
innerhalb der PHP-App mit einem lokalen Text-Editor, und ändern Sie den Text in der Zeichenfolge nebenecho
geringfügig:echo "Hello Azure!";
Committen Sie Ihre Änderungen im lokalen Terminalfenster in Git, und übertragen Sie die Codeänderungen mithilfe von Push an Azure.
git commit -am "updated output" git push azure main
Wechseln Sie nach Abschluss der Bereitstellung wieder zu dem Browserfenster, das im Schritt Navigieren zur App geöffnet wurde, und aktualisieren Sie die Seite.
Verwalten Ihrer neuen Azure-App
Wechseln Sie zum Azure-Portal, um die erstellte Web-App zu verwalten. Suchen Sie nach App Services, und wählen Sie diese Option aus.
Wählen Sie den Namen Ihrer Azure-App aus.
Die Seite Übersicht für Ihre Web-App wird angezeigt. Hier können Sie einfache Verwaltungsaufgaben wie Durchsuchen, Beenden, Neustarten und Löschen durchführen.
Im Web-App-Menü werden verschiedene Konfigurationsoptionen für Ihre App angezeigt.
Bereinigen von Ressourcen
In den vorherigen Schritten haben Sie 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 myResourceGroup
Die Ausführung dieses Befehls kann eine Minute in Anspruch nehmen.
Von Azure App Service wird ein hochgradig skalierbarer Webhostingdienst mit Self-Patching bereitgestellt. In diesem Schnellstart wird erläutert, wie Du eine PHP-App in Azure App Service unter Linux bereitstellst.
Die folgenden Schritte können unter Mac, Windows oder Linux ausgeführt werden. Nachdem die erforderlichen Komponenten installiert wurden, können die Schritte in etwa fünf Minuten durchgeführt werden.
Für die Durchführung dieses Schnellstarts benötigen Sie Folgendes:
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Git
- PHP
- Azure CLI verwendet sie für die Ausführung von Befehlen in einer beliebigen Shell, um Azure-Ressourcen zu erstellen und zu konfigurieren.
1. Abrufen des Beispielrepositorys
Sie können die Web-App mithilfe der Azure-Befehlszeilenschnittstelle in Cloud Shell erstellen und Git verwenden, um den PHP-Beispielcode für die Web-App bereitzustellen.
Führen Sie in einem Terminalfenster die folgenden Befehle aus, um die Beispielanwendung auf Ihren lokalen Computer zu klonen, und navigieren Sie zum Projektstamm.
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
Um die Anwendung lokal auszuführen, verwendest Du den
php
Befehl, um den integrierten PHP-Webserver zu starten.php -S localhost:8080
Navigieren Sie in einem Webbrowser unter
http://localhost:8080
zur Beispielanwendung.Drücken Sie in Ihrem Terminalfenster STRG+C, um den Webserver zu beenden.
2 - Bereitstellen des Anwendungscodes in Azure
Über die Azure CLI ist der Befehl az webapp up
verfügbar, der die erforderlichen Ressourcen erstellt und Ihre Anwendung in einem einzigen Schritt bereitstellt.
Stelle den Code mit dem az webapp up
Befehl im Terminal in deinem lokalen Ordner bereit:
az webapp up --runtime "PHP:8.2" --os-type=linux
- Wenn der
az
Befehl nicht erkannt wird, musst Du sicherstellen, dass Du Azure CLI installiert hast. - Das Argument
--runtime "PHP:8.2"
erstellt die Web-App mit PHP Version 8.2. - Das
--os-type=linux
Argument erstellt die Web-App auf App Service für Linux. - Sie können optional einen Namen mit dem Argument
--name <app-name>
angeben. Wenn Sie keinen Namen angeben, wird automatisch einer generiert. - Optional können Sie das Argument
--location <location-name>
einfügen, wobei<location_name>
eine verfügbare Azure-Region ist. Sie können eine Liste der zulässigen Regionen für Ihr Azure-Konto abrufen, indem Sie den Befehlaz account list-locations
ausführen. - Wenn Du die Fehlermeldung "Der Laufzeitstapel Deiner App konnte nicht automatisch erkannt werden" siehst, stelle sicher, dass Du den Befehl im Code-Verzeichnis ausführst (siehe Behandeln von Problemen mit der automatischen Erkennung mit az webapp up).
Die Ausführung des Befehls kann einige Minuten dauern. Bei der Ausführung werden Meldungen zum Erstellen der Ressourcengruppe, dem App Service-Plan und der App-Ressource, zur Konfiguration der Protokollierung und zur ZIP-Bereitstellung angezeigt. Anschließend wird die Meldung „You can launch the app at http://<app-name>.azurewebsites.net“ (Sie können die App unter http://
The webapp '<app-name>' doesn't exist Creating Resource group '<group-name>' ... Resource group creation complete Creating AppServicePlan '<app-service-plan-name>' ... Creating webapp '<app-name>' ... Configuring default logging for the app, if not already enabled Creating zip with contents of dir /home/msangapu/myPhpApp ... Getting scm site credentials for zip deployment Starting zip deployment. This operation can take a while to complete ... Deployment endpoint responded with status code 202 You can launch the app at http://<app-name>.azurewebsites.net { "URL": "http://<app-name>.azurewebsites.net", "appserviceplan": "<app-service-plan-name>", "location": "centralus", "name": "<app-name>", "os": "linux", "resourcegroup": "<group-name>", "runtime_version": "php|8.2", "runtime_version_detected": "0.0", "sku": "FREE", "src_path": "//home//msangapu//myPhpApp" }
Hinweis
Der Befehl az webapp up
bewirkt Folgendes:
Erstellen einer Standardressourcengruppe
Erstellen eines App Service-Plans
Erstellen einer App mit dem angegebenen Namen
Bereitstellen eines ZIP-Pakets aller Dateien aus dem aktuellen Arbeitsverzeichnis mit aktivierter Buildautomatisierung
Lokales Zwischenspeichern der Parameter in der Datei .azure/config, sodass Sie sie später bei der Bereitstellung mit
az webapp up
oder anderenaz webapp
-Befehlen aus dem Projektordner nicht erneut angeben müssen. Die zwischengespeicherten Werte werden standardmäßig automatisch verwendet.
Navigieren Sie in Ihrem Webbrowser zur an der URL http://<app-name>.azurewebsites.net
bereitgestellten Anwendung.
Der PHP-Beispielcode wird in Azure App Service ausgeführt.
Herzlichen Glückwunsch! Sie haben Ihre erste PHP-App für App Service über das Azure-Portal bereitgestellt.
3. Aktualisieren und erneutes Bereitstellen der App
Öffnen Sie die Datei
index.php
innerhalb der PHP-App mit einem lokalen Text-Editor, und ändern Sie den Text in der Zeichenfolge nebenecho
geringfügig:echo "Hello Azure!";
Speichere Deine Änderungen und stelle die App dann mit dem Befehl az webapp up mit diesen Argumenten erneut bereit:
az webapp up --runtime "PHP:8.2" --os-type=linux
Wechseln Sie nach Abschluss der Bereitstellung wieder zu dem Browserfenster, das im Schritt Navigieren zur App geöffnet wurde, und aktualisieren Sie die Seite.
4. Verwalten Ihrer neuen Azure-App
Wechseln Sie zum Azure-Portal, um die erstellte Web-App zu verwalten. Suchen Sie nach App Services, und wählen Sie diese Option aus.
Wählen Sie den Namen Ihrer Azure-App aus.
Die Seite Übersicht für Ihre Web-App sollte angezeigt werden. Hier können Sie einfache Verwaltungsaufgaben wie Durchsuchen, Beenden, Neustarten und Löschen durchführen.
Im Web-App-Menü werden verschiedene Konfigurationsoptionen für Ihre App angezeigt.
5. Bereinigen von Ressourcen
Wenn Sie mit der Beispiel-App fertig sind, können Sie alle Ressourcen für die App aus Azure entfernen. Diese hilft Ihnen dabei, zusätzliche Gebühren zu vermeiden und hält Ihr Azure-Abonnement übersichtlich. Wenn Sie die Ressourcengruppe entfernen, werden auch alle Ressourcen in der Ressourcengruppe entfernt. Dies stellt die schnellste Möglichkeit dar, alle Azure-Ressourcen für Ihre App zu entfernen.
Löschen Sie die Ressourcengruppe mit dem Befehl az group delete.
az group delete --name myResourceGroup
Die Ausführung dieses Befehls kann eine Minute dauern.