

 AWS Cloud9 non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Cloud9 possono continuare a utilizzare il servizio come di consueto. [Ulteriori informazioni](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tutorial PHP per AWS Cloud9
<a name="sample-php"></a>

Questo tutorial consente di eseguire alcuni script PHP in un ambiente di sviluppo. AWS Cloud9 

Seguire questo tutorial e creare questo esempio potrebbe comportare addebiti sul tuo AWS account. Questi includono possibili addebiti per servizi come Amazon EC2 e Amazon S3. Per ulteriori informazioni, consulta [Prezzi di Amazon EC2](https://aws.amazon.com/ec2/pricing/) e [Prezzi di Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Prerequisiti](#sample-php-prereqs)
+ [Fase 1: installare gli strumenti necessari](#sample-php-install)
+ [Fase 2: aggiungere un codice](#sample-php-code)
+ [Fase 3: eseguire il codice](#sample-php-run)
+ [Fase 4: Installare e configurare AWS SDK per PHP](#sample-php-sdk)
+ [Passaggio 5: Aggiungere AWS il codice SDK](#sample-php-sdk-code)
+ [Passaggio 6: Esegui il codice AWS SDK](#sample-php-sdk-run)
+ [Fase 7: pulire](#sample-php-clean-up)

## Prerequisiti
<a name="sample-php-prereqs"></a>

Prima di usare questo esempio, assicurati che la configurazione soddisfi i seguenti requisiti:
+ **È necessario disporre di un ambiente di sviluppo AWS Cloud9 EC2 esistente.** Nell'esempio si presume che tu disponga già di un ambiente EC2 connesso a un'istanza Amazon EC2 in cui viene eseguito Amazon Linux o Ubuntu Server. Se disponi di un altro tipo di ambiente o sistema operativo, potrebbe essere necessario adattare le istruzioni di questo esempio per configurare gli strumenti correlati. Per ulteriori informazioni, consulta [Creare un ambiente in AWS Cloud9](create-environment.md).
+ **L' AWS Cloud9 IDE per l'ambiente esistente è già aperto.** Quando apri un ambiente, AWS Cloud9 apre l'IDE per quell'ambiente nel tuo browser web. Per ulteriori informazioni, consulta [Aprire un ambiente in AWS Cloud9](open-environment.md).

## Fase 1: installare gli strumenti necessari
<a name="sample-php-install"></a>

In questa fase, installerai PHP, indispensabile per eseguire l'esempio.

**Nota**  
Con la procedura seguente, è possibile installare solo PHP. Per installare strumenti correlati come un server Web Apache e un database MySQL, [consulta Tutorial: Installazione di un server Web LAMP su Amazon Linux nella Guida per l'utente di Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html) *EC2*.

1. In una sessione di terminale nell' AWS Cloud9 IDE, verifica se PHP è già installato eseguendo il comando. **`php --version`** Per avviare una nuova sessione del terminale, dalla barra dei menu scegli **Window** (Finestra), **New Terminal** (Nuovo terminale). Se è già installato, l'output contiene il numero di versione di PHP: Se PHP è installato, passa alla [Fase 2: aggiungere un codice](#sample-php-code).

1. Esegui il comando ** `yum update` ** per (Amazon Linux) o ** `apt update` ** per (Ubuntu Server) per verificare che siano installati gli aggiornamenti di sicurezza e le correzioni dei bug più recenti.

   Per Amazon Linux 2 e Amazon Linux:

   ```
   sudo yum -y update
   ```

   Per Ubuntu Server:

   ```
   sudo apt update
   ```

1. Installa PHP eseguendo il comando ** `install` **.

   Per Amazon Linux 2:

   ```
   sudo amazon-linux-extras install -y php7.2
   ```

   Per Amazon Linux:

   ```
   sudo yum -y install php72
   ```
**Nota**  
È possibile visualizzare la versione di Amazon Linux con il comando seguente:   

   ```
   cat /etc/system-release
   ```

   Per Ubuntu Server:

   ```
   sudo apt install -y php php-xml
   ```

   Per ulteriori informazioni, consulta [Installazione e configurazione](http://php.net/manual/en/install.php) sul sito Web di PHP.

## Fase 2: aggiungere un codice
<a name="sample-php-code"></a>

Nell' AWS Cloud9 IDE, create un file con questo contenuto e salvate il file con il nome`hello.php`. (Per creare un file, nella barra dei menu scegli **File**, **New File** (Nuovo file). Per salvare il file, scegli **File**, **Save** (Salva), digita `hello.php` in **Filename** (Nome file), quindi scegli **Save** (Salva)).

```
<?php
  print('Hello, World!');

  print("\nThe sum of 2 and 3 is 5.");

  $sum = (int)$argv[1] + (int)$argv[2];

  print("\nThe sum of $argv[1] and $argv[2] is $sum.");
?>
```

**Nota**  
Il codice precedente non si basa su alcun file esterno. Tuttavia, se includi o richiedi altri file PHP nel tuo file e desideri utilizzare tali file AWS Cloud9 per completare il codice durante la digitazione, attiva l'impostazione **Project, PHP Support, Enable PHP code completion in **Preferenze**,** quindi aggiungi i percorsi di quei file all'impostazione **Project, PHP Support, PHP** Completion Include Paths. Per visualizzare e modificare le preferenze, seleziona **AWS Cloud9, Preferences** (Preferenze) nella barra dei menu.

## Fase 3: eseguire il codice
<a name="sample-php-run"></a>

1. **Nell' AWS Cloud9 IDE, nella barra dei menu, scegliete **Esegui, Esegui** **configurazioni, Nuova configurazione di esecuzione**.**

1. Nella scheda **[New] - Idle ([Nuovo] - inattivo)**, seleziona **Runner: Auto (Esecuzione: auto)** e **PHP (cli) (PHP (interfaccia a riga di comando)**.

1. Per **Command (Comando)**, digitare `hello.php 5 9`. Nel codice, `5` rappresenta `$argv[1]`, mentre `9` rappresenta `$argv[2]`. (`$argv[0]` rappresenta il nome del file (`hello.php`).)

1. Seleziona il pulsante **Run (Esegui)** e confronta gli output.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

![\[Risultato dell'esecuzione del codice PHP nell'IDE AWS Cloud9\]](http://docs.aws.amazon.com/it_it/cloud9/latest/user-guide/images/ide-php-simple.png)


## Fase 4: Installare e configurare AWS SDK per PHP
<a name="sample-php-sdk"></a>

Puoi migliorare questo esempio per utilizzare il bucket Amazon S3, AWS SDK per PHP elencare i bucket disponibili e quindi eliminare il bucket appena creato.

In questa fase, installi e configuri il AWS SDK per PHP, che fornisce un modo conveniente per interagire con AWS servizi come Amazon S3, dal tuo codice PHP. [Prima di poter installare AWS SDK per PHP, è necessario installare Composer.](https://getcomposer.org/) Dopo aver installato AWS SDK per PHP, è necessario configurare la gestione delle credenziali nel proprio ambiente. Queste credenziali sono AWS SDK per PHP necessarie per interagire con AWS i servizi.

### Per installare Composer
<a name="sample-php-sdk-install-composer"></a>

Esegui il comando ** `curl` ** in modalità silenziosa (`-s`) e mostra le opzioni di errore (`-S`), indirizzando il programma di installazione di Composer in un file di archivio PHP (PHAR), convenzionalmente denominato `composer.phar`.

```
curl -sS https://getcomposer.org/installer | php
```

### Per installare il AWS SDK per PHP
<a name="sample-php-sdk-install-sdk"></a>

Per Ubuntu Server, installa ulteriori pacchetti che Composer necessita per installare l' AWS SDK per PHP.

```
sudo apt install -y php-xml php-curl
```

Per Amazon Linux o Ubuntu Server, utilizza il comando **php** per eseguire il programma di installazione di Composer e installare AWS SDK per PHP.

```
php composer.phar require aws/aws-sdk-php
```

Questo comando crea diverse cartelle e file nell'ambiente. Il file principale che utilizzerai è `autoload.php`, che si trova nella cartella `vendor` dell'ambiente.

**Nota**  
Dopo l'installazione, Composer potrebbe suggerire l'installazione di ulteriori dipendenze. A questo proposito puoi utilizzare un comando come il seguente, specificando l'elenco delle dipendenze da installare. Ad esempio, il comando seguente indica a Composer di installare il seguente elenco di dipendenze.  

```
php composer.phar require psr/log ext-curl doctrine/cache aws/aws-php-sns-message-validator
```

Per ulteriori informazioni, consulta [Installazione](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/installation.html) in *Guida per gli sviluppatori di AWS SDK per PHP *.

### Per configurare la gestione delle credenziali nell'ambiente
<a name="sample-php-sdk-creds"></a>

Ogni volta che si utilizza il AWS SDK per PHP per chiamare un AWS servizio, è necessario fornire un set di credenziali con la chiamata. Queste credenziali determinano se AWS SDK per PHP dispone delle autorizzazioni appropriate per effettuare quella chiamata. Se le credenziali non coprono le autorizzazioni appropriate, la chiamata fallirà.

In questa fase si archiviano le credenziali all'interno dell'ambiente A questo proposito, segui le istruzioni riportate in [Chiamata Servizi AWS da un ambiente in AWS Cloud9](credentials.md), quindi torna a questo argomento.

Per ulteriori informazioni, consulta la sezione "Creazione di un client" di [Utilizzo di base](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/basic-usage.html) in *Guida per gli sviluppatori di AWS SDK per PHP *.

## Passaggio 5: Aggiungere AWS il codice SDK
<a name="sample-php-sdk-code"></a>

In questa fase si aggiunge altro codice, questa volta per interagire con Amazon S3 e creare un bucket, elencare i bucket disponibili ed eliminare il bucket appena creato. Potrai eseguire questo codice più tardi.

Nell' AWS Cloud9 IDE, crea un file con questo contenuto e salva il file con il nome`s3.php`.

```
<?php
require './vendor/autoload.php';

if ($argc < 4) {
    exit("Usage: php s3.php <the time zone> <the bucket name> <the AWS Region to use>\n" .
        "Example: php s3.php America/Los_Angeles my-test-bucket us-east-2");
}

$timeZone = $argv[1];
$bucketName = $argv[2];
$region = $argv[3];

date_default_timezone_set($timeZone);

$s3 = new Aws\S3\S3Client([
    'region' => $region,
    'version' => '2006-03-01'
]);

# Lists all of your available buckets in this AWS Region.
function listMyBuckets($s3)
{
    print("\nMy buckets now are:\n");

    $promise = $s3->listBucketsAsync();

    $result = $promise->wait();

    foreach ($result['Buckets'] as $bucket) {
        print("\n");
        print($bucket['Name']);
    }
}

listMyBuckets($s3);

# Create a new bucket.
print("\n\nCreating a new bucket named '$bucketName'...\n");

try {
    $promise = $s3->createBucketAsync([
        'Bucket' => $bucketName,
        'CreateBucketConfiguration' => [
            'LocationConstraint' => $region
        ]
    ]);

    $promise->wait();
} catch (Exception $e) {
    if ($e->getCode() == 'BucketAlreadyExists') {
        exit("\nCannot create the bucket. " .
            "A bucket with the name '$bucketName' already exists. Exiting.");
    }
}

listMyBuckets($s3);

# Delete the bucket you just created.
print("\n\nDeleting the bucket named '$bucketName'...\n");

$promise = $s3->deleteBucketAsync([
    'Bucket' => $bucketName
]);

$promise->wait();

listMyBuckets($s3);

?>
```

## Passaggio 6: Esegui il codice AWS SDK
<a name="sample-php-sdk-run"></a>

1. Nell' AWS Cloud9 IDE, nella barra dei menu, scegli **Esegui, Esegui** **configurazioni**, **Nuova configurazione di esecuzione**.

1. Nella scheda **[New] - Idle ([Nuovo] - inattivo)**, seleziona **Runner: Auto (Esecuzione: auto)** e **PHP (cli) (PHP (interfaccia a riga di comando)**.

1. In **Command (Comando)**, digita `s3.php America/Los_Angeles my-test-bucket us-east-2`, dove:
   +  `America/Los_Angeles` è l'ID del tuo fuso orario predefinito. Per ulteriori informazioni IDs, consulta l'[Elenco dei fusi orari supportati](http://php.net/manual/en/timezones.php) sul sito Web di PHP.
   +  `my-test-bucket` è il nome del bucket che vuoi creare e quindi eliminare.
**Nota**  
I nomi dei bucket Amazon S3 devono essere univoci per tutti gli account, AWS non solo per il tuo account. AWS 
   +  `us-east-2`è l'ID della AWS regione in cui desideri creare il bucket. Per ulteriori informazioni IDs, consulta [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)) nel. *Riferimenti generali di Amazon Web Services*

1. Seleziona il pulsante **Run (Esegui)** e confronta gli output.

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## Fase 7: pulire
<a name="sample-php-clean-up"></a>

Per evitare addebiti continui AWS sul tuo account dopo aver finito di utilizzare questo esempio, devi eliminare l'ambiente. Per istruzioni, consulta [Eliminazione di un ambiente in AWS Cloud9](delete-environment.md).

### Risoluzione dei problemi con PHP runner per AWS Cloud9
<a name="sample-php-troubleshooting"></a>

Nel caso in cui si verifichino problemi con il runner PHP CLI, è necessario assicurarsi che il runner sia impostato su PHP e che la modalità debugger sia abilitata.