Creare un'app Web PHP nel Servizio app di Azure

Servizio app di Azure offre un servizio di hosting Web con scalabilità elevata e funzioni di auto-correzione. Questa esercitazione di avvio rapido illustra come distribuire un'app PHP nel Servizio app di Azure in Windows.

Si creerà l'app Web usando l'interfaccia della riga di comando di Azure in Cloud Shell e si userà Git per distribuire il codice PHP di esempio nell'app Web.

App di esempio in esecuzione in Azure

È possibile eseguire queste procedure con un computer Mac, Windows o Linux. Una volta installati i prerequisiti, sono necessari circa cinque minuti per completare la procedura.

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.

Prerequisiti

Per completare questa guida introduttiva:

Scaricare l'esempio in locale

  1. Eseguire i comandi seguenti in una finestra del terminale. Clonerà l’applicazione di esempio nel computer locale e verrà visualizzata la directory contenente il codice di esempio.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Assicurarsi che il ramo predefinito sia main.

    git branch -m main
    

    Suggerimento

    La modifica del nome del ramo non è richiesta dal servizio app. Tuttavia, poiché molti repository stanno modificando il ramo predefinito in main, questo avvio rapido illustra anche come distribuire un repository da main.

Eseguire l'app in locale

  1. Eseguire l'applicazione in locale, in modo da verificare l'aspetto che assumerà dopo la distribuzione in Azure. Aprire una finestra del terminale e usare il comando php per avviare il server Web PHP predefinito.

    php -S localhost:8080
    
  2. Aprire un Web browser e passare all'app di esempio all'indirizzo http://localhost:8080.

    Nella pagina sarà visualizzato il messaggio Hello World dell'app di esempio.

    App di esempio in esecuzione in locale

  3. Nella finestra del terminale premere CTRL+C per uscire dal server Web.

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. Screenshot che mostra un esempio di Prova per Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Pulsante per avviare Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot che mostra il pulsante Cloud Shell nel portale di Azure

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.

  4. Premere Invio per eseguire il codice o il comando.

Configurare un utente della distribuzione

FTP e l'istanza Git locale possono essere usati per la distribuzione in un'app Web tramite un utente della distribuzione. Dopo aver configurato l'utente della distribuzione, è possibile usarlo per tutte le distribuzioni di Azure. Il nome utente e la password della distribuzione a livello di account sono diversi dalle credenziali della sottoscrizione di Azure.

Per configurare l'utente della distribuzione, eseguire il comando az webapp deployment user set in Azure Cloud Shell. Sostituire <username> e <password> con il nome utente e la password di un utente della distribuzione.

  • Il nome utente deve essere univoco in Azure e per i push Git locali non deve contenere il simbolo "\@".
  • La password deve essere composta da almeno otto caratteri, con due dei tre elementi seguenti: lettere, numeri e simboli.
az webapp deployment user set --user-name <username> --password <password>

L'output JSON mostra la password come null. Se viene visualizzato un errore 'Conflict'. Details: 409, modificare il nome utente. Se viene visualizzato un errore 'Bad Request'. Details: 400, usare una password più complessa.

Registrare il nome utente e la password da usare per distribuire le app Web.

Creare un gruppo di risorse

Un gruppo di risorse è un contenitore logico in cui vengono distribuite e gestite risorse di Azure come app Web, database e account di archiviazione. Ad esempio, si può scegliere in un secondo momento di eliminare l'intero gruppo di risorse in un unico semplice passaggio.

In Cloud Shell creare un gruppo di risorse con il comando az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località Europa occidentale. Per visualizzare tutte le località supportate per il servizio app nel livello gratuito, eseguire il comando az appservice list-locations --sku FREE.

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

In genere, il gruppo di risorse e le risorse vengono creati in un'area vicina alla località dell'utente.

Al termine del comando, un output JSON visualizza le proprietà del gruppo di risorse.

Creare un piano di servizio app di Azure

In Cloud Shell creare un piano di servizio app con il comando az appservice plan create.

L'esempio seguente crea un piano di servizio app denominato myAppServicePlan nel piano tariffario Gratuito:

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

Al termine della creazione del piano di servizio app, l'interfaccia della riga di comando di Azure visualizza informazioni simili all'esempio seguente:

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

Creare un'app Web

  1. In Cloud Shell creare un'app Web nel piano di servizio app myAppServicePlan con il comando az webapp create.

    Nell'esempio seguente sostituire <app-name> con un nome app univoco globale. I caratteri validi sono a-z, 0-9 e -. Il runtime è impostato su PHP|7.4. Per visualizzare tutti i runtime supportati, eseguire az webapp list-runtimes.

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

    Dopo la creazione dell'app Web, l'interfaccia della riga di comando di Azure mostra un output simile all'esempio seguente:

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

    È stata creata una nuova app Web vuota, con la distribuzione Git abilitata.

    Nota

    L'URL dell'elemento Git remoto è riportato nella proprietà deploymentLocalGitUrl, con il formato https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Salvare questo URL, perché è necessario in un secondo momento.

  2. Passare all'app Web appena creata. Sostituire <app-name> con il nome app univoco creato nel passaggio precedente.

    http://<app-name>.azurewebsites.net
    

    La nuova app Web avrà questo aspetto:

    Pagina dell'app Web vuota

