Delen via


Een PHP-web-app maken in Azure App Service

Waarschuwing

PHP in Windows heeft het einde van de ondersteuning bereikt in november 2022. PHP wordt alleen ondersteund voor App Service in Linux. Dit artikel is alleen ter referentie.

Azure App Service biedt een uiterst schaalbare webhostingservice met self-patchfunctie. In deze snelstartzelfstudie ziet u hoe u een PHP-app implementeert in Azure App Service op Windows.

U maakt de web-app met behulp van de Azure CLI in Cloud Shell en u gebruikt Git om voorbeeld-PHP-code te implementeren in de web-app.

Voorbeeld-app die wordt uitgevoerd in Azure

U kunt de stappen hier volgen met behulp van een Mac-, Windows- of Linux-machine. Zodra de vereisten zijn geïnstalleerd, duurt het ongeveer vijf minuten om de stappen te voltooien.

Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.

Vereiste voorwaarden

Ga als volgt te werk om deze quickstart te voltooien:

Download het voorbeeld lokaal

  1. Voer in een terminalvenster de volgende opdrachten uit. Het zal de voorbeeldtoepassing klonen naar uw lokale computer en naar de map met de voorbeeldcode navigeren.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Zorg ervoor dat de standaardtak main is.

    git branch -m main
    

    Aanbeveling

    De naamswijziging van het filiaal is niet vereist door App Service. Aangezien veel opslagplaatsen echter hun standaardvertakking wijzigen in main, laat deze quickstart u ook zien hoe u een opslagplaats implementeert van main.

De app lokaal uitvoeren

  1. Voer de toepassing lokaal uit, zodat u kunt zien hoe deze eruit moet zien wanneer u deze implementeert in Azure. Open een terminalvenster en gebruik de php opdracht om de ingebouwde PHP-webserver te starten.

    php -S localhost:8080
    
  2. Open een webbrowser en navigeer naar de voorbeeld-app op http://localhost:8080.

    Het Hello World!- bericht van de voorbeeld-app wordt weergegeven op de pagina.

    Voorbeeld van een app die lokaal wordt uitgevoerd

  3. Druk in het terminalvenster op Ctrl+C om de webserver af te sluiten.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell met Cloud Shell gebruiken om te werken met Azure-services. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Schermopname met een voorbeeld van Try It for Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. knop om Azure Cloud Shell te starten.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Schermopname van de knop Cloud Shell in Azure Portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door op Windows en Linux de toetsencombinatie Ctrl+Shift+V in te drukken, of op macOS de toetsencombinatie Cmd+Shift+V te gebruiken.

  4. Selecteer Enter om de code of opdracht uit te voeren.

Een implementatiegebruiker configureren

FTP en lokale Git kunnen worden geïmplementeerd in een Azure-web-app met behulp van een implementatiegebruiker. Nadat u uw implementatiegebruiker hebt geconfigureerd, kunt u deze gebruiken voor al uw Azure-implementaties. De gebruikersnaam en het wachtwoord van uw implementatie op accountniveau verschillen van de referenties van uw Azure-abonnement.

Als u de implementatiegebruiker wilt configureren, voert u de opdracht az webapp deployment user set uit in Azure Cloud Shell. Vervang <de gebruikersnaam> en <het wachtwoord> door de gebruikersnaam en het wachtwoord van een implementatiegebruiker.

  • De gebruikersnaam moet uniek zijn binnen Azure en mag voor lokale Git-pushes niet het '@'-symbool bevatten.
  • Het wachtwoord moet ten minste acht tekens lang zijn en minimaal twee van de volgende drie typen elementen bevatten: letters, cijfers en symbolen.
az webapp deployment user set --user-name <username> --password <password>

De JSON-uitvoer toont het wachtwoord als null. Als je een 'Conflict'. Details: 409 foutmelding krijgt, wijzig je de gebruikersnaam. Als u een 'Bad Request'. Details: 400 fout krijgt, gebruik dan een sterker wachtwoord.

