

 AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. [Saiba mais](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Este tutorial permite que você execute alguns scripts PHP em um ambiente de AWS Cloud9 desenvolvimento.

Seguir este tutorial e criar este exemplo pode gerar cobranças em sua conta da AWS . Isso inclui possíveis cobranças por serviços como o Amazon EC2 e Amazon S3. Para obter mais informações, consulte [Preço do Amazon EC2](https://aws.amazon.com/ec2/pricing/) e [Preço do Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Pré-requisitos](#sample-php-prereqs)
+ [Etapa 1: Instalar as ferramentas necessárias](#sample-php-install)
+ [Etapa 2: Adicionar código](#sample-php-code)
+ [Etapa 3: Executar o código](#sample-php-run)
+ [Etapa 4: instalar e configurar o AWS SDK para PHP](#sample-php-sdk)
+ [Etapa 5: adicionar código AWS SDK](#sample-php-sdk-code)
+ [Etapa 6: executar o código do AWS SDK](#sample-php-sdk-run)
+ [Etapa 7: limpar](#sample-php-clean-up)

## Pré-requisitos
<a name="sample-php-prereqs"></a>

Antes de usar esse exemplo, verifique se suas configurações cumprem os requisitos a seguir.
+ **Você deve ter um ambiente de desenvolvimento AWS Cloud9 EC2 existente.** Este exemplo pressupõe que você já tem um ambiente do EC2 conectado a uma instância do Amazon EC2 que executa Amazon Linux ou Ubuntu Server. Caso tenha um tipo diferente de ambiente ou sistema operacional, poderá ser necessário adaptar as instruções desse exemplo para configurar ferramentas relacionadas. Para obter mais informações, consulte [Criando um ambiente em AWS Cloud9](create-environment.md).
+ **Você tem o AWS Cloud9 IDE para o ambiente existente já aberto.** Quando você abre um ambiente, AWS Cloud9 abre o IDE desse ambiente em seu navegador da web. Para obter mais informações, consulte [Abrindo um ambiente em AWS Cloud9](open-environment.md).

## Etapa 1: Instalar as ferramentas necessárias
<a name="sample-php-install"></a>

Nesta etapa, instale a PHP, necessária para executar esse exemplo.

**nota**  
O procedimento a seguir instala somente a PHP. Para instalar ferramentas relacionadas como um servidor web Apache e um banco de dados MySQL, consulte [Tutorial: Installing a LAMP Web Server on Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html) no *Manual do usuário do Amazon EC2*.

1. Em uma sessão de terminal no AWS Cloud9 IDE, confirme se o PHP já está instalado executando o **`php --version`**comando. (Para iniciar uma nova sessão de terminal, na barra de menus, selecione **Janela**, **Novo terminal**.) Se sim, a saída contém o número da versão PHP. Se o PHP estiver instalado, avance para [Etapa 2: Adicionar código](#sample-php-code).

1. Execute o comando ** `yum update` ** para Amazon Linux ou o comando ** `apt update` ** para Ubuntu Server a fim de ajudar a garantir que as atualizações de segurança e correções de bug mais recentes sejam instaladas.

   Amazon Linux 2 e Amazon Linux:

   ```
   sudo yum -y update
   ```

   Para Ubuntu Server:

   ```
   sudo apt update
   ```

1. Instale a PHP executando o comando ** `install` **.

   Para Amazon Linux 2:

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

   Para Amazon Linux:

   ```
   sudo yum -y install php72
   ```
**nota**  
Você pode visualizar sua versão do Amazon Linux usando o comando a seguir.   

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

   Para Ubuntu Server:

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

   Para obter mais informações, consulte [Instalação e configuração](http://php.net/manual/en/install.php) no site da PHP.

## Etapa 2: Adicionar código
<a name="sample-php-code"></a>

No AWS Cloud9 IDE, crie um arquivo com esse conteúdo e salve o arquivo com o nome`hello.php`. (Para criar um arquivo, na barra de menus, selecione **File** (Arquivo), **New File (Novo arquivo)**. Para salvar o arquivo, selecione **File** (Arquivo), **Save (Salvar)**, digite `hello.php` como o **Filename (Nome do arquivo)** e escolha **Save** (Salvar).)

```
<?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**  
O código anterior não depende de arquivos externos. No entanto, se você incluir ou precisar de outros arquivos PHP em seu arquivo e quiser usar esses arquivos AWS Cloud9 para completar o código enquanto digita, **ative a configuração Project, PHP Support, Enable PHP code complete** em **Preferences** e adicione os caminhos desses arquivos à configuração **Project, PHP Support, PHP Completion Include Paths**. (Para exibir e alterar as preferências, selecione **AWS Cloud9, Preferences** (Preferências) na barra de menus).

## Etapa 3: Executar o código
<a name="sample-php-run"></a>

1. No AWS Cloud9 IDE, na barra de menu, escolha **Executar**, **Configurações de execução**, **Nova configuração de execução**.

1. Na guia **[Novo] – Inativo**, selecione **Executor: automático** e escolha **PHP (cli)**.

1. Em **Comando**, digite `hello.php 5 9`. No código, `5` representa `$argv[1]` e `9` representa `$argv[2]`. (`$argv[0]` representa o nome do arquivo (`hello.php`).)

1. Selecione o botão **Executar** e compare a sua saída.

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

![\[Saída da execução do código PHP no AWS Cloud9 IDE\]](http://docs.aws.amazon.com/pt_br/cloud9/latest/user-guide/images/ide-php-simple.png)


## Etapa 4: instalar e configurar o AWS SDK para PHP
<a name="sample-php-sdk"></a>

Você pode aprimorar essa amostra para usar o AWS SDK para PHP para criar um bucket do Amazon S3, listar seus buckets disponíveis e, em seguida, excluir o bucket que você acabou de criar.

Nesta etapa, você instala e configura o AWS SDK para PHP, que fornece uma maneira conveniente de interagir com AWS serviços como o Amazon S3, a partir do seu código PHP. Antes de instalar o AWS SDK para PHP, você deve instalar o [Composer.](https://getcomposer.org/) Depois de instalar o AWS SDK para PHP, você deve configurar o gerenciamento de credenciais em seu ambiente. Eles AWS SDK para PHP precisam dessas credenciais para interagir com os AWS serviços.

### Para instalar o Composer
<a name="sample-php-sdk-install-composer"></a>

Execute o comando ** `curl` ** com as opções silent (`-s`) e mostrar erro (`-S`), conectando o instalador do Composer em um arquivo PHP (PHAR), nomeado `composer.phar` por convenção.

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

### Para instalar o AWS SDK para PHP
<a name="sample-php-sdk-install-sdk"></a>

Para Ubuntu Server, instale pacotes adicionais dos quais o Composer precisa para instalar o AWS SDK para PHP.

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

Para o Amazon Linux ou o Ubuntu Server, use o comando **php** para executar o instalador do Composer para instalar o AWS SDK para PHP.

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

Esse comando cria várias pastas e arquivos no ambiente. O arquivo primário que será usado é `autoload.php`, que se encontra na pasta `vendor` no ambiente.

**nota**  
Após a instalação, o Composer pode sugerir que você instale dependências adicionais. Você pode fazer isso com um comando, como o seguinte, especificando a lista de dependências a serem instaladas. Por exemplo, o seguinte comando instrui o Composer a instalar a seguinte lista de dependências.  

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

Para obter mais informações, consulte [Instalação](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/installation.html) no *Guia do Desenvolvedor do AWS SDK para PHP *.

### Como configurar o gerenciamento de credenciais no ambiente
<a name="sample-php-sdk-creds"></a>

Cada vez que você usa o AWS SDK para PHP para chamar um AWS serviço, você deve fornecer um conjunto de credenciais com a chamada. Essas credenciais determinam se ele AWS SDK para PHP tem as permissões apropriadas para fazer essa chamada. Se as credenciais não cobrirem as permissões apropriadas, a chamada falhará.

Nesta etapa, você armazenará as credenciais no ambiente. Para fazer isso, siga as instruções em [Chamando Serviços da AWS de um ambiente em AWS Cloud9](credentials.md) e retorne a este tópico.

Para obter mais informações, consulte a seção "Criação de um cliente" de [Uso básico](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/basic-usage.html) no *Guia do desenvolvedor do AWS SDK para PHP *.

## Etapa 5: adicionar código AWS SDK
<a name="sample-php-sdk-code"></a>

Nesta etapa, adicione mais código, dessa vez para interagir com o Amazon S3 para criar um bucket, listar os buckets disponíveis e, excluir o bucket que você acabou de criar. Esse código será executado mais tarde.

No AWS Cloud9 IDE, crie um arquivo com esse conteúdo e salve o arquivo com o 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);

?>
```

## Etapa 6: executar o código do AWS SDK
<a name="sample-php-sdk-run"></a>

1. No AWS Cloud9 IDE, na barra de menu, escolha **Executar**, **Configurações de execução**, **Nova configuração de execução**.

1. Na guia **[Novo] – Inativo**, selecione **Executor: automático** e escolha **PHP (cli)**.

1. Em **Command (Comando)**, digite `s3.php America/Los_Angeles my-test-bucket us-east-2`, onde:
   +  `America/Los_Angeles` é o ID de fuso horário padrão. Para obter mais informações IDs, consulte [Lista de fusos horários suportados](http://php.net/manual/en/timezones.php) no site do PHP.
   +  `my-test-bucket` é o nome do bucket que você deseja criar e, em seguida, excluir.
**nota**  
Os nomes dos buckets do Amazon S3 devem ser exclusivos em toda a sua conta, AWS não apenas em sua conta. AWS 
   +  `us-east-2`é o ID da AWS região na qual você deseja criar o bucket. Para obter mais informações IDs, consulte [Amazon Simple Storage Service (Amazon S3](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)) no. *Referência geral da Amazon Web Services*

1. Selecione o botão **Executar** e compare a sua saída.

   ```
   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:
   ```

## Etapa 7: limpar
<a name="sample-php-clean-up"></a>

Para evitar cobranças contínuas em sua AWS conta depois de terminar de usar esse exemplo, você deve excluir o ambiente. Para instruções, consulte [Excluindo um ambiente no AWS Cloud9](delete-environment.md).

### Solução de problemas com o PHP runner para AWS Cloud9
<a name="sample-php-troubleshooting"></a>

Caso encontre problemas com o executor da CLI do PHP, você deve garantir que o executor tenha sido configurado para PHP e que o modo de depuração esteja ativado.