Effettuare il push in Azure da Git

  1. Poiché si distribuisce il ramo main, è necessario impostare il ramo di distribuzione predefinito per l'app del servizio app su main (vedere Modificare il ramo di distribuzione). In Cloud Shell, impostare l'impostazione dell'app DEPLOYMENT_BRANCH con il comando az webapp config appsettings set.

    az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
    
  2. Nella finestra del terminale locale aggiungere un'istanza remota di Azure al repository Git locale. Sostituire <deploymentLocalGitUrl-from-create-step>> con l'URL del Git remoto salvato in Creare un'app Web.

    git remote add azure <deploymentLocalGitUrl-from-create-step>
    
  3. Effettuare il push all'istanza remota di Azure per distribuire l'app con il comando seguente. Quando Git Credential Manager richiede le informazioni di accesso, assicurarsi di immettere quelle create in Configurare distribuzione locale di Git, non quelle usate per accedere al portale di Azure.

    git push azure main
    

    L'esecuzione del comando può impiegare alcuni minuti. Durante l'esecuzione, il comando visualizza informazioni simili all'esempio seguente:

  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
  

Passare all'app

Passare all'applicazione distribuita con il Web browser.

http://<app-name>.azurewebsites.net

Il codice di esempio PHP è in esecuzione in un'app Web del servizio app di Azure.

App di esempio in esecuzione in Azure

Complimenti. La distribuzione della prima app PHP nel servizio app è stata completata.

Aggiornare e ridistribuire il codice in locale

  1. Usando un editor di testo locale, aprire il file index.php nell'app PHP e apportare una piccola modifica al testo nella stringa accanto a echo:

    echo "Hello Azure!";
    
  2. Nella finestra del terminale locale eseguire il commit delle modifiche in Git e quindi eseguire il push delle modifiche al codice in Azure.

    git commit -am "updated output"
    git push azure main
    
  3. Al termine della distribuzione, tornare alla finestra del browser aperta nel passaggio Passare all'app e aggiornare la pagina.

    App di esempio aggiornata in esecuzione in Azure

Gestire la nuova app Azure

  1. Accedere al portale di Azure per gestire l'app Web creata. Cercare e selezionare Servizi app.

    Cercare Servizi app, portale di Azure, creare un'app Web PHP

  2. Selezionare il nome dell'app di Azure.

    Passaggio all'app di Azure nel portale

    Verrà visualizzata la pagina Panoramica dell'app Web. Qui è possibile eseguire attività di gestione di base come esplorazione, arresto, riavvio ed eliminazione.

    Pagina del servizio app nel portale di Azure

    Il menu dell'app Web fornisce varie opzioni per la configurazione dell'app.

Pulire le risorse

Nei passaggi precedenti sono state create risorse di Azure in un gruppo di risorse. Se si ritiene che queste risorse non saranno necessarie in futuro, eliminare il gruppo di risorse eseguendo questo comando in Cloud Shell:

az group delete --name myResourceGroup

L'esecuzione del comando può richiedere un minuto.

Servizio app di Azure offre un servizio di hosting Web con scalabilità elevata e funzioni di auto-correzione. Questo avvio rapido illustra come distribuire un'app PHP nel Servizio app di Azure in Linux.

Screenshot dell'app di esempio in esecuzione in Azure.

È possibile eseguire queste procedure con un computer Mac, Windows o Linux. Una volta installati i prerequisiti, sono necessari circa cinque minuti per completare la procedura.

Per completare l'esercitazione introduttiva, sono necessari gli elementi seguenti:

1 - Ottenere il repository di esempio

Si creerà l'app Web usando l'interfaccia della riga di comando di Azure in Cloud Shell e si userà Git per distribuire il codice PHP di esempio nell'app Web.

  1. In una finestra del terminale eseguire i comandi seguenti per clonare l'applicazione di esempio nel computer locale e spostarsi alla radice del progetto.

    git clone https://github.com/Azure-Samples/php-docs-hello-world
    cd php-docs-hello-world
    
  2. Per eseguire l'applicazione in locale, usare il comando php e avviare il server Web PHP predefinito.

    php -S localhost:8080
    
  3. Passare all'applicazione di esempio in http://localhost:8080 un Web browser.

    Screenshot dell'app di esempio in esecuzione in locale.

  4. Nella finestra del terminale premere CTRL+C per uscire dal server Web.

2 - Distribuire il codice dell'applicazione in Azure