Noteer uw gebruikersnaam en wachtwoord die u wilt gebruiken om uw web-apps te implementeren.

Een brongroep maken

Een resourcegroep is een logische container waarin Azure-resources, zoals web-apps, databases en opslagaccounts, worden geïmplementeerd en beheerd. U kunt bijvoorbeeld later de hele resourcegroep in één stap verwijderen.

Maak in de Cloud Shell een resourcegroep met de az group create opdracht. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie West-Europa . Voer de opdracht uit om alle ondersteunde locaties voor App Service in Freeaz appservice list-locations --sku FREE te zien.

az group create --name myResourceGroup --location "West Europe"

Over het algemeen maakt u uw resourcegroep en de resources in een regio dicht bij u.

Wanneer de opdracht is voltooid, ziet u in een JSON-uitvoer de eigenschappen van de resourcegroep.

Een Azure App Service-plan maken

Maak in de Cloud Shell een App Service-plan met de az appservice plan create opdracht.

In het volgende voorbeeld wordt een App Service-abonnement gemaakt met de naam myAppServicePlan in de gratis prijscategorie:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux

Wanneer het App Service-plan is gemaakt, wordt in de Azure CLI informatie weergegeven die lijkt op het volgende voorbeeld:

{ 
  "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
} 

Een web-app maken

  1. Maak in de Cloud Shell een web-app in het myAppServicePlan App Service-plan met de az webapp create opdracht.

    Vervang <app-name> in het volgende voorbeeld door een wereldwijd unieke app-naam (geldige tekens zijn a-z, 0-9, en -). De looptijd is ingesteld op PHP|7.4. Als u alle ondersteunde runtimes wilt zien, voert u az webapp list-runtimes.

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --deployment-local-git
    

    Wanneer de web-app is gemaakt, wordt in de Azure CLI uitvoer weergegeven die vergelijkbaar is met het volgende voorbeeld:

     Local git is configured with url of <URL>
     {
       "availabilityState": "Normal",
       "clientAffinityEnabled": true,
       "clientCertEnabled": false,
       "cloningInfo": null,
       "containerSize": 0,
       "dailyMemoryTimeQuota": 0,
       "defaultHostName": "<app-name>.azurewebsites.net",
       "enabled": true,
       < JSON data removed for brevity. >
     }
     

    Je hebt een lege nieuwe web-app gemaakt, waarop git-implementatie is ingeschakeld.

    Opmerking

    De URL van de Git-remote wordt weergegeven in de deploymentLocalGitUrl eigenschap. Sla deze URL op als je hem later nodig hebt.

  2. Blader naar uw nieuw gemaakte web-app.

    Uw nieuwe web-app moet er als volgt uitzien:

    Web-app-pagina leegmaken

Push naar Azure vanuit Git

  1. Aangezien u de main vertakking implementeert, moet u de standaardimplementatievertakking voor uw App Service-app instellen op main (zie Implementatievertakking wijzigen). Stel in de Cloud Shell de DEPLOYMENT_BRANCH app-instelling in met de az webapp config appsettings set opdracht.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Voeg in het venster van de lokale terminal een Azure-afstandsbediening toe aan uw lokale Git-opslagplaats. Vervang <deploymentLocalGitUrl-from-create-step> door de URL van de Git-afstandsbediening die u hebt opgeslagen vanuit Een web-app maken.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Voer een push uit naar de Azure-remote om uw app te implementeren met het volgende commando. Wanneer Git Credential Manager u om referenties vraagt, moet u ervoor zorgen dat u de referenties invoert die u hebt gemaakt in Lokale git-implementatie configureren, niet de referenties die u gebruikt om u aan te melden bij de Azure Portal.

    git push azure main
    

    Het kan enkele minuten duren voordat deze opdracht is uitgevoerd. Tijdens het uitvoeren wordt informatie weergegeven die lijkt op het volgende voorbeeld:

  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 <URL>
      cc39b1e..25f1805  main -> main
  

