Héberger un WordPress blog sur Amazon Linux 2 - Amazon Elastic Compute Cloud

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.

Héberger un WordPress blog sur Amazon Linux 2

Les procédures suivantes vous aideront à installer, configurer et sécuriser un WordPress blog sur votre instance Amazon Linux 2. Ce didacticiel est une bonne introduction à l'utilisation d'Amazon EC2 dans la mesure où vous avez le contrôle total d'un serveur Web hébergeant votre WordPress blog, ce qui n'est pas typique d'un service d'hébergement traditionnel.

Vous êtes responsable de la mise à jour des packages logiciels et de la gestion des correctifs de sécurité pour votre serveur. Pour une WordPress installation plus automatisée qui ne nécessite pas d'interaction directe avec la configuration du serveur Web, le AWS CloudFormation service fournit un WordPress modèle qui peut également vous aider à démarrer rapidement. Pour de plus amples informations, veuillez consulter Démarrez dans le AWS CloudFormation Guide de l’utilisateur. Si vous préférez héberger votre WordPress blog sur une instance Windows, consultez Déployer un WordPress blog sur votre instance Windows Amazon EC2 dans le Guide de l'utilisateur Amazon EC2 pour les instances Windows. Si vous avez besoin d'une solution de haute disponibilité avec une base de données découplée, consultez la section Déploiement d'un WordPress site Web à haute disponibilité dans le guide du développeur.AWS Elastic Beanstalk

Important

Ces procédures sont destinées à une utilisation avec Amazon Linux 2. Pour obtenir plus d’informations sur d’autres distributions, consultez leur documentation spécifique. Plusieurs étapes de ce tutoriel ne fonctionnent pas sur des instances Ubuntu. Pour obtenir de l'aide concernant l'installation WordPress sur une instance Ubuntu, consultez WordPressla documentation Ubuntu. Vous pouvez également l'utiliser CodeDeploypour accomplir cette tâche sur les systèmes Amazon Linux, macOS ou Unix.

Prérequis

Ce tutoriel suppose que vous avez lancé une instance Amazon Linux 2 avec un serveur Web opérationnel à l’aide de la prise en charge PHP et de base de données (MySQL ou MariaDB) en suivant toutes les étapes dans Installation de LAMP sur Amazon Linux pour Installer LAMP sur Amazon Linux 2 pour Amazon Linux 2. Ce tutoriel propose aussi des étapes pour la configuration d’un groupe de sécurité afin de permettre le trafic HTTP et HTTPS ainsi que plusieurs étapes afin de vous assurer que les autorisations sur les fichiers sont définies correctement pour votre serveur web. Pour plus d’informations sur l’ajout de règles à votre groupe de sécurité, consultez le tutoriel Ajouter des règles à un groupe de sécurité.

Nous vous recommandons vivement d'associer une adresse IP élastique (EIP) à l'instance que vous utilisez pour héberger un WordPress blog. Cela évite à l’adresse DNS publique de votre instance de changer et de détériorer votre installation. Si vous possédez un nom de domaine et que vous voulez l’utiliser pour votre blog, vous pouvez mettre à jour l’enregistrement DNS pour que le nom de domaine pointe vers votre EIP (afin d’obtenir de l’aide à ce sujet, veuillez contacter votre serveur d’inscriptions des noms de domaine). Vous pouvez avoir une EIP associée à une instance en cours d’exécution sans coût aucun. Pour de plus amples informations, veuillez consulter Adresses IP Elastic.

Si vous n’avez pas encore de nom de domaine pour votre blog, vous pouvez enregistrer un nom de domaine avec Route 53 et associer l’adresse EIP de votre instance à votre nom de domaine. Pour de plus amples informations, veuillez consulter Inscription de noms de domaines à l’aide d’Amazon Route 53 dans le manuel Amazon Route 53 Manuel du développeur.

Installer WordPress

Option : Effectuer ce tutoriel en utilisant Automation

