Configurez un site Web WordPress à charge équilibrée sur AWS EC2. Découvrez comment configurer votre application WordPress pour gérer un trafic élevé avec des capacités de mise à l'échelle automatique sur AWS avec Elastic Load Balancing.
Dans ce guide complet, vous allez installer WordPress, configurer votre site Web pour utiliser AWS S3 pour les fichiers multimédias, créer Amazon Machine Image, configurer un modèle, créer une configuration de lancement, configurer un groupe de mise à l'échelle automatique pour gérer le trafic en direct et configurer RDS pour votre base de données. /P>
Prérequis
- Une instance EC2 en cours d'exécution. Découvrez comment créer une instance AWS EC2. Vous pouvez choisir Ubuntu 20.04 LTS ou la version la plus récente.
- Attribuez une adresse IP Elastic à votre instance EC2.
- Configurez Amazon RDS et connectez-le à l'instance EC2.
- Configurez AWS Route 53 pour votre nom de domaine.
Si vous disposez de toutes les conditions préalables requises mentionnées ci-dessus, vous pouvez procéder à la configuration d'Elastic Load Balancing.
Assurez-vous d'avoir ajouté le groupe de sécurité de votre instance EC2 au groupe de sécurité de RDS pour une connexion réussie d'EC2 à RDS.
Configuration initiale du serveur
Connectez-vous en SSH à l'instance de VM et commencez par mettre à jour et mettre à niveau les packages.
sudo apt update sudo apt upgrade
Installer Apache2 pour WordPress
Installez Apache2 à l'aide de la commande suivante.
sudo apt install apache2
Cela installera apache2
et toutes les dépendances requises.
Configurer le pare-feu
Vous pouvez désormais configurer un pare-feu non compliqué (UFW) avec Apache pour autoriser l'accès public sur les ports Web par défaut pour HTTP
, HTTPS
et SSH
sudo ufw app list
Vous verrez toutes les applications répertoriées.
Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
- Apache :Ce profil ouvre le port
80
(trafic Web normal et non chiffré) - Apache complet :Ce profil ouvre les deux ports
80
(trafic Web normal et non chiffré) et le port443
(trafic crypté TLS/SSL) - Apache sécurisé :Ce profil ouvre uniquement le port
443
(trafic crypté TLS/SSL) - OpenSSH :Ce profil ouvre le port
22
pour l'accès SSH.
Nous allons maintenant activer Apache Full.
sudo ufw allow OpenSSH sudo ufw allow 'Apache Full'
Activez UFW à l'aide de la commande suivante
sudo ufw enable
Installer PHP 8 et ses extensions
Ajoutez le ondrej/php
qui a le package PHP 8 et d'autres extensions PHP requises.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Une fois que vous avez ajouté le PPA, vous pouvez installer PHP 8.
sudo apt install php8.0 libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl php8.0-bcmath unzip mariadb-client -y
Configurer PHP 8
Maintenant, nous configurons PHP pour les applications Web en modifiant certaines valeurs dans php.ini
fichier.
Pour PHP 8 avec Apache, le php.ini
l'emplacement sera dans le répertoire suivant.
sudo nano /etc/php/8.0/apache2/php.ini
Tapez F6
pour la recherche dans l'éditeur et mettez à jour les valeurs suivantes pour de meilleures performances.
upload_max_filesize = 32M
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000
Une fois que vous avez installé et configuré vos paramètres PHP, vous devez redémarrer votre Apache pour que les modifications prennent effet.
sudo service apache2 restart
Configurer les répertoires de sites Web
Une fois que vous avez installé PHP 8 et Apache, vous pouvez procéder à la configuration des répertoires.
Votre site Web sera situé dans le répertoire d'accueil et aura la structure suivante.
Remplacer yourdomainname
avec votre nom de domaine d'origine sans l'extension.
/var/www/html/ -- yourdomainname ---- public
Le public
répertoire est le répertoire racine de votre site Web.
Maintenant, nous créons ces répertoires et définissons les autorisations correctes
Vous devez vous connecter en SSH à votre instance de VM et exécuter ces commandes
mkdir -p /var/www/html/yourdomainname/public sudo chmod -R 755 /var/www/html/yourdomainname sudo chown -R www-data:www-data /var/www/html/yourdomainname
Configurer les hôtes virtuels pour WordPress
Créez un nouveau fichier de configuration pour votre site Web dans le sites-available
répertoire.
sudo nano /etc/apache2/sites-available/yourdomainname.conf
Copiez et collez la configuration suivante, assurez-vous de modifier les directives server_name, error_log et root pour qu'elles correspondent à votre nom de domaine. Tapez CTRL+X
suivi de Y
pour enregistrer les modifications.
<VirtualHost *:80> ServerAdmin [email protected] ServerName www.yourdomainname.com ServerAlias yourdomainname.com DocumentRoot /var/www/html/yourdomainname/public <Directory /var/www/html/yourdomainname/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> <Directory /usr/share/phpmyadmin> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/yourdomainname.com_error.log CustomLog ${APACHE_LOG_DIR}/yourdomainname.com_access.log combined </VirtualHost>
Pour activer cette configuration de site Web nouvellement créée, créez un lien symbolique vers le fichier que vous venez de créer dans le sites-enabled
répertoire.
sudo a2ensite yourdomainname.conf
Vérifiez votre configuration et redémarrez Apache pour que les modifications prennent effet
sudo systemctl restart apache2
Installer PhpMyAdmin (facultatif)
Vous pouvez maintenant installer PhpMyAdmin qui vous aide à créer une base de données et à lui attribuer un utilisateur de manière conviviale.
Téléchargez PhpMyAdmin et configurez-le à l'aide des commandes suivantes.
sudo wget -P /usr/share https://files.phpmyadmin.net/phpMyAdmin/5.1/phpMyAdmin-5.1-all-languages.zip sudo unzip /usr/share/phpMyAdmin-5.1-all-languages.zip -d /usr/share sudo mv /usr/share/phpMyAdmin-5.1-all-languages /usr/share/phpmyadmin sudo rm -f /usr/share/phpMyAdmin-5.1-all-languages.zip sudo mkdir /usr/share/phpmyadmin/tmp sudo chmod -R 777 /usr/share/phpmyadmin/tmp sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Modifiez le config.inc.php
fichier
sudo nano /usr/share/phpmyadmin/config.inc.php
Ajoutez ce qui suit sous le /* Authentication type */
.
$cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'RDS_DATABASE_ENDPOINT'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false; $cfg['Servers'][$i]['verbose'] = 'Amazon RDS'; $cfg['Servers'][$i]['port'] = '3306'; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['TempDir'] = '/usr/share/phpmyadmin/tmp';
Entrez le secret du poisson-globe.
$cfg['blowfish_secret'] = 'Some_Secret_Password_54_characters';
Tapez CTRL+X
suivi de Y
et ENTER
pour enregistrer et quitter le fichier.
Créer une base de données
Vous pouvez maintenant vous connecter à votre instance RDS avec PhpMyAdmin (http://yourdomainname.com/phpmyadmin
) à l'aide du nom d'utilisateur et du mot de passe principaux que vous avez configurés lors de la création de l'instance.
Créez une nouvelle base de données et un utilisateur associé à cette base de données.
Télécharger WordPress
Maintenant que notre logiciel serveur est configuré, nous pouvons télécharger et configurer WordPress.
Il est toujours recommandé d'obtenir la dernière version de WordPress à partir de leur site Web.
cd /var/www/html/yourdomainname/public curl -LO https://wordpress.org/latest.tar.gz
Une fois WordPress téléchargé, vous devez l'extraire à l'aide de la commande suivante.
sudo tar xzvf latest.tar.gz
Maintenant, vous pouvez copier tout le contenu du répertoire dans notre racine de document.
sudo cp -a /var/www/html/yourdomainname/public/wordpress/. var/www/html/yourdomainname/public
Nettoyez ensuite votre répertoire racine en supprimant le wordpress
dossier et le tar
téléchargé fichier.
sudo rm -r /var/www/html/yourdomainname/public/wordpress sudo rm -f /var/www/html/yourdomainname/public/latest.tar.gz
Configurez les autorisations correctes pour le dossier racine. N'oubliez pas de remplacer le yourdomainname
avec votre nom de domaine vous avez utilisé.
sudo chmod -R 755 /var/www/html/yourdomainname sudo chown -R www-data:www-data /var/www/html/yourdomainname
Installer WordPress
Maintenant, visitez votre site Web dans le navigateur et sélectionnez la langue que vous souhaitez utiliser et cliquez sur Continuer.
Vous serez invité à entrer votre database
, user
, password
, et hostname
.
Entrez le nom de la base de données que vous avez créé à l'aide de PhpMyAdmin et de l'utilisateur attribué à la base de données avec le mot de passe. Enfin, entrez le point de terminaison RDS en tant que nom d'hôte .
Vous pouvez maintenant lancer l'installation.
Une fois l'installation terminée, nous devons définir la méthode que WordPress doit utiliser pour écrire dans le système de fichiers. Puisque nous avons donné au serveur Web la permission d'écrire là où il le faut, nous pouvons définir explicitement la méthode du système de fichiers sur "direct". Si vous ne le définissez pas avec nos paramètres actuels, WordPress demandera des informations d'identification FTP lorsque nous effectuerons certaines actions telles que la mise à jour de WordPress, les mises à jour de plugins, le téléchargement de fichiers, etc. Ce paramètre peut être ajouté sous les paramètres de connexion à la base de données dans le fichier de configuration.
sudo nano /var/www/html/yourdomainname/public/wp-config.php
Trouvez la ligne define('DB_PASSWORD', 'password');
et collez la ligne suivante en dessous.
define('FS_METHOD', 'direct');
Tapez Ctrl+X
et Y
pour enregistrer votre fichier de configuration.
Devenez un professionnel AWS certifié avec ce cours facile à apprendre maintenant.
C'est pour la partie 1. Vous avez maintenant créé une instance dans EC2 et RDS et installé WordPress.
Dans la partie suivante, vous pouvez configurer AWS S3, configurer WordPress pour utiliser S3 pour la bibliothèque multimédia, demander le SSL géré par AWS, créer un équilibreur de charge, un groupe de mise à l'échelle automatique et faire pointer votre domaine vers l'équilibreur de charge.
Vous pouvez voir la prochaine partie de ce didacticiel complet ici.