

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.

# Adición de una instancia de base de datos de Amazon RDS a su entorno de PHP Elastic Beanstalk
<a name="create_deploy_PHP.rds"></a>

En este tema se proporcionan instrucciones para crear un Amazon RDS mediante la consola de Elastic Beanstalk. Puede utilizar una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para almacenar datos recopilados y modificados por su aplicación. La base de datos se puede adjuntar al entorno y administrarse con Elastic Beanstalk, o bien, crearse como desacoplada y administrarse de forma externa a través de otro servicio. En estas instrucciones, la base de datos se acoplará al entorno y se administrará con Elastic Beanstalk. Para obtener más información sobre el uso de Elastic Beanstalk con Amazon RDS, consulte [Añadir una base de datos al entorno de Elastic Beanstalk](using-features.managing.db.md).

**Topics**
+ [Añadir una instancia de base de datos al entorno](#php-rds-create)
+ [Descargar un controlador](#php-rds-drivers)
+ [Conectarse a una base de datos con un PDO o My SQLi](#php-rds-connect)
+ [Conexión a una base de datos con Symfony](#php-rds-symfony)

## Añadir una instancia de base de datos al entorno
<a name="php-rds-create"></a>

**Para agregar una instancia de base de datos al entorno**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Environments** (Entornos) y, a continuación, elija el nombre del entorno en la lista.

1. En el panel de navegación, elija **Configuration (Configuración)**.

1. En la categoría de configuración **Database (Base de datos)**, seleccione **Edit (Edición de)**.

1. Seleccione un motor de base de datos y escriba el nombre de usuario y la contraseña.

1. Para guardar los cambios, elija **Aplicar** en la parte inferior de la página.

Se tarda alrededor de 10 minutos en añadir una instancia de base de datos. Cuando se haya completado la actualización del entorno, el nombre de host de la instancia de base de datos y otra información de conexión estarán disponibles para su aplicación mediante las siguientes propiedades de entorno


| Nombre de la propiedad | Descripción | Valor de la propiedad | 
| --- | --- | --- | 
|  `RDS_HOSTNAME`  |  El nombre de host de la instancia de base de datos.  |  En la pestaña **Connectivity & security (Conectividad y seguridad)** de la consola de Amazon RDS: **Endpoint (Punto de conexión)**.  | 
|  `RDS_PORT`  |  El puerto en donde la instancia de base de datos acepta las conexiones. El valor predeterminado varía dependiendo del motor de base de datos.  |  En la pestaña **Connectivity & security (Conectividad y seguridad)** de la consola de Amazon RDS: **Port (Puerto)**.  | 
|  `RDS_DB_NAME`  |  El nombre de la base de dato, **ebdb**.  |  En la pestaña **Configuration (Configuración)** de la consola de Amazon RDS: **DB Name (Nombre de la base de datos)**.  | 
|  `RDS_USERNAME`  |  El nombre de usuario que ha configurado para la base de datos.  |  En la pestaña **Configuration (Configuración)** de la consola de Amazon RDS: **Master username (Nombre de usuario maestro)**.  | 
|  `RDS_PASSWORD`  |  La contraseña que ha configurado para la base de datos.  |  No está disponible como referencia en la consola de Amazon RDS.  | 

Para obtener más información sobre la configuración de una instancia de bases de datos acopladas a un entorno de Elastic Beanstalk, consulte [Añadir una base de datos al entorno de Elastic Beanstalk](using-features.managing.db.md).

## Descargar un controlador
<a name="php-rds-drivers"></a>

Si desea utilizar PHP Data Objects (PDO) para conectarse a la base de datos, instale el driver que corresponda al motor de base de datos elegido.
+ **MySQL** – [http://php.net/manual/en/ref.pdo-mysql.php](http://php.net/manual/en/ref.pdo-mysql.php)
+ **PostgreSQL** – [http://php.net/manual/en/ref.pdo-pgsql.php](http://php.net/manual/en/ref.pdo-pgsql.php)
+ **Oracle**: [http://php.net/manual/en/ref.pdo-oci.php](http://php.net/manual/en/ref.pdo-oci.php)
+ **SQL Server** – [http://php.net/manual/en/ref.pdo-sqlsrv.php](http://php.net/manual/en/ref.pdo-sqlsrv.php)

Para obtener más información, consulte [http://php.net/manual/en/pdo.installation.php](http://php.net/manual/en/pdo.installation.php).

## Conectarse a una base de datos con un PDO o My SQLi
<a name="php-rds-connect"></a>

Puede utilizar `$_SERVER[`VARIABLE`]` para leer la información de conexión del entorno.

Para obtener un PDO, cree un nombre de origen de datos (DSN) a partir del host, el puerto y el nombre. Pase el DSN al [constructor del PDO](https://php.net/manual/en/pdo.construct.php) con el nombre de usuario y la contraseña de la base de datos.

**Example Conexión con una base de datos de RDS a través de PDO - MySQL**  

```
<?php
$dbhost = $_SERVER['RDS_HOSTNAME'];
$dbport = $_SERVER['RDS_PORT'];
$dbname = $_SERVER['RDS_DB_NAME'];
$charset = 'utf8' ;

$dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname};charset={$charset}";
$username = $_SERVER['RDS_USERNAME'];
$password = $_SERVER['RDS_PASSWORD'];

$pdo = new PDO($dsn, $username, $password);
?>
```

Si utiliza otros controladores, sustituya `mysql` por el nombre del controlador: `pgsql`, `oci` o `sqlsrv`.

En el caso de MySQLi, pase el nombre de host, el nombre de usuario, la contraseña, el nombre de la base de datos y el `mysqli` puerto al constructor.

**Example Conexión con una base de datos de RDS a través de mysqli\$1connect()**  

```
$link = new mysqli($_SERVER['RDS_HOSTNAME'], $_SERVER['RDS_USERNAME'], $_SERVER['RDS_PASSWORD'], $_SERVER['RDS_DB_NAME'], $_SERVER['RDS_PORT']);
```

## Conexión a una base de datos con Symfony
<a name="php-rds-symfony"></a>

Para Symfony versión 3.2 y posteriores, puede utilizar `%env(PROPERTY_NAME)%` para establecer los parámetros de base de datos en un archivo de configuración en función de las propiedades de entorno establecidas por Elastic Beanstalk.

**Example app/config/parameters.yml**  

```
parameters:
    database_driver:   pdo_mysql
    database_host:     '%env(RDS_HOSTNAME)%'
    database_port:     '%env(RDS_PORT)%'
    database_name:     '%env(RDS_DB_NAME)%'
    database_user:     '%env(RDS_USERNAME)%'
    database_password: '%env(RDS_PASSWORD)%'
```

Consulte [External Parameters (Symfony 3.4)](http://symfony.com/doc/3.4/configuration/external_parameters.html) para obtener más información.

Para versiones anteriores de Symfony, las variables de entorno solo están accesibles si comienzan por `SYMFONY__`. Esto significa que las propiedades de entorno definidas por Elastic Beanstalk no están accesibles, por lo que deberá definir expresamente sus propiedades de entorno para pasar a Symfony la información de conexión.

Para conectarse a una base de datos con Symfony 2, [cree una propiedad de entorno](create_deploy_PHP.container.md#php-console-properties) para cada parámetro. A continuación, utilice `%property.name%` para obtener acceso a la variable transformada por Symfony en un archivo de configuración. Por ejemplo, a una propiedad del entorno denominada `SYMFONY__DATABASE__USER` se puede tener acceso como `database.user`.

```
    database_user:     "%database.user%"
```

Consulte [External Parameters (Symfony 2.8)](http://symfony.com/doc/2.8/configuration/external_parameters.html) para obtener más información.