Navigeer naar de app

Blader naar de geïmplementeerde toepassing met uw webbrowser.

De PHP-voorbeeldcode wordt uitgevoerd in een Azure App Service-web-app.

Voorbeeld-app die wordt uitgevoerd in Azure

Gefeliciteerd! U hebt uw eerste PHP-app geïmplementeerd in App Service.

Werk lokaal bij en implementeer de code opnieuw

  1. Open met een lokale teksteditor het index.php bestand in de PHP-app en breng een kleine wijziging aan in de tekst in de tekenreeks naast echo:

    echo "Hello Azure!";
    
  2. Commit in het lokale terminalvenster uw wijzigingen in Git en push de codewijzigingen vervolgens naar Azure.

    git commit -am "updated output"
    git push azure main
    
  3. Zodra de implementatie is voltooid, keert u terug naar het browservenster dat is geopend tijdens de stap Bladeren naar de app en vernieuwt u de pagina.

    Bijgewerkte voorbeeld-app die wordt uitgevoerd in Azure

Uw nieuwe Azure-app beheren

  1. Ga naar de Azure Portal om de web-app te beheren die u hebt gemaakt. Zoek en selecteer App Services.

    Zoeken naar App Services, Azure Portal, PHP-web-app maken

  2. Selecteer de naam van uw Azure-app.

    Portalnavigatie naar Azure-app

    De overzichtspagina van uw web-app wordt weergegeven. Hier kunt u basisbeheertaken uitvoeren, zoals Bladeren, Stoppen, Opnieuw opstarten en Verwijderen.

    App Service-pagina in Azure Portal

    Het menu van de web-app biedt verschillende opties voor het configureren van uw app.

De hulpbronnen opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources niet meer nodig denkt te hebben, verwijdert u de resourcegroep door de volgende opdracht in Cloud Shell uit te voeren:

az group delete --name myResourceGroup

Het kan een minuut duren voordat deze opdracht is uitgevoerd.

Azure App Service biedt een zeer schaalbare, zelfpatchende service voor webhosting. In deze quickstart ziet u hoe u een PHP-app implementeert in Azure App Service op Linux.

Schermafbeelding van de voorbeeld-app die wordt uitgevoerd in Azure.

U kunt de stappen hier volgen met behulp van een Mac-, Windows- of Linux-machine. Zodra de vereisten zijn geïnstalleerd, duurt het ongeveer tien minuten om de stappen te voltooien.

Vereiste voorwaarden

Download de voorbeeldrepository

In de volgende stappen maakt u de web-app met behulp van de Azure CLI en implementeert u vervolgens voorbeeld-PHP-code in de web-app.

U kunt de Azure Cloud Shell gebruiken.

  1. Voer in een terminalvenster de volgende opdrachten uit om de voorbeeldtoepassing naar uw lokale computer te klonen en navigeer naar de hoofdmap van het project.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Om de applicatie lokaal uit te voeren, gebruikt u de php opdracht om de ingebouwde PHP-webserver te starten.

    php -S localhost:8080
    
  3. Blader in een webbrowser naar de voorbeeldtoepassing op http://localhost:8080.

    Schermafbeelding van de voorbeeld-app die lokaal wordt uitgevoerd.

  4. Druk in het terminalvenster op Ctrl+C om de webserver af te sluiten.

Uw toepassingscode implementeren in Azure

Azure CLI heeft een opdracht az webapp up waarmee de benodigde resources worden gemaakt en uw toepassing in één stap wordt geïmplementeerd.

Implementeer in de terminal de code in uw lokale map met behulp van de az webapp up opdracht:

