Share via


Esercitazione: Distribuire un'app server flessibile PHP e Database di Azure per MySQL nel servizio app Azure

SI APPLICA A: Database di Azure per MySQL - Server flessibile

Il Servizio app di Azure offre un servizio di hosting Web con scalabilità elevata e applicazione automatica di patch basato sul sistema operativo Linux.

Questa esercitazione illustra come compilare e distribuire un'applicazione PHP di esempio in app Azure Servizio e integrarla con Database di Azure per MySQL server flessibile nel back-end. Qui si userà la connettività di accesso pubblico (indirizzi IP consentiti) nell'istanza del server flessibile Database di Azure per MySQL per connettersi all'app servizio app.

Questa esercitazione illustra come:

  • Creare un'istanza del server flessibile Database di Azure per MySQL
  • Connessione un'app PHP all'istanza del server flessibile Database di Azure per MySQL
  • Distribuire l'app nel servizio app di Azure
  • Aggiornare e ridistribuire l'app

Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare. Attualmente, con un account gratuito di Azure, è possibile provare Database di Azure per MySQL - Server flessibile gratuito per 12 mesi. Per altre informazioni, vedere Provare gratuitamente Database di Azure per MySQL - Server flessibile.

Prerequisiti

  • Installare Git.
  • Interfaccia della riga di comando di Azure.
  • Una sottoscrizione di Azure Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare. Attualmente, con un account gratuito di Azure, è possibile provare Database di Azure per MySQL - Server flessibile gratuito per 12 mesi. Per altre informazioni, vedere Provare gratuitamente Database di Azure per MySQL - Server flessibile.

Creare un server flessibile di Database di Azure per MySQL

Prima di tutto, verrà effettuato il provisioning di un'istanza del server flessibile Database di Azure per MySQL con connettività di accesso pubblico, si configureranno le regole del firewall per consentire all'applicazione di accedere al server e creare un database di produzione.

Per informazioni su come usare invece la connettività di accesso privato e isolare le risorse di app e database in una rete virtuale, vedere Esercitazione: Connessione un'app Web servizio app s a un'istanza del server flessibile Database di Azure per MySQL in una rete virtuale.

Creare un gruppo di risorse

Un gruppo di risorse di Azure è un gruppo logico in cui le risorse di Azure vengono distribuite e gestite. Si creerà ora un gruppo di risorse rg-php-demo usando il comando az group create nella posizione centralus .

  1. Aprire il prompt dei comandi.
  2. Accedere all'account di Azure.
    az login
    
  3. Scegliere la sottoscrizione di Azure.
    az account set -s <your-subscription-ID>
    
  4. Creare il gruppo di risorse.
    az group create --name rg-php-demo --location centralus
    

Creare un'istanza del server flessibile Database di Azure per MySQL

  1. Per creare un'istanza del server flessibile Database di Azure per MySQL con connettività di accesso pubblico, eseguire il comando az flexible-server create seguente. Sostituire i valori per nome del server, nome utente amministratore e password.

    az mysql flexible-server create \
    --name <your-mysql-server-name> \
    --resource-group rg-php-demo \
    --location centralus \
    --admin-user <your-mysql-admin-username> \
    --admin-password <your-mysql-admin-password>
    

    È stata creata un'istanza del server flessibile Database di Azure per MySQL nell'area CentralUS. Il server si basa sullo SKU di calcolo B1MS con burst, con archiviazione di 32 GB, un periodo di conservazione dei backup di 7 giorni e configurato con la connettività di accesso pubblico.

  2. Successivamente, per creare una regola del firewall per l'Database di Azure per MySQL'istanza del server flessibile per consentire le connessioni client, eseguire il comando seguente. Quando l'indirizzo IP iniziale e l'indirizzo IP finale sono impostati su 0.0.0.0, solo altre risorse di Azure , ad esempio app servizio app, macchine virtuali, cluster del servizio Azure Kubernetes e così via, possono connettersi all'istanza del server flessibile Database di Azure per MySQL.

    az mysql flexible-server firewall-rule create \
     --name <your-mysql-server-name> \
     --resource-group rg-php-demo \
     --rule-name AllowAzureIPs \
     --start-ip-address 0.0.0.0 \
     --end-ip-address 0.0.0.0
    
  3. Per creare un nuovo database di produzione del server flessibile Database di Azure per MySQL da usare con l'applicazione PHP, eseguire il comando seguente:

    az mysql flexible-server db create \
    --resource-group rg-php-demo \
    --server-name <your-mysql-server-name> \
    --database-name sampledb
    

Compilare l'applicazione

Ai fini di questa esercitazione si userà un'applicazione PHP di esempio che visualizza e gestisce un catalogo prodotti. L'applicazione fornisce funzionalità di base come la visualizzazione dei prodotti nel catalogo, l'aggiunta di nuovi prodotti, l'aggiornamento dei prezzi degli articoli esistenti e la rimozione di prodotti.

Per altre informazioni sul codice dell'applicazione, procedere ed esplorare l'app nel repository GitHub. Per informazioni su come connettere un'app PHP a Database di Azure per MySQL server flessibile, vedere Avvio rapido: Connessione usando PHP.