L'interfaccia della riga di comando di Azure include un comando az webapp up che crea le risorse necessarie e distribuisce l'applicazione in un unico passaggio.

Nel terminale, distribuire il codice nella cartella locale usando il comando az webapp up:

az webapp up --runtime "PHP:8.2" --os-type=linux
  • Se il comando az non viene riconosciuto, assicurarsi che sia installata l'interfaccia della riga di comando di Azure.
  • L'argomento --runtime "PHP:8.2" crea l'app Web con PHP versione 8.2.
  • L'argomento --os-type=linux crea l'app Web nel servizio app in Linux.
  • Facoltativamente, è possibile specificare un nome con l'argomento --name <app-name>. Se non ne fornisce uno, il nome viene generato automaticamente.
  • Facoltativamente, è possibile includere l'argomento --location <location-name>, dove <location_name> è un'area di Azure disponibile. Per recuperare un elenco di aree consentite per l'account Azure, è possibile eseguire il comando az account list-locations.
  • Se viene visualizzato l'errore "Non è stato possibile rilevare automaticamente lo stack di runtime dell'app", assicurarsi di eseguire il comando nella directory del codice (vedere Risoluzione dei problemi di rilevamento automatico con az webapp up).

Il completamento del comando può richiedere alcuni minuti. Mentre è in 'esecuzione, vengono visualizzati messaggi sulla creazione del gruppo di risorse, sul piano di Servizio app e la risorsa dell'app, la configurazione della registrazione e la distribuzione dello ZIP. Viene quindi visualizzato il messaggio che indica che è possibile avviare l'app all'indirizzo http://<nome-app>.azurewebsites.net, ovvero l'URL dell'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.2",
  "runtime_version_detected": "0.0",
  "sku": "FREE",
  "src_path": "//home//msangapu//myPhpApp"
}

Nota

Il comando az webapp up esegue le azioni seguenti:

  • Crea un gruppo di risorse predefinito.

  • Creare un piano di servizio app predefinito.

  • Crea un'app con il nome specificato.

  • Zip distribuisce tutti i file dalla directory di lavoro corrente, con l'automazione della build abilitata.

  • Memorizzare nella cache i parametri in locale nel file .azure/config in modo che non sia necessario specificarli di nuovo durante la distribuzione successiva con az webapp up o altri comandi az webapp della cartella del progetto. I valori memorizzati nella cache vengono usati automaticamente per impostazione predefinita.

Passare all'applicazione distribuita nel Web browser all'URL http://<app-name>.azurewebsites.net.

Il codice di esempio PHP è in esecuzione in un Servizio app di Azure.

Screenshot dell'app di esempio in esecuzione in Azure che mostra

Complimenti. È stata distribuita la prima app PHP nel servizio app, usando il portale di Azure.

3 - Aggiornare e ridistribuire l'app

  1. Usando un editor di testo locale, aprire il file index.php nell'app PHP e apportare una piccola modifica al testo nella stringa accanto a echo:

    echo "Hello Azure!";
    
  2. Salvare le modifiche, quindi ridistribuire l'app usando di nuovo il comando az webapp up con questi argomenti:

    az webapp up --runtime "PHP:8.2" --os-type=linux
    
  3. Al termine della distribuzione, tornare alla finestra del browser aperta durante il passaggio Passare all'app e aggiornare la pagina.

    Screenshot dell'app di esempio aggiornata in esecuzione in Azure.

4 - Gestire la nuova app di Azure

  1. Accedere al portale di Azure per gestire l'app Web creata. Cercare e selezionare Servizi app.

    Screenshot del portale di Azure con

  2. Selezionare il nome dell'app di Azure.

    Screenshot dell'elenco dei Servizi app in Azure. Il nome del servizio app demo è evidenziato.

    Deve essere visualizzata la pagina Panoramica dell'app Web. Qui è possibile eseguire attività di gestione di base come esplorazione, arresto, riavvio ed eliminazione.

    Screenshot della pagina di panoramica del servizio app nel portale di Azure. Nella barra delle azioni, è evidenziato il gruppo di pulsanti Sfoglia, Arresta, Scambia (disabilitato), Riavvia ed Elimina.

    Il menu dell'app Web fornisce varie opzioni per la configurazione dell'app.

5 - Eseguire la pulizia delle risorse

Al termine dell'app di esempio, è possibile rimuovere da Azure tutte le risorse per l'app. Questo consente di evitare addebiti aggiuntivi e d mantenere la sottoscrizione di Azure libera da ingombri. La rimozione del gruppo di risorse rimuove anche tutte le risorse nel gruppo di risorse ed è il modo più rapido per rimuovere tutte le risorse di Azure per l'app.

Eliminare il gruppo di risorse mediante il comando az group delete.

az group delete --name myResourceGroup

L'esecuzione di questo comando richiede un minuto.

Passaggi successivi

 Proteggere con dominio personalizzato e certificato di protezione