az webapp up --runtime "PHP:8.2" --os-type=linux
  • Als de az opdracht niet wordt herkend, controleert u of Azure CLI is geïnstalleerd.
  • Het --runtime "PHP:8.2" argument maakt de web-app met PHP versie 8.2.
  • Met het argument --os-type=linux wordt de web-app op App Service op Linux gemaakt.
  • U kunt desgewenst een naam opgeven met het argument --name <app-name>. Als u er geen opgeeft, wordt er automatisch een naam gegenereerd.
  • U kunt eventueel het argument --location <location-name> toevoegen, waarbij <location_name> een beschikbare Azure-regio is. U kunt een lijst met toegestane regio's voor uw Azure-account ophalen door de az account list-locations-opdracht uit te voeren.
  • Als u de fout Kan de runtimestack van uw app niet automatisch detecteren ziet, controleert u of u de opdracht uitvoert in de codemap. Zie Problemen met automatisch detecteren met az webapp up voor meer informatie.

Het uitvoeren van deze opdracht kan enkele minuten duren. Terwijl het wordt uitgevoerd, worden berichten weergegeven over het maken van de resourcegroep, het App Service-abonnement en de app-resource, het configureren van logboekregistratie en het uitvoeren van ZIP-implementatie. Vervolgens wordt de URL van de app in Azure weergegeven.

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 <directory-location> ...
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": "<directory-path>"
}

Opmerking

Met de opdracht az webapp up worden de volgende acties uitgevoerd:

Blader naar de geïmplementeerde applicatie in uw webbrowser op de URL die in de terminal is opgegeven.

De PHP-voorbeeldcode wordt uitgevoerd in een Azure App Service.

Schermafbeelding van de voorbeeld-app die wordt uitgevoerd in Azure, met Hello World.

Gefeliciteerd! U hebt uw eerste PHP-app geïmplementeerd in App Service met behulp van de Azure Portal.

De app bijwerken en opnieuw implementeren

  1. Zoek de directory php-docs-hello-world en open het index.php bestand met behulp van een lokale teksteditor. Breng een kleine wijziging aan in de tekst in de tekenreeks naast echo:

    echo "Hello Azure!";
    
  2. Sla uw wijzigingen op en implementeer de app vervolgens opnieuw met de opdracht az webapp up met de volgende argumenten:

    az webapp up --runtime "PHP:8.2" --os-type=linux
    
  3. Zodra de implementatie is voltooid, keert u terug naar het browservenster dat is geopend tijdens de stap Bladeren naar de app en vernieuwt u de pagina.

    Schermafbeelding van de bijgewerkte voorbeeld-app die wordt uitgevoerd in Azure.

Uw nieuwe Azure-app beheren

  1. Ga naar de Azure Portal om de web-app te beheren die u hebt gemaakt. Zoek en selecteer App Services.

    Schermafbeelding van de Azure Portal met app-services die in het tekstvak Zoeken zijn getypt.

  2. Selecteer uw Azure-app om deze te openen.

    Schermafbeelding van de lijst met App Services in Azure. De naam van de demo-app-service is gemarkeerd.

    De overzichtspagina van uw web-app moet worden weergegeven. Hier kunt u basisbeheertaken uitvoeren, zoals Bladeren, Stoppen, Opnieuw opstarten en Verwijderen.

    Schermafbeelding van de overzichtspagina van App Service in Azure Portal. Op de actiebalk is de knopgroep Bladeren, Stoppen, Wisselen, Opnieuw opstarten en Verwijderen gemarkeerd.

    Het menu van de web-app biedt verschillende opties voor het configureren van uw app.

De hulpbronnen opschonen

Wanneer u klaar bent met de voorbeeld-app, kunt u alle resources voor de app uit Azure verwijderen, zodat u extra kosten kunt vermijden en uw Azure-abonnement overzichtelijk kunt houden. Als u de resourcegroep verwijdert, worden ook alle resources in de resourcegroep verwijderd en is dit de snelste manier om alle Azure-resources voor uw app te verwijderen.

Verwijder de resourcegroep met behulp van de opdracht az group delete .

az group delete --name myResourceGroup

Het duurt een minuut voordat deze opdracht is uitgevoerd.