

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.

# Paso 2: Configurar el contenido fuente para implementarlo en la instancia de Amazon EC2 de Amazon Linux o Red Hat Enterprise Linux
<a name="tutorials-wordpress-configure-content"></a>

Ha llegado el momento de configurar el contenido de origen de su aplicación para tener algo que implementar en la instancia.

**Topics**
+ [Obtener el código fuente](#tutorials-wordpress-configure-content-download-code)
+ [Crear scripts para ejecutar la aplicación](#tutorials-wordpress-configure-content-create-scripts)
+ [Añadir un archivo de especificación de la aplicación](#tutorials-wordpress-configure-content-add-appspec-file)

## Obtener el código fuente
<a name="tutorials-wordpress-configure-content-download-code"></a>

Para este tutorial, debe implementar la plataforma de publicación de WordPress contenido desde su máquina de desarrollo en la instancia Amazon EC2 de destino. Para obtener el código WordPress fuente, puede utilizar las llamadas de línea de comandos integradas. O bien, si tiene instalado Git en su equipo de desarrollo, puede utilizarlo en su lugar.

Para estos pasos, suponemos que has descargado una copia del código WordPress fuente en el `/tmp` directorio de tu máquina de desarrollo. (Puede elegir cualquier directorio que desee, pero no olvide sustituir la ubicación por `/tmp` siempre que se especifique en estos pasos).

Elige una de las dos opciones siguientes para copiar los archivos WordPress fuente a tu máquina de desarrollo. La primera opción utiliza llamadas a línea de comandos integradas. La segunda opción utiliza Git.

**Topics**
+ [Para obtener una copia del código WordPress fuente (llamadas de línea de comandos integradas)](#tutorials-wordpress-configure-content-download-code-command-line)
+ [Para obtener una copia del código WordPress fuente (Git)](#tutorials-wordpress-configure-content-download-code-git)

### Para obtener una copia del código WordPress fuente (llamadas de línea de comandos integradas)
<a name="tutorials-wordpress-configure-content-download-code-command-line"></a>

1. Ejecute el **wget** comando para descargar una copia del código WordPress fuente, en forma de archivo.zip, en el directorio actual:

   ```
   wget https://github.com/WordPress/WordPress/archive/master.zip
   ```

1. Ejecute los comandos **unzip**, **mkdir**, **cp** y **rm** para:
   + Descomprimir el archivo .zip `master` en el directorio (carpeta) `/tmp/WordPress_Temp`.
   + Copiar el contenido descomprimido en la carpeta de destino `/tmp/WordPress`.
   + Eliminar la carpeta temporal `/tmp/WordPress_Temp` y el archivo `master`.

   Ejecute los comandos de uno en uno:

   ```
   unzip master -d /tmp/WordPress_Temp
   ```

   ```
   mkdir -p /tmp/WordPress
   ```

   ```
   cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
   ```

   ```
   rm -rf /tmp/WordPress_Temp
   ```

   ```
   rm -f master
   ```

   Esto deja un conjunto limpio de archivos de código WordPress fuente en la `/tmp/WordPress` carpeta.

### Para obtener una copia del código WordPress fuente (Git)
<a name="tutorials-wordpress-configure-content-download-code-git"></a>

1. Descargue e instale [Git](http://git-scm.com) en el equipo de desarrollo.

1. En la carpeta `/tmp/WordPress`, ejecute el comando **git init**. 

1. Ejecuta el **git clone** comando para clonar el WordPress repositorio público y haz tu propia copia del mismo en la carpeta de `/tmp/WordPress` destino:

   ```
   git clone https://github.com/WordPress/WordPress.git /tmp/WordPress
   ```

   Esto deja un conjunto limpio de archivos de código WordPress fuente en la `/tmp/WordPress` carpeta.

## Crear scripts para ejecutar la aplicación
<a name="tutorials-wordpress-configure-content-create-scripts"></a>

A continuación, cree una carpeta y scripts en el directorio. CodeDeploy utiliza estos scripts para configurar e implementar la revisión de la aplicación en la instancia Amazon EC2 de destino. Puede utilizar cualquier editor de texto para crear los scripts.

1. Cree un directorio de scripts en su copia del código WordPress fuente:

   ```
   mkdir -p /tmp/WordPress/scripts
   ```

1. Cree un archivo `install_dependencies.sh` en `/tmp/WordPress/scripts`. Añada las líneas siguientes al archivo. Este script `install_dependencies.sh` instala Apache, MySQL y PHP. También añade compatibilidad con MySQL a PHP.

   ```
   #!/bin/bash
   sudo amazon-linux-extras install php7.4
   sudo yum install -y httpd mariadb-server php
   ```

1. Cree un archivo `start_server.sh` en `/tmp/WordPress/scripts`. Añada las líneas siguientes al archivo. Este script `start_server.sh` inicia Apache y MySQL.

   ```
   #!/bin/bash
   systemctl start mariadb.service
   systemctl start httpd.service
   systemctl start php-fpm.service
   ```

1. Cree un archivo `stop_server.sh` en `/tmp/WordPress/scripts`. Añada las líneas siguientes al archivo. Este script `stop_server.sh` detiene Apache y MySQL.

   ```
   #!/bin/bash
   isExistApp="pgrep httpd"
   if [[ -n $isExistApp ]]; then
   systemctl stop httpd.service
   fi
   isExistApp=pgrep mysqld
   if [[ -n $isExistApp ]]; then
   systemctl stop mariadb.service
   fi
   isExistApp=pgrep php-fpm
   if [[ -n $isExistApp ]]; then
   systemctl stop php-fpm.service
   
   fi
   ```

1. Cree un archivo `create_test_db.sh` en `/tmp/WordPress/scripts`. Añada las líneas siguientes al archivo. Este `create_test_db.sh` script usa MySQL para crear una **test** base de datos WordPress para su uso.

   ```
   #!/bin/bash
   mysql -uroot <<CREATE_TEST_DB
   CREATE DATABASE IF NOT EXISTS test;
   CREATE_TEST_DB
   ```

1. Por último, cree un script `change_permissions.sh` en `/tmp/WordPress/scripts`. Esto se utiliza para cambiar los permisos de carpeta en Apache.
**importante**  
 Este script ha actualizado los permisos de la carpeta `/tmp/WordPress` de modo que cualquiera pueda escribir en ella. Esto es necesario para WordPress poder escribir en su base de datos durante el proceso[Paso 5: Actualizar y volver a implementar la aplicación WordPress](tutorials-wordpress-update-and-redeploy-application.md). Una vez configurada la WordPress aplicación, ejecute el siguiente comando para actualizar los permisos a una configuración más segura:  

   ```
   chmod -R 755 /var/www/html/WordPress
   ```

   ```
   #!/bin/bash
   chmod -R 777 /var/www/html/WordPress
   ```

1. Conceda permisos ejecutables a todos los scripts. En la línea de comando, escriba:

   ```
   chmod +x /tmp/WordPress/scripts/*
   ```

## Añadir un archivo de especificación de la aplicación
<a name="tutorials-wordpress-configure-content-add-appspec-file"></a>

A continuación, añada un archivo de especificaciones de la aplicación (AppSpec archivo), un archivo con formato [YAML](http://www.yaml.org) que se utiliza para: CodeDeploy 
+ Asignar los archivos de origen de la revisión de la aplicación a sus destinos en la instancia de Amazon EC2 de destino.
+ Especificar permisos personalizados para los archivos implementados.
+ Especificar los scripts que se van a ejecutar en la instancia de Amazon EC2 de destino durante la implementación.

El AppSpec archivo debe tener un nombre. `appspec.yml` Debe colocarse en el directorio raíz del código fuente de la aplicación. En este tutorial, el directorio raíz es `/tmp/WordPress`.

Mediante su editor de texto, cree un archivo denominado `appspec.yml`. Añada las líneas siguientes al archivo:

```
version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/WordPress
hooks:
  BeforeInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root
  AfterInstall:
    - location: scripts/change_permissions.sh
      timeout: 300
      runas: root
  ApplicationStart:
    - location: scripts/start_server.sh
    - location: scripts/create_test_db.sh
      timeout: 300
      runas: root
  ApplicationStop:
    - location: scripts/stop_server.sh
      timeout: 300
      runas: root
```

CodeDeploy utiliza este AppSpec archivo para copiar todos los archivos de la `/tmp/WordPress` carpeta de la máquina de desarrollo a la `/var/www/html/WordPress` carpeta de la instancia Amazon EC2 de destino. Durante la implementación, CodeDeploy ejecuta los scripts especificados como `root` en la `/var/www/html/WordPress/scripts` carpeta de la instancia Amazon EC2 de destino en eventos específicos durante el ciclo de vida de la implementación, como **BeforeInstall** y. **AfterInstall** Si alguno de estos scripts tarda más de 300 segundos (5 minutos) en ejecutarse, CodeDeploy detiene la implementación y marca la implementación como fallida.

Para obtener más información sobre la configuración, consulte [CodeDeploy AppSpec referencia de archivo](reference-appspec-file.md).

**importante**  
Las ubicaciones y el número de espacios entre cada uno de los elementos de este archivo son importantes. Si el espaciado es incorrecto, se produce CodeDeploy un error que puede ser difícil de depurar. Para obtener más información, consulte [AppSpec Espaciado de archivos](reference-appspec-file.md#reference-appspec-file-spacing).