GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer un site Web WordPress à charge équilibrée sur AWS EC2 - Partie 1

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 port 443 (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.


Linux
  1. Comment lancer une instance AWS EC2 à l'aide de Terraform

  2. Comment configurer le routage basé sur l'hôte sur l'équilibreur de charge d'application AWS

  3. Créer une instance EC2 sur AWS à l'aide de Terraform

  4. Comment installer VSFTP sur Ubuntu 20.04

  5. AWS EC2 - Plus d'espace sur l'appareil

Comment installer Lighttpd pour héberger un site Web dans RHEL 8

Comment changer le nom du site Web dans WordPress

Comment sauvegarder et restaurer un site Web WordPress

Configurer un site Web WordPress à charge équilibrée sur AWS EC2 - Partie 2

Comment installer et configurer Sendmail sur Ubuntu

Comment configurer votre premier site WordPress