Tutorial de PHP para AWS Cloud9 - AWS Cloud9

AWS Cloud9 ya no está disponible para los nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. Más información

Tutorial de PHP para AWS Cloud9

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

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 y Precios de Amazon S3.

Requisitos previos

Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:

  • Debe tener un entorno de desarrollo de AWS Cloud9 EC2. 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 Creación de un entorno en AWS Cloud9.

  • Ya tiene abierto el IDE de AWS Cloud9 para el 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 Apertura de un entorno en AWS Cloud9.

Paso 1: Instalar las herramientas necesarias

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 en la Guía del usuario de Amazon EC2.

  1. En una sesión del terminal en el IDE de AWS Cloud9, confirme si PHP ya se ha instalado. Para ello, ejecute el comando php --version . (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.

  2. 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
  3. 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 en el sitio web de PHP.

Paso 2: Agregar el código

En el IDE de AWS Cloud9, 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, elijaFile [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 incluye o necesita otros archivos PHP en su archivo y quiere que AWS Cloud9 utilice esos archivos para finalizar el código mientras escribe, active la configuración Project, PHP Support, Enable PHP code completion (Proyecto, Soporte de PHP, Habilitar finalización de código PHP) en Preferences (Preferencias) y, a continuación, agregue las rutas de esos archivos a la configuración Project, PHP Support, PHP Completion Include Paths (Proyecto, Soporte de PHP, Rutas de inclusión para 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

  1. En el IDE de AWS Cloud9, en la barra de menús, elija Run (Ejecutar), Run Configurations (Configuraciones de ejecución), New Run Configuration (Nueva configuración de ejecución).

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

  3. 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).)

  4. 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 de PHP en el IDE de AWS Cloud9

Paso 4: Instalar y configurar el AWS SDK for PHP

Puede mejorar esta muestra para utilizar el AWS SDK for PHP y crear un bucket de Amazon S3, mostrar una lista de los buckets disponibles y, a continuación, eliminar el bucket que acaba de crear.

En este paso, se instala y configura el AWS SDK for PHP, que proporciona un método práctico para interactuar con los servicios de AWS, como Amazon S3, desde el código de PHP. Para poder instalar el AWS SDK for PHP, debe instalar Composer. Una vez instalado el AWS SDK for PHP, debe configurar la administración de credenciales en su entorno. El AWS SDK for PHP necesita estas credenciales para interactuar con los servicios de AWS.

Para instalar Composer

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 AWS SDK for PHP

Para Ubuntu Server, instale los paquetes adicionales que Composer necesita para instalar el AWS SDK for 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 for 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 en la Guía para desarrolladores de AWS SDK for PHP.

Para configurar la administración de credenciales en su entorno

Cada vez que utilice el AWS SDK for PHP para llamar a un servicio de AWS, debe proporcionar un conjunto de credenciales con la llamada. Estas credenciales determinan si el AWS SDK for 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 a los Servicios de AWS desde un entorno en AWS Cloud9 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 en la Guía para desarrolladores de AWS SDK for PHP.

Paso 5: Agregar el código de AWS SDK

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 IDE de AWS Cloud9, 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: Ejecutar el código de AWS SDK

  1. En el IDE de AWS Cloud9, en la barra de menús, elija Run (Ejecutar), Run Configurations (Configuraciones de ejecución), New Run Configuration (Nueva configuración de ejecución).

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

  3. 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 varios ID, consulte la lista de zonas horarias admitidas 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 bucket de Amazon S3 deben ser únicos en AWS, no solo en la cuenta de AWS.

    • us-east-2 es el ID de la región de AWS en la que desea crear el bucket. Para ver más ID, visite Amazon Simple Storage Service (Amazon S3) en la Referencia general de Amazon Web Services.

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

Para evitar que se apliquen cargos continuos en su cuenta de AWS después de terminar de usar esta muestra, debe eliminar el entorno. Para obtener instrucciones, consulte Eliminación de un entorno en AWS Cloud9.

Solución de problemas con el ejecutor de PHP para AWS Cloud9

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.