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.

In Azure ausgeführte Beispiel-App

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.

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

So führen Sie diesen Schnellstart durch:

Lokales Herunterladen des Beispiels

  1. 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
    
  2. 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 aus main bereitstellen.

Lokales Ausführen der App

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

    Lokal ausgeführte Beispiel-App

  3. 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. Screenshot: Beispiel von „Jetzt testen“ für Azure Cloud Shell.
Rufen Sie https://shell.azure.com auf, oder klicken Sie auf die Schaltfläche Cloud Shell starten, um Cloud Shell im Browser zu öffnen. Screenshot: Cloud Shell in einem neuen Fenster starten.
Wählen Sie im Azure-Portal rechts oben im Menü die Schaltfläche Cloud Shell aus. Screenshot: Schaltfläche „Cloud Shell“ im Azure-Portal

So verwenden Sie Azure Cloud Shell:

  1. Starten Sie Cloud Shell.

  2. Wählen Sie die Schaltfläche Kopieren für einen Codeblock (oder Befehlsblock) aus, um den Code oder Befehl zu kopieren.

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

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

  1. Erstellen Sie in Cloud Shell mit dem Befehl az webapp create eine Web-App im App Service-Plan myAppServicePlan.

    Ersetzen Sie im folgenden Beispiel <app-name> durch einen global eindeutigen App-Namen (gültige Zeichen sind a-z, 0-9 und -). Die Runtime ist auf PHP|7.4 festgelegt. Führen Sie az webapp list-runtimes aus, um alle unterstützten Runtimes anzuzeigen.

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|7.4' --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 Format https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git angezeigt. Speichern Sie diese URL, da Sie sie später noch benötigen.

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

    Leere Web-App-Seite

Übertragen von Git an Azure mithilfe von Push

  1. Da Sie den Branch main bereitstellen, müssen Sie den Standardbereitstellungsbranch für Ihre App Service-App auf main festlegen (siehe main). Legen Sie die App-Einstellung DEPLOYMENT_BRANCH in Cloud Shell mit dem Befehl az webapp config appsettings set fest.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. 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 > gespeichert haben.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. 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 eines Bereitstellungsbenutzers erstellt haben (nicht die Anmeldeinformationen, die Sie zur Anmeldung beim Azure-Portal verwenden).

    git push azure main
    

    Die Ausführung dieses Befehls kann einige Minuten in Anspruch nehmen. 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.

In Azure ausgeführte Beispiel-App

Herzlichen Glückwunsch! Sie haben Ihre erste PHP-App für App Service bereitgestellt.

Lokales Aktualisieren und erneutes Bereitstellen des Codes

  1. Öffnen Sie die Datei index.php innerhalb der PHP-App mit einem lokalen Text-Editor, und ändern Sie den Text in der Zeichenfolge neben echo geringfügig:

    echo "Hello Azure!";
    
  2. 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
    
  3. Wechseln Sie nach Abschluss der Bereitstellung wieder zu dem Browserfenster, das im Schritt Navigieren zur App geöffnet wurde, und aktualisieren Sie die Seite.

    In Azure ausgeführte aktualisierte Beispiel-App

Verwalten Ihrer neuen Azure-App

  1. Wechseln Sie zum Azure-Portal, um die erstellte Web-App zu verwalten. Suchen Sie nach App Services, und wählen Sie diese Option aus.

    Suchen nach App Services, Azure-Portal, Erstellen einer PHP-Web-App

  2. Wählen Sie den Namen Ihrer Azure-App aus.

    Portalnavigation zur Azure-App

    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.

    App Service-Seite im Azure-Portal

    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.

Screenshot der in Azure ausgeführten Beispiel-App.

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 bereitzustellen 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.

  1. 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
    
  2. Um die Anwendung lokal auszuführen, verwendest Du den php Befehl, um den integrierten PHP-Webserver zu starten.

    php -S localhost:8080
    
  3. Navigieren Sie in einem Webbrowser unter http://localhost:8080 zur Beispielanwendung.

    Screenshot der lokal ausgeführten Beispiel-App.

  4. 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 upBefehl im Terminal in deinem lokalen Ordner bereit:

az webapp up --runtime "PHP:8.0" --os-type=linux
  • Wenn der azBefehl nicht erkannt wird, musst Du sicherstellen, dass Du Azure CLI installiert hast.
  • Das --runtime "PHP:8.0" Argument erstellt die Web-App mit PHP Version 8.0.
  • 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 ein Name 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 Befehl az 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 dieses Befehls kann einige Minuten in Anspruch nehmen. 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://.azurewebsites.net starten.) angezeigt. Dabei handelt es sich um die URL der App in Azure.

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.0",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "//home//msangapu//myPhpApp"
}

Hinweis

Der Befehl az webapp up bewirkt Folgendes:

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.

Screenshot der in Azure ausgeführten Beispiel-App mit Anzeige von „Hello World!“.

Glückwunsch! Sie haben über das Azure-Portal Ihre erste PHP-App für App Service bereitgestellt.

3. Aktualisieren und erneutes Bereitstellen der App

  1. Öffnen Sie die Datei index.php innerhalb der PHP-App mit einem lokalen Text-Editor, und ändern Sie den Text in der Zeichenfolge neben echo geringfügig:

    echo "Hello Azure!";
    
  2. 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.0" --os-type=linux
    
  3. Wechseln Sie nach Abschluss der Bereitstellung wieder zu dem Browserfenster, das im Schritt Navigieren zur App geöffnet wurde, und aktualisieren Sie die Seite.

    Screenshot der in Azure ausgeführten aktualisierten Beispiel-App.

4. Verwalten Ihrer neuen Azure-App

  1. Wechseln Sie zum Azure-Portal, um die erstellte Web-App zu verwalten. Suchen Sie nach App Services, und wählen Sie diese Option aus.

    Screenshot des Azure-Portals mit der Eingabe „App Services“ im Suchtextfeld. In den Ergebnissen ist die Option „App Services“ unter „Dienste“ hervorgehoben.

  2. Wählen Sie den Namen Ihrer Azure-App aus.

    Screenshot: App Services-Liste in Azure, der Name der App Service-Demoinstanz ist hervorgehoben.

    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.

    Screenshot der Übersichtsseite der App Service-Instanz im Azure-Portal. Auf der Aktionsleiste ist die Schaltflächengruppe „Durchsuchen“, „Anhalten“, „Tauschen (deaktiviert)“, „Neustarten“ und „Löschen“ hervorgehoben.

    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. Es entstehen keine zusätzlichen Gebühren, und Ihr Azure-Abonnement bleibt ü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 in Anspruch nehmen.

Nächste Schritte