Pour terminer ce didacticiel en utilisant AWS Systems Manager Automation au lieu des tâches suivantes, exécutez le document d'automatisation.

Connectez-vous à votre instance et téléchargez le package WordPress d'installation.

Pour télécharger et décompresser le package WordPress d'installation
  1. Téléchargez le dernier package WordPress d'installation à l'aide de la wget commande. La commande suivante devrait toujours télécharger la dernière version.

    [ec2-user ~]$ wget https://wordpress.org/latest.tar.gz
  2. Décompressez et désarchivez le package d’installation. Le dossier d’installation est décompressé dans un dossier appelé wordpress.

    [ec2-user ~]$ tar -xzf latest.tar.gz
Pour créer un utilisateur de base de données et une base de données pour votre WordPress installation

Votre WordPress installation doit stocker des informations, telles que les articles de blog et les commentaires des utilisateurs, dans une base de données. Cette procédure vous aide à créer la base de données de votre blog et un utilisateur qui est autorisé à lire et à enregistrer des informations dans cette dernière.

  1. Démarrez le serveur de base de données.

    • [ec2-user ~]$ sudo systemctl start mariadb
  2. Connectez-vous au serveur de base de données en tant qu’utilisateur root. Saisissez votre mot de passe root de base de données lorsque vous y êtes invité. Il peut être différent du mot de passe root de votre système ou il peut même être inexistant si vous n’avez pas sécurisé votre serveur de base de données.

    Si vous n’avez pas encore sécurisé votre serveur de base de données, il est important de le faire. Pour plus d’informations, consultez Pour sécuriser le serveur MariaDB (Amazon Linux 2).

    [ec2-user ~]$ mysql -u root -p
  3. Créez un utilisateur et un mot de passe pour votre base de données MySQL. Votre WordPress installation utilise ces valeurs pour communiquer avec votre base de données MySQL.

    Assurez-vous de créer un mot de passe fiable pour votre utilisateur. N’utilisez pas l’apostrophe ( ’ ) dans votre mot de passe, car elle détériorera la commande précédente. Pour plus d’informations sur la création d’un mot de passe fiable, consultez http://www.pctools.com/guides/password/. Ne réutilisez pas un mot de passe existant et assurez-vous de stocker ce mot de passe dans un endroit sûr.

    Saisissez la commande suivante en remplaçant les informations par un nom utilisateur et un mot de passe uniques.

    CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';
  4. Créez votre base de données. Donnez à votre base de données un nom descriptif pertinent comme wordpress-db.

    Note

    Les signes de ponctuation autour du nom de la base de données dans la commande ci-dessous sont appelés « accents graves ». La touche « accent grave » (`) est généralement située au-dessus de la touche Tab d’un clavier QWERTY standard. Les « accents graves » ne sont pas toujours nécessaires, mais ils vous permettent d’utiliser des caractères qui sont normalement interdits dans les noms de base de données, comme les traits d’union.

    CREATE DATABASE `wordpress-db`;
  5. Accordez des privilèges complets pour votre base de données à l' WordPress utilisateur que vous avez créé précédemment.

    GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
  6. Annulez les privilèges de base de données pour récupérer tous vos changements.

    FLUSH PRIVILEGES;
  7. Quittez le client mysql.

    exit
Pour créer et modifier le fichier wp-config.php

Le dossier WordPress d'installation contient un exemple de fichier de configuration appeléwp-config-sample.php. Dans cette procédure, vous copiez ce fichier avant de le modifier pour respecter votre configuration spécifique.

  1. Copiez le fichier wp-config-sample.php sur un fichier appelé wp-config.php. Cela crée un nouveau fichier de configuration et garde le modèle de fichier original intact comme sauvegarde.

    [ec2-user ~]$ cp wordpress/wp-config-sample.php wordpress/wp-config.php
  2. Modifiez le fichier wp-config.php avec votre éditeur de texte préféré (comme nano ou vim) et saisissez les valeurs pour votre installation. Si vous n’avez pas d’éditeur de texte préféré, nano convient aux débutants.

    [ec2-user ~]$ nano wordpress/wp-config.php
    1. Trouvez la ligne qui définit DB_NAME et remplacez database_name_here par le nom de la base de données que vous avez créée à l’Étape 4 de la procédure Pour créer un utilisateur de base de données et une base de données pour votre WordPress installation.

      define('DB_NAME', 'wordpress-db');
    2. Trouvez la ligne qui définit DB_USER et remplacez username_here par l’utilisateur de base de données que vous avez créé à l’Étape 3 de la procédure Pour créer un utilisateur de base de données et une base de données pour votre WordPress installation.

      define('DB_USER', 'wordpress-user');
    3. Trouvez la ligne qui définit DB_PASSWORD et remplacez password_here par le mot de passe fiable que vous avez créé à l’Étape 3 de la procédure Pour créer un utilisateur de base de données et une base de données pour votre WordPress installation.

      define('DB_PASSWORD', 'your_strong_password');
    4. Trouvez la section appelée Authentication Unique Keys and Salts. Ces SALT valeurs KEY et ces valeurs fournissent une couche de cryptage aux cookies du navigateur que WordPress les utilisateurs stockent sur leurs machines locales. En gros, l’ajout de valeurs longues aléatoires à cet endroit rend votre site plus sécurisé. Consultez https://api.wordpress.org/secret-key/1.1/salt/ pour générer de façon aléatoire un ensemble de valeurs clés que vous pouvez copier et coller dans votre fichier wp-config.php. Pour coller du texte dans un terminal PuTTY, placez le curseur où vous voulez coller le texte et faites un clic droit avec votre souris dans le terminal PuTTY.

      Pour plus d'informations sur les clés de sécurité, rendez-vous sur https://wordpress.org/support/article/editing-wp-config-php/#security -keys.

      Note

      Les valeurs ci-dessous sont proposées à titre d’exemple seulement. N’utilisez pas ces valeurs pour votre installation.

      define('AUTH_KEY', ' #U$$+[RXN8:b^-L 0(WU_+ c+WFkI~c]o]-bHw+)/Aj[wTwSiZ<Qb[mghEXcRh-'); define('SECURE_AUTH_KEY', 'Zsz._P=l/|y.Lq)XjlkwS1y5NJ76E6EJ.AV0pCKZZB,*~*r ?6OP$eJT@;+(ndLg'); define('LOGGED_IN_KEY', 'ju}qwre3V*+8f_zOWf?{LlGsQ]Ye@2Jh^,8x>)Y |;(^[Iw]Pi+LG#A4R?7N`YB3'); define('NONCE_KEY', 'P(g62HeZxEes|LnI^i=H,[XwK9I&[2s|:?0N}VJM%?;v2v]v+;+^9eXUahg@::Cj'); define('AUTH_SALT', 'C$DpB4Hj[JK:?{ql`sRVa:{:7yShy(9A@5wg+`JJVb1fk%_-Bx*M4(qc[Qg%JT!h'); define('SECURE_AUTH_SALT', 'd!uRu#}+q#{f$Z?Z9uFPG.${+S{n~1M&%@~gL>U>NV<zpD-@2-Es7Q1O-bp28EKv'); define('LOGGED_IN_SALT', ';j{00P*owZf)kVD+FVLn-~ >.|Y%Ug4#I^*LVd9QeZ^&XmK|e(76miC+&W&+^0P/'); define('NONCE_SALT', '-97r*V/cgxLmp?Zy4zUU4r99QQ_rGs2LTd%P;|_e1tS)8_B/,.6[=UK<J_y9?JWG');
    5. Enregistrez le fichier et quittez votre éditeur de texte.

Pour installer vos WordPress fichiers sous la racine du document Apache
  • Maintenant que vous avez décompressé le dossier d'installation, créé une base de données et un utilisateur MySQL et personnalisé le fichier de WordPress configuration, vous êtes prêt à copier vos fichiers d'installation sur le document root de votre serveur Web afin de pouvoir exécuter le script d'installation qui complète votre installation. L'emplacement de ces fichiers varie selon que vous souhaitez que votre WordPress blog soit disponible à la racine de votre serveur Web (par exemple,my.public.dns.amazonaws.com) ou dans un sous-répertoire ou un dossier situé sous la racine (par exemple,my.public.dns.amazonaws.com/blog).

    • Si vous souhaitez exécuter WordPress à la racine de votre document, copiez le contenu du répertoire d'installation de WordPress (mais pas le répertoire lui-même) comme suit :

      [ec2-user ~]$ cp -r wordpress/* /var/www/html/
    • Si vous WordPress souhaitez exécuter dans un autre répertoire situé sous la racine du document, créez d'abord ce répertoire, puis copiez-y les fichiers. Dans cet exemple, s' WordPressexécutera à partir du répertoire blog :

      [ec2-user ~]$ mkdir /var/www/html/blog [ec2-user ~]$ cp -r wordpress/* /var/www/html/blog/
Important

A des fins de sécurité, si vous ne passez pas à la prochaine procédure immédiatement, arrêtez le serveur web Apache (httpd) dès maintenant. Une fois que vous avez déplacé votre installation sous la racine du document Apache, le script WordPress d'installation n'est plus protégé et un attaquant pourrait accéder à votre blog si le serveur Web Apache était en cours d'exécution. Pour arrêter le serveur Web Apache, saisissez la commande sudo systemctl stop httpd. Si vous ne passez pas à la prochaine procédure, vous n’avez pas à arrêter le serveur web Apache.

Pour autoriser l'utilisation WordPress de permaliens

WordPress les permaliens doivent utiliser des .htaccess fichiers Apache pour fonctionner correctement, mais cela n'est pas activé par défaut sur Amazon Linux. Utilisez cette procédure pour permettre tous les remplacements à la racine du document Apache.

  1. Ouvrez le fichier httpd.conf avec votre éditeur de texte préféré (comme nano ou vim). Si vous n’avez pas d’éditeur de texte préféré, nano convient aux débutants.

    [ec2-user ~]$ sudo vim /etc/httpd/conf/httpd.conf
  2. Trouvez la section qui commence par <Directory "/var/www/html">.

    <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted </Directory>
  3. Modifiez la ligne AllowOverride None dans la section ci-dessus par AllowOverride All.

    Note

    Il existe plusieurs lignes AllowOverride dans ce fichier. Assurez-vous de modifier la ligne dans la section <Directory "/var/www/html">.

    AllowOverride All
  4. Enregistrez le fichier et quittez votre éditeur de texte.

Pour installer la bibliothèque de dessins graphiques PHP sur Amazon Linux 2

La bibliothèque GD pour PHP vous permet de modifier des images. Installez cette bibliothèque si vous devez recadrer l’image d’en-tête pour votre blog. La version phpMyAdmin que vous installez peut nécessiter une version minimale spécifique de cette bibliothèque (par exemple, la version 7.2).

Utilisez la commande suivante pour installer la bibliothèque de dessin graphique PHP sur Amazon Linux 2. Par exemple, si vous avez installé php7.2 dans le amazon-linux-extras cadre de l'installation de la pile LAMP, cette commande installe la version 7.2 de la bibliothèque de dessins graphiques PHP.

[ec2-user ~]$ sudo yum install php-gd

Pour vérifier la version installée, utilisez la commande suivante :

[ec2-user ~]$ sudo yum list installed php-gd

Voici un exemple de sortie :

php-gd.x86_64 7.2.30-1.amzn2 @amzn2extra-php7.2
Pour corriger les autorisations sur les fichiers pour le serveur web Apache

Certaines des fonctionnalités disponibles WordPress nécessitent un accès en écriture à la racine du document Apache (comme le téléchargement de médias via les écrans d'administration). Si vous ne l’avez pas déjà fait, appliquez les autorisations et appartenances aux groupes suivantes (comme décrit plus en détail dans le tutoriel sur le serveur web LAMP).

  1. Accordez la propriété du fichier /var/www et de son contenu à l’utilisateur apache.

    [ec2-user ~]$ sudo chown -R apache /var/www
  2. Accordez la propriété de groupe de /var/www et de son contenu au groupe apache.

    [ec2-user ~]$ sudo chgrp -R apache /var/www
  3. Modifiez les autorisations sur les répertoires de /var/www et ses sous-répertoires pour ajouter des autorisations d’écriture de groupe et définir l’ID de groupe pour les futurs sous-répertoires.

    [ec2-user ~]$ sudo chmod 2775 /var/www [ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
  4. Modifiez de façon récursive les autorisations sur les fichiers de /var/www et ses sous-répertoires.

    [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0644 {} \;
    Note

    Si vous avez l'intention de l'utiliser également WordPress en tant que serveur FTP, vous aurez besoin de paramètres de groupe plus permissifs ici. Pour ce faire, veuillez consulter les étapes recommandées et WordPress les paramètres de sécurité.

  5. Redémarrez le serveur web Apache pour récupérer les nouveaux groupe et autorisations.

    • [ec2-user ~]$ sudo systemctl restart httpd
Exécutez le script WordPress d'installation avec Amazon Linux 2

Vous êtes prêt à procéder à l'installation WordPress. Les commandes que vous utilisez dépendent du système d’exploitation. Les commandes dans cette procédure sont destinées à une utilisation avec Amazon Linux 2.

  1. Utilisez la commande systemctl pour vous assurer que les services httpd et de base de données commencent à chaque démarrage système.

    [ec2-user ~]$ sudo systemctl enable httpd && sudo systemctl enable mariadb
  2. Vérifiez que le serveur de base de données est en cours d’exécution.

    [ec2-user ~]$ sudo systemctl status mariadb

    Si le service de base de données n’est pas en cours d’exécution, démarrez-le.

    [ec2-user ~]$ sudo systemctl start mariadb
  3. Vérifiez que votre serveur web Apache (httpd) est en cours d’exécution.

    [ec2-user ~]$ sudo systemctl status httpd

    Si le service httpd n’est pas en cours d’exécution, démarrez-le.

    [ec2-user ~]$ sudo systemctl start httpd
  4. Dans un navigateur Web, saisissez l'URL de votre WordPress blog (soit l'adresse DNS publique de votre instance, soit cette adresse suivie du blog dossier). Vous devriez voir le script WordPress d'installation. Fournissez les informations requises par l' WordPress installation. Choisissez Installer WordPress pour terminer l'installation. Pour plus d'informations, voir Étape 5 : Exécuter le script d'installation sur le WordPress site Web.

Étapes suivantes

Après avoir testé votre WordPress blog, pensez à mettre à jour sa configuration.

Utiliser un nom de domaine personnalisé

Si vous avez un nom de domaine associé à l’EIP de votre instance EC2, vous pouvez configurer votre blog pour utiliser ce nom au lieu de l’adresse DNS publique EC2. Pour plus d'informations, voir Modification de l'URL du site sur le WordPress site Web.

Configurer votre blog

Vous pouvez configurer votre blog pour utiliser différents thèmes et plugins afin de proposer une expérience plus personnalisée à vos lecteurs. Cependant, il peut arriver que le processus d’installation échoue ce qui entraînera la perte de tout votre blog. Nous vous recommandons vivement de créer une sauvegarde de l’Amazon Machine Image (AMI) de votre instance avant d’essayer d’installer des thèmes ou des plugins. Ainsi, vous pouvez restaurer votre blog en cas de problème pendant l’installation. Pour de plus amples informations, veuillez consulter Créer votre propre AMI.

Augmenter la capacité

Si votre WordPress blog devient populaire et que vous avez besoin de plus de puissance de calcul ou de stockage, considérez les étapes suivantes :

  • Développez l’espace de stockage sur votre instance. Pour plus d'informations, consultez Amazon EBS Elastic Volumes dans le guide de l'utilisateur Amazon EBS.

  • Déplacez votre base de données MySQL vers Amazon RDS pour profiter de la capacité du service à se mettre à l’échelle facilement.

Améliorer les performances réseau de votre trafic Internet

Si vous vous attendez à ce que votre blog génère du trafic provenant d’utilisateurs situés dans le monde entier, envisagez d’utiliser AWS Global Accelerator. Global Accelerator vous aide à réduire le temps de latence en améliorant les performances du trafic Internet entre les appareils clients de vos utilisateurs et votre WordPress application en cours d'exécution AWS. Global Accelerator utilise le réseauAWS mondial pour diriger le trafic vers un point de terminaison d'application sain dans la AWS région la plus proche du client.

En savoir plus sur WordPress

Pour plus d'informations WordPress, consultez la documentation d'aide du WordPress Codex à l'adresse http://codex.wordpress.org/. Pour plus d'informations sur le dépannage de votre installation, rendez-vous sur https://wordpress.org/support/article/ how-to-install-wordpress /#. common-installation-problems Pour plus d'informations sur le renforcement de la sécurité de votre WordPress blog, rendez-vous sur https://wordpress.org/support/article/hardening-wordpress/. Pour plus d'informations sur la gestion de votre WordPress blog up-to-date, rendez-vous sur https://wordpress.org/support/article/updating-wordpress/.

Aide! Mon nom DNS public a changé et mon blog ne fonctionne plus

Votre WordPress installation est automatiquement configurée à l'aide de l'adresse DNS publique de votre instance EC2. Si vous arrêtez et redémarrez l’instance, l’adresse DNS publique change (à moins qu’elle soit associée à une adresse IP Elastic) et votre blog ne fonctionne plus, car il fait référence à des ressources à une adresse qui n’existe plus (ou qui est assignée à une autre instance EC2). Une description plus détaillée du problème et plusieurs solutions possibles sont présentées dans https://wordpress.org/support/article/changing-the-site-url/.

Si cela est arrivé à votre WordPress installation, vous pourrez peut-être récupérer votre blog en suivant la procédure ci-dessous, qui utilise l'interface de ligne de wp-cli commande pour WordPress.

Pour modifier l'URL de votre WordPress site à l'aide du wp-cli
  1. Connectez-vous à votre instance EC2 avec SSH.

  2. Notez l’ancienne URL de site et la nouvelle URL de site pour votre instance. L'ancienne URL du site est probablement le nom DNS public de votre instance EC2 lors de l'installation WordPress. La nouvelle URL de site correspond au nom DNS public actuel pour votre instance EC2. Si vous n’êtes pas certain de votre ancienne URL de site, vous pouvez utiliser curl pour la trouver avec la commande suivante.

    [ec2-user ~]$ curl localhost | grep wp-content

    Vous devriez voir des références à votre ancien nom DNS public dans les données de sortie qui ressembleront à cela (ancienne URL de site en rouge) :

    <script type='text/javascript' src='http://ec2-52-8-139-223.us-west-1.compute.amazonaws.com/wp-content/themes/twentyfifteen/js/functions.js?ver=20150330'></script>
  3. Téléchargez le kit wp-cli avec la commande suivante.

    [ec2-user ~]$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  4. Recherchez et remplacez l'ancienne URL du site dans votre WordPress installation à l'aide de la commande suivante. Remplacez l'ancienne et la nouvelle URL du site par votre instance EC2 et le chemin d'accès à votre WordPress installation (généralement /var/www/html ou/var/www/html/blog).

    [ec2-user ~]$ php wp-cli.phar search-replace 'old_site_url' 'new_site_url' --path=/path/to/wordpress/installation --skip-columns=guid
  5. Dans un navigateur Web, entrez l'URL du nouveau site de votre WordPress blog pour vérifier que le site fonctionne à nouveau correctement. Si ce n'est pas le cas, consultez https://wordpress.org/support/article/changing-the-site-url/et https://wordpress.org/support/article/ how-to-install-wordpress /# common-installation-problems pour plus d'informations.