

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Étape 2 : configurer votre contenu source à déployer sur l'instance Amazon EC2 Amazon Linux ou Red Hat Enterprise Linux
<a name="tutorials-wordpress-configure-content"></a>

Désormais, il est temps de configurer le contenu source de votre application pour que vous ayez quelque chose à déployer sur l'instance.

**Topics**
+ [Obtenez le code source](#tutorials-wordpress-configure-content-download-code)
+ [Créez des scripts pour exécuter votre application](#tutorials-wordpress-configure-content-create-scripts)
+ [Ajouter un fichier de spécification d'application](#tutorials-wordpress-configure-content-add-appspec-file)

## Obtenez le code source
<a name="tutorials-wordpress-configure-content-download-code"></a>

Dans le cadre de ce didacticiel, vous déployez la plateforme de publication de WordPress contenu depuis votre machine de développement vers l'instance Amazon EC2 cible. Pour obtenir le code WordPress source, vous pouvez utiliser les appels de ligne de commande intégrés. Ou, si Git est installé sur votre machine de développement, vous pouvez l'utiliser à la place.

Pour ces étapes, nous supposons que vous avez téléchargé une copie du code WordPress source `/tmp` dans le répertoire de votre machine de développement. (Vous pouvez choisir n'importe quel répertoire, mais n'oubliez pas de remplacer `/tmp` par votre emplacement chaque fois que ce répertoire est spécifié dans ces étapes.)

Choisissez l'une des deux options suivantes pour copier les fichiers WordPress source sur votre machine de développement. La première option utilise des appels de ligne de commande intégrés. La deuxième option utilise Git.

**Topics**
+ [Pour obtenir une copie du code WordPress source (appels de ligne de commande intégrés)](#tutorials-wordpress-configure-content-download-code-command-line)
+ [Pour obtenir une copie du code WordPress source (Git)](#tutorials-wordpress-configure-content-download-code-git)

### Pour obtenir une copie du code WordPress source (appels de ligne de commande intégrés)
<a name="tutorials-wordpress-configure-content-download-code-command-line"></a>

1. Appelez la **wget** commande pour télécharger une copie du code WordPress source, sous forme de fichier .zip, dans le répertoire actuel :

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

1. Appelez les commandes **unzip**, **mkdir**, **cp** et **rm** pour :
   + Décompressez le fichier `master`.zip dans le répertoire (dossier) `/tmp/WordPress_Temp`.
   + Copiez son contenu décompressé dans le dossier de destination `/tmp/WordPress`.
   + Supprimez le dossier `/tmp/WordPress_Temp` temporaire et le fichier `master`.

   Exécutez une par une les commandes :

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

   Cela vous laisse un ensemble propre de fichiers de code WordPress source dans le `/tmp/WordPress` dossier.

### Pour obtenir une copie du code WordPress source (Git)
<a name="tutorials-wordpress-configure-content-download-code-git"></a>

1. Téléchargez et installez [Git](http://git-scm.com) sur votre machine de développement.

1. Dans le dossier `/tmp/WordPress`, appelez la commande **git init**. 

1. Appelez la **git clone** commande pour cloner le WordPress dépôt public, en créant votre propre copie dans le dossier de `/tmp/WordPress` destination :

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

   Cela vous laisse un ensemble propre de fichiers de code WordPress source dans le `/tmp/WordPress` dossier.

## Créez des scripts pour exécuter votre application
<a name="tutorials-wordpress-configure-content-create-scripts"></a>

Créez ensuite un dossier et des scripts dans le répertoire. CodeDeploy utilise ces scripts pour configurer et déployer la révision de votre application sur l'instance Amazon EC2 cible. Vous pouvez utiliser un éditeur de texte quelconque pour créer ces scripts.

1. Créez un répertoire de scripts dans votre copie du code WordPress source :

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

1. Créez un fichier `install_dependencies.sh` dans `/tmp/WordPress/scripts`. Ajoutez les lignes suivantes dans le fichier. Ce script `install_dependencies.sh` installe Apache, MySQL et PHP. Il ajoute également la prise en charge de MySQL à PHP.

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

1. Créez un fichier `start_server.sh` dans `/tmp/WordPress/scripts`. Ajoutez les lignes suivantes dans le fichier. Ce script `start_server.sh` démarre Apache et MySQL.

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

1. Créez un fichier `stop_server.sh` dans `/tmp/WordPress/scripts`. Ajoutez les lignes suivantes dans le fichier. Ce script `stop_server.sh` arrête Apache et 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. Créez un fichier `create_test_db.sh` dans `/tmp/WordPress/scripts`. Ajoutez les lignes suivantes dans le fichier. Ce `create_test_db.sh` script utilise MySQL pour créer une **test** base de données WordPress à utiliser.

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

1. Enfin, créez un script `change_permissions.sh` dans `/tmp/WordPress/scripts`. Il permet de modifier les autorisations des dossiers dans Apache.
**Important**  
 Ce script a mis à jour les autorisations sur le dossier `/tmp/WordPress` pour que tout le monde puisse écrire dans celui-ci. Cela est nécessaire pour WordPress pouvoir écrire dans sa base de données pendant[Étape 5 : Mettez à jour et redéployez votre application WordPress](tutorials-wordpress-update-and-redeploy-application.md). Une fois l' WordPress application configurée, exécutez la commande suivante pour mettre à jour les autorisations selon un paramètre plus sécurisé :  

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

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

1. Fournissez à tous les scripts des autorisations d'exécution. Sur la ligne de commande, tapez :

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

## Ajouter un fichier de spécification d'application
<a name="tutorials-wordpress-configure-content-add-appspec-file"></a>

Ajoutez ensuite un fichier de spécification d'application (AppSpec fichier), un fichier au format [YAML](http://www.yaml.org) utilisé pour : CodeDeploy 
+ Mappez les fichiers source de la révision de votre application à leurs destinations sur l'instance Amazon EC2 cible.
+ spécifier des autorisations personnalisées pour les fichiers déployés ;
+ Spécifiez les scripts à exécuter sur l'instance Amazon EC2 cible lors du déploiement.

Le AppSpec fichier doit être nommé`appspec.yml`. Il doit être placé dans le répertoire racine du code source de l'application. Dans ce didacticiel, le répertoire racine est `/tmp/WordPress`.

Grâce à votre éditeur de texte, créez un fichier nommé `appspec.yml`. Ajoutez les lignes suivantes dans le fichier :

```
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 utilise ce AppSpec fichier pour copier tous les fichiers du `/tmp/WordPress` dossier de la machine de développement vers le `/var/www/html/WordPress` dossier de l'instance Amazon EC2 cible. Au cours du déploiement, CodeDeploy exécute les scripts spécifiés tels qu'ils `root` figurent dans le `/var/www/html/WordPress/scripts` dossier de l'instance Amazon EC2 cible lors d'événements spécifiques du cycle de vie du déploiement, tels que **BeforeInstall** et. **AfterInstall** Si l'exécution de l'un de ces scripts prend plus de 300 secondes (5 minutes), CodeDeploy arrête le déploiement et marque le déploiement comme ayant échoué.

Pour plus d'informations sur ces paramètres, consultez la rubrique [CodeDeploy AppSpec référence de fichier](reference-appspec-file.md).

**Important**  
Les emplacements et les nombres d'espaces entre les différents éléments de ce fichier sont importants. Si l'espacement est incorrect, CodeDeploy cela génère une erreur qui peut être difficile à déboguer. Pour de plus amples informations, veuillez consulter [AppSpec Espacement des fichiers](reference-appspec-file.md#reference-appspec-file-spacing).