

 AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. [Más información](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Este tutorial le permite ejecutar algunos scripts PHP en un entorno de AWS Cloud9 desarrollo.

El uso de este tutorial y la creación de esta muestra pueden generar cargos en su cuenta de AWS . Entre estos se incluyen posibles cargos por servicios como Amazon EC2 y Amazon S3. Para obtener más información, consulte [Precios de Amazon EC2](https://aws.amazon.com/ec2/pricing/) y [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Requisitos previos](#sample-php-prereqs)
+ [Paso 1: Instalar las herramientas necesarias](#sample-php-install)
+ [Paso 2: Agregar el código](#sample-php-code)
+ [Paso 3: Ejecutar el código](#sample-php-run)
+ [Paso 4: Instalar y configurar el AWS SDK para PHP](#sample-php-sdk)
+ [Paso 5: Agrega el código AWS del SDK](#sample-php-sdk-code)
+ [Paso 6: ejecuta el código AWS del SDK](#sample-php-sdk-run)
+ [Paso 7: limpiar](#sample-php-clean-up)

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

Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:
+ **Debe tener un entorno de desarrollo AWS Cloud9 EC2 existente.** En este ejemplo, se da por hecho que ya tiene un entorno de EC2 que está conectado a una instancia de Amazon EC2 que ejecuta Amazon Linux o Ubuntu Server. Si tiene otro tipo de entorno o sistema operativo, es posible que tenga que adaptar las instrucciones de este ejemplo para configurar herramientas relacionadas. Para obtener más información, consulte [Crear un entorno en AWS Cloud9](create-environment.md).
+ **Ya tiene abierto el AWS Cloud9 IDE del entorno existente.** Al abrir un entorno, AWS Cloud9 abre el IDE de ese entorno en el navegador web. Para obtener más información, consulte [Abrir un entorno en AWS Cloud9](open-environment.md).

## Paso 1: Instalar las herramientas necesarias
<a name="sample-php-install"></a>

En este paso, instalará PHP, que es necesario para ejecutar este ejemplo.

**nota**  
El siguiente procedimiento instala solo PHP. Para instalar herramientas relacionadas como, por ejemplo, un servidor web Apache y una base de datos MySQL, consulte el [Tutorial: Installing a LAMP Web Server on Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html) en la *Guía del usuario de Amazon EC2*.

1. En una sesión de terminal en el AWS Cloud9 IDE, ejecute el **`php --version`**comando para confirmar si PHP ya está instalado. (Para iniciar una nueva sesión del terminal, en la barra de menús, seleccione **Window [Ventana]**, **New Terminal [Nuevo terminal]**). Si es así, el resultado contendrá el número de versión de PHP. Si PHP está instalado, continúe en [Paso 2: Agregar el código](#sample-php-code).

1. Ejecute el comando ** `yum update` ** (para Amazon Linux) o ** `apt update` ** (para Ubuntu Server) para garantizar que las últimas actualizaciones de seguridad y correcciones de errores están instaladas.

   Para Amazon Linux 2 y Amazon Linux:

   ```
   sudo yum -y update
   ```

   Para Ubuntu Server:

   ```
   sudo apt update
   ```

1. Instale PHP ejecutando el comando ** `install` **.

   En Amazon Linux 2:

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

   Para Amazon Linux:

   ```
   sudo yum -y install php72
   ```
**nota**  
Puede ver la versión de Amazon Linux usando el comando siguiente:   

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

   Para Ubuntu Server:

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

   Para obtener más información, consulte [Installation and Configuration](http://php.net/manual/en/install.php) en el sitio web de PHP.

## Paso 2: Agregar el código
<a name="sample-php-code"></a>

En el AWS Cloud9 IDE, cree un archivo con este contenido y guárdelo con el nombre`hello.php`. (Para crear un archivo, en la barra de menús, elija **File** [Archivo], **New File** [Archivo nuevo]. Para guardar el archivo, elija**File** [Archivo], **Save** [Guardar], escriba `hello.php` para **Filename** [Nombre de archivo] y, a continuación, elija **Save** [Guardar]).

```
<?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**  
El código anterior no depende de archivos externos. Sin embargo, si alguna vez incluyes o requieres otros archivos PHP en tu archivo y quieres usarlos AWS Cloud9 para completar código mientras escribes, activa la configuración **Proyecto, Soporte PHP, Habilitar finalización de código PHP** en **Preferencias** y, a continuación, añade las rutas a esos archivos a la configuración **Proyecto, Soporte PHP, Integración de rutas de finalización de PHP**. (Para ver y cambiar las preferencias, elija **AWS Cloud9, Preferences** [AWS Cloud9, Preferencias] en la barra de menús).

## Paso 3: Ejecutar el código
<a name="sample-php-run"></a>

1. En el AWS Cloud9 IDE, en la barra de menús, selecciona **Ejecutar**, **Ejecutar configuraciones**, **Nueva configuración de ejecución**.

1. En la pestaña **[New] - Idle (Nuevo - Inactivo)**, elija **Runner: Auto (Ejecutor: automático)** y, a continuación, elija **PHP (cli)**.

1. En **Command (Comando)**, escriba `hello.php 5 9`. En el código, `5` representa `$argv[1]` y `9` representa `$argv[2]`. (`$argv[0]` representa el nombre del archivo (`hello.php`).)

1. Elija el botón **Run (Ejecutar)** y compare los resultados.

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

![\[Resultado de la ejecución del código PHP en el AWS Cloud9 IDE\]](http://docs.aws.amazon.com/es_es/cloud9/latest/user-guide/images/ide-php-simple.png)


## Paso 4: Instalar y configurar el AWS SDK para PHP
<a name="sample-php-sdk"></a>

Puede mejorar este ejemplo para usarlo AWS SDK para PHP para crear un bucket de Amazon S3, enumerar los buckets disponibles y, a continuación, eliminar el bucket que acaba de crear.

En este paso, debe instalar y configurar AWS SDK para PHP, lo que proporciona una forma cómoda de interactuar con AWS servicios como Amazon S3, desde su código PHP. Antes de poder instalar el AWS SDK para PHP, debe instalar [Composer](https://getcomposer.org/). Tras instalar el AWS SDK para PHP, debe configurar la administración de credenciales en su entorno. AWS SDK para PHP Necesita estas credenciales para interactuar con AWS los servicios.

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

Ejecute el comando ** `curl` ** con las opciones de silenciar (`-s`) y mostrar errores (`-S`), canalizando el instalador de Composer a un archivo PHP (PHAR), cuyo nombre es `composer.phar` por convención.

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

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

Para Ubuntu Server, instale los paquetes adicionales que Composer necesita para instalar el AWS SDK para PHP.

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

Para Amazon Linux o Ubuntu Server, use el comando **php** para ejecutar el instalador de Composer para instalar el AWS SDK para PHP.

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

Este comando crea varias carpetas y archivos en su entorno. El archivo principal que se va a utilizar es `autoload.php`, que está en la carpeta `vendor` de su entorno.

**nota**  
Después de la instalación, Composer podría sugerir que se instalen dependencias adicionales. Puede hacerlo con un comando como los siguientes, especificando la lista de dependencias que desea instalar. Por ejemplo, el siguiente comando indica a Composer que instale la siguiente lista de dependencias.  

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

Para obtener más información, consulte [Instalación](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/installation.html) en la *Guía para desarrolladores de AWS SDK para PHP *.

### Para configurar la administración de credenciales en el entorno
<a name="sample-php-sdk-creds"></a>

Cada vez que utilice el AWS SDK para PHP para llamar a un AWS servicio, debe proporcionar un conjunto de credenciales con la llamada. Estas credenciales determinan si AWS SDK para PHP tiene los permisos adecuados para realizar esa llamada. Si las credenciales no cubren los permisos adecuados, la llamada no se realizará correctamente.

En este paso, se almacenan las credenciales dentro del entorno. Para ello, siga las instrucciones de [Llamar Servicios de AWS desde un entorno de AWS Cloud9](credentials.md) y, a continuación, vuelva a este tema.

Para obtener información adicional, consulte la sección sobre creación de un cliente de [Uso básico](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/basic-usage.html) en la *Guía para desarrolladores de AWS SDK para PHP *.

## Paso 5: Agrega el código AWS del SDK
<a name="sample-php-sdk-code"></a>

En este paso, agregará algo más de código, esta vez para interactuar con Amazon S3 y crear un bucket, ver una lista de los buckets disponibles y después eliminar el bucket que acaba de crear. Ejecutará este código más adelante.

En el AWS Cloud9 IDE, cree un archivo con este contenido y guárdelo con el nombre`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);

?>
```

## Paso 6: ejecuta el código AWS del SDK
<a name="sample-php-sdk-run"></a>

1. En el AWS Cloud9 IDE, en la barra de menús, elija **Ejecutar**, **Ejecutar configuraciones**, **Nueva configuración de ejecución**.

1. En la pestaña **[New] - Idle (Nuevo - Inactivo)**, elija **Runner: Auto (Ejecutor: automático)** y, a continuación, elija **PHP (cli)**.

1. En **Command (Comando)**, escriba `s3.php America/Los_Angeles my-test-bucket us-east-2`, donde:
   +  `America/Los_Angeles` es el ID de zona horaria predeterminado. Para obtener más información IDs, consulte [la lista de zonas horarias compatibles](http://php.net/manual/en/timezones.php) en el sitio web de PHP.
   +  `my-test-bucket` es el nombre del bucket que desea crear y, a continuación, eliminar.
**nota**  
Los nombres de los buckets de Amazon S3 deben ser únicos en todas AWS las AWS cuentas, no solo en ellas.
   +  `us-east-2`es el ID de la AWS región en la que quieres crear el bucket. Para obtener más información IDs, consulte [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) en. *Referencia general de Amazon Web Services*

1. Elija el botón **Run (Ejecutar)** y compare los resultados.

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

## Paso 7: limpiar
<a name="sample-php-clean-up"></a>

Para evitar que se sigan cobrando en tu AWS cuenta una vez que hayas terminado de usar este ejemplo, debes eliminar el entorno. Para obtener instrucciones, consulte [Eliminar un entorno en AWS Cloud9](delete-environment.md).

### Solución de problemas con el ejecutor de PHP para AWS Cloud9
<a name="sample-php-troubleshooting"></a>

En caso de que tenga problemas con el ejecutor CLI de PHP, debe asegurarse de que el ejecutor esté configurado en PHP y de que el modo de depuración esté habilitado.