In questa esercitazione si clonerà direttamente l'app di esempio codificata e si apprenderà come distribuirla nel servizio app Azure.

  1. Per clonare il repository dell'applicazione di esempio e passare alla radice del repository, eseguire i comandi seguenti:

    git clone https://github.com/Azure-Samples/php-mysql-app-service.git
    cd php-mysql-app-service
    
  2. Eseguire il comando seguente per assicurarsi che il ramo predefinito sia main.

    git branch -m main
    

Creare e configurare un'app Web del servizio app Azure

In Servizio app di Azure (app Web, app per le API o app per dispositivi mobili) un'app viene sempre eseguita in un piano di servizio app. Un piano di servizio app definisce un set di risorse di calcolo per l'esecuzione di un'app Web. In questo passaggio verrà creato un piano di servizio app di Azure e un'app Web di Servizio app, che ospiterà l'applicazione di esempio.

  1. Per creare un piano di servizio app usando il piano tariffario Gratuito, eseguire il comando seguente:

    az appservice plan create --name plan-php-demo \
    --resource-group rg-php-demo \
    --location centralus \
    --sku FREE --is-linux
    
  2. Se si vuole distribuire un'applicazione nell'app Web di Azure usando metodi di distribuzione come FTP o Git locale, è necessario configurare un utente di distribuzione con le credenziali nome utente e password. Dopo averlo configurato, è possibile usarlo per tutte le distribuzioni di Servizio app di Azure.

    az webapp deployment user set \
    --user-name <your-deployment-username> \
    --password <your-deployment-password>
    
  3. Per creare un'app Web di Servizio app con il runtime PHP 8.0 e configurare l'opzione di distribuzione Git locale per distribuire l'app da un repository Git nel computer locale, eseguire il comando seguente. Sostituire <your-app-name> con un nome di app univoco globale (i caratteri validi sono a-z, 0-9 e -).

    az webapp create \
    --resource-group rg-php-demo \
    --plan plan-php-demo \
    --name <your-app-name> \
    --runtime "PHP|8.0" \
    --deployment-local-git
    

    Importante

    Nell'output dell'interfaccia della riga di comando di Azure l'URL del repository Git remoto viene visualizzato nella proprietà deploymentLocalGitUrl, con il formato https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git. Salvare questo URL, perché sarà necessario in un secondo momento.

  4. Verranno quindi configurate le impostazioni di connessione del database del server flessibile Database di Azure per MySQL nell'app Web.

    Il file config.php nell'applicazione PHP di esempio recupera le informazioni di connessione al database (nome del server, nome del database, nome utente e password del server) dalle variabili di ambiente usando la funzione getenv(). In Servizio app, per impostare le variabili di ambiente come Impostazioni applicazione (appsettings), eseguire il comando seguente:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --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"
    

    In alternativa, è possibile usare Service Connessione or per stabilire una connessione tra l'app servizio app e l'istanza del server flessibile Database di Azure per MySQL. Per altre informazioni, vedere Integrare Database di Azure per MySQL server flessibile con Service Connessione or.

Distribuire l'applicazione usando Git locale

A questo punto si distribuirà l'applicazione PHP di esempio in Servizio app di Azure usando l'opzione di distribuzione Git locale.

  1. Poiché si distribuisce il ramo main, è necessario impostare il ramo di distribuzione predefinito per l'app di Servizio app su main. Per impostare DEPLOYMENT_BRANCH in Impostazioni applicazione, eseguire il comando seguente:

    az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group rg-php-demo \
    --settings DEPLOYMENT_BRANCH='main'
    
  2. Verificare di essere nella directory radice del repository dell'applicazione.

  3. Per aggiungere un repository remoto di Azure al repository Git locale, eseguire il comando seguente. Sostituire <deploymentLocalGitUrl> con l'URL del repository git remoto salvato nel passaggio Creare un'app Web servizio app.

    git remote add azure <deploymentLocalGitUrl>
    
  4. Per distribuire l'app eseguendo un git push nel repository remoto di Azure, eseguire il comando seguente. Quando Git Credential Manager richiede le credenziali, immettere le credenziali di distribuzione create nel passaggio Configurare un utente della distribuzione.

    git push azure main
    

Per il completamento della distribuzione possono essere necessari alcuni minuti.

Testare l'applicazione

Infine, testare l'applicazione passando a https://<app-name>.azurewebsites.net e quindi aggiungere, visualizzare, aggiornare o eliminare elementi dal catalogo dei prodotti.

Screenshot showing the sample Product Catalog PHP Web App.

Congratulazioni. È stata distribuita correttamente un'applicazione PHP di esempio in app Azure Servizio e la si è integrata con Database di Azure per MySQL server flessibile nel back-end.

Aggiornare e ridistribuire l'app

Per aggiornare l'app di Azure, apportare le modifiche necessarie al codice, eseguire il commit di tutte le modifiche in Git e quindi eseguire il push delle modifiche al codice in Azure.

git add .
git commit -m "Update Azure app"
git push azure main

git push Al termine, passare o aggiornare l'app di Azure per testare la nuova funzionalità.

Pulire le risorse

In questa esercitazione sono state create tutte le 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 rg-php-demo

Passaggi successivi