GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installer WordPress sur Ubuntu 20.04 avec Apache, MariaDB, PHP7.4 (LAMP)

Ce tutoriel va vous montrer comment installer WordPress sur Ubuntu 20.04 avec Apache, MariaDB et PHP7.4 (LAMP Stack). WordPress est le CMS (Content Management System) le plus populaire au monde. On estime que plus d'un tiers des sites Web d'aujourd'hui sont alimentés par WordPress. PHP7.4 a été intégré au référentiel Ubuntu 20.04 et WordPress fonctionne parfaitement avec.

Prérequis

Pour suivre ce tutoriel, vous devez disposer d'un serveur Ubuntu 20.04 avec au moins 1 Go de RAM. Si vous recherchez un VPS (Virtual Private Server), vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur DigitalOcean. (Pour les nouveaux utilisateurs uniquement). Si vous êtes déjà un utilisateur de DigitalOcean, vous pouvez cliquer sur ce lien spécial pour obtenir un crédit gratuit de 50 $ sur Vultr (pour les nouveaux utilisateurs uniquement).

Vous avez également besoin d'un nom de domaine, afin que les visiteurs puissent saisir un nom de domaine dans la barre d'adresse du navigateur Web pour accéder à votre site. J'ai enregistré mon nom de domaine chez NameCheap car le prix est bas et ils offrent une protection de confidentialité whois gratuite à vie.

Ce tutoriel suppose que vous avez déjà configuré une pile LAMP sur Ubuntu 20.04. Si ce n'est pas le cas, veuillez consulter le didacticiel suivant.

  • Comment installer la pile LAMP (Apache, MariaDB, PHP7.4) sur Ubuntu 20.04

Après avoir terminé l'installation de LAMP, revenez ici et lisez la suite.

Étape 1 :Téléchargez WordPress

SSH dans votre serveur Ubuntu 20.04 et mettez à jour le logiciel existant.

mise à jour de sudo apt &&mise à niveau de sudo apt

Ensuite, allez sur la page de téléchargement de wordpress.org et téléchargez l'archive zip. Vous pouvez acquérir le lien de téléchargement direct en cliquant avec le bouton droit sur le bouton de téléchargement et en sélectionnant copy link location .

Ensuite, sur la ligne de commande, tapez wget suivi du lien de téléchargement direct pour télécharger WordPress sur votre serveur Ubuntu 20.04.

wget https://wordpress.org/latest.zip

Ensuite, extrayez l'archive dans le /var/www/ répertoire avec unzip .

sudo apt install unzipsudo mkdir -p /var/www/sudo unzip latest.zip -d /var/www/

Le -d L'option spécifie le répertoire cible. Les fichiers Web WordPress seront extraits vers /var/www/wordpress . Nous pouvons renommer ce répertoire comme ci-dessous, il nous est donc facile d'identifier chaque répertoire. Remplacez example.com avec votre vrai nom de domaine.

sudo mv /var/www/wordpress /var/www/example.com

Étape 2 :Créer une base de données et un utilisateur pour le site WordPress

Connectez-vous au shell MariaDB en tant que root avec la commande suivante.

sudo mariadb -u racine

ou

sudo mysql -u racine

Une fois connecté, créez une base de données pour WordPress à l'aide de la commande suivante. Je l'ai nommé wordpress , mais vous pouvez utiliser le nom de votre choix, par exemple le nom de votre site. (N'oubliez pas le point-virgule.)

créer une base de données wordpress ;

Entrez ensuite la commande ci-dessous pour créer un utilisateur de base de données pour WordPress. Cette commande accorde également tous les privilèges de la base de données WordPress à l'utilisateur. Remplacez wpuser et your-password avec votre nom d'utilisateur et votre mot de passe préférés.

accorder tous les privilèges sur wordpress.* à wpuser@localhost identifié par 'your-password' ;

Videz la table des privilèges pour que les modifications prennent effet, puis quittez le shell MariaDB.

vider les privilèges ;quitter ;

Étape 3 :Configurer WordPress

Accédez à votre répertoire WordPress.

cd /var/www/example.com/

Copiez l'exemple de fichier de configuration et renommez-le en wp-config.php .

sudo cp wp-config-sample.php wp-config.php

Modifiez maintenant le nouveau fichier de configuration avec un éditeur de texte en ligne de commande comme Nano.

sudo nano wp-config.php

Recherchez les lignes suivantes et remplacez les textes rouges par le nom de la base de données, le nom d'utilisateur et le mot de passe que vous avez créés à l'étape précédente.

/** Le nom de la base de données pour WordPress */define('DB_NAME', 'database_name_here');/** Nom d'utilisateur de la base de données MySQL */define('DB_USER', 'username_here');/** Base de données MySQL mot de passe */define('DB_PASSWORD', 'password_here');

Enregistrez et fermez le fichier. Pour enregistrer le fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O , puis appuyez sur Enter confirmer. Ensuite, appuyez sur Ctrl+X pour quitter.

Nous devons également définir l'utilisateur Apache (www-data ) en tant que propriétaire du répertoire du site WordPress à l'aide de la commande suivante.

sudo chown www-data:www-data /var/www/example.com/ -R

Étape 4 :Créer un fichier d'hôte virtuel Apache pour WordPress

Exécutez la commande suivante pour créer un fichier d'hôte virtuel pour votre site WordPress dans le /etc/apache2/sites-available/ répertoire.

sudo nano /etc/apache2/sites-available/example.com.conf

Mettez les textes suivants dans le fichier. Remplacez les textes rouges par votre propre nom de domaine. N'oubliez pas de créer des enregistrements A pour votre nom de domaine dans votre gestionnaire DNS.

 ServerName www.example.com ServerAlias ​​example.com DocumentRoot /var/www/example.com #Cela active le fichier .htaccess, qui est nécessaire pour que WordPress Permalink fonctionne.  AllowOverride All  ErrorLog ${APACHE_LOG_DIR}/example.com.error.log CustomLog ${APACHE_LOG_DIR}/example.com.access.log combiné 

Enregistrez et fermez le fichier. Testez ensuite les configurations.

test de configuration sudo apache2ctl

Si vous voyez "Syntaxe OK", activez cet hôte virtuel.

sudo a2ensite example.com.conf

Et rechargez Apache pour que les modifications prennent effet.

sudo systemctl recharger apache2

Définissez un enregistrement A correct pour votre nom de domaine, puis saisissez votre nom de domaine dans la barre d'adresse du navigateur.

exemple.com

ou

example.com/wp-admin/install.php

Vous verrez l'assistant d'installation de WordPress. Sélectionnez une langue.

Si l'assistant d'installation ne s'affiche pas, vous devez probablement installer des extensions PHP7.

sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4- curl php7.4-zip

Ensuite, rechargez Apache et l'assistant devrait maintenant s'afficher.

sudo systemctl recharger apache2

Avant de saisir vos informations sensibles dans l'assistant de configuration, il est recommandé d'activer HTTPS pour empêcher le détournement de trafic.

Étape 5 :Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur le serveur Ubuntu 20.04.

sudo apt install certbot python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d votredomaine.com,www.votredomaine.com

  • --apache :Utilisez le plug-in Apache.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirect  :Forcer HTTPS par redirection 301.
  • --hsts :Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --uir  :Ajoutez l'en-tête "Content-Security-Policy :upgrade-insecure-requests" à chaque réponse HTTP.
  • --staple-ocsp :active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.
  • --email :E-mail utilisé pour l'enregistrement et le contact de récupération.
  • -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Maintenant, si vous rechargez l'assistant de configuration WordPress, vous pouvez voir que HTTP est automatiquement redirigé vers la connexion HTTPS.

Étape 6 :Terminez l'installation avec l'assistant de configuration

Créez un compte administrateur et cliquez sur Installer WordPress bouton.

Et maintenant, votre nouveau site WordPress est installé.

Redirection WWW vers Non-WWW (Ou Vice-Versa)

Nous avons déjà activé la redirection HTTP vers HTTPS, il ne reste plus qu'à rediriger www vers non-www, ou vice versa. Si vous utilisez WordPress, c'est très simple. Accédez simplement au tableau de bord WordPress> Paramètres> Général et définissez votre version préférée (www ou non-www) dans WordPress Address et Adresse du site . Assurez-vous d'inclure le https:// préfixe.

Correction de la double redirection 301

Nous définissons la version de domaine préférée dans l'adresse WordPress et Adresse du site des champs. Cependant, il y a un double problème de redirection 301. Tout d'abord, le serveur Apache redirige HTTP vers HTTPS, puis WordPress redirige vers le domaine www ou non-www.

Certains diront que vous pouvez perdre du jus de lien SEO lorsque vous effectuez une double redirection 301. Si cela vous inquiète, vous pouvez utiliser la méthode ci-dessous pour que toutes les versions de domaine aillent directement à la destination finale, il n'y aura donc qu'une seule redirection 301.

Modifiez votre fichier d'hôte virtuel. (Pas l'hôte virtuel SSL)

sudo nano /etc/apache2/sites-enabled/example.com.conf

Le client CertBot a ajouté les lignes suivantes au fichier pour rediriger HTTP vers HTTPS.

RewriteEngine onRewriteCond %{SERVER_NAME} =example.com [OR]RewriteCond %{SERVER_NAME} =www.example.comRewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] 

Pour rediriger vers un domaine www ou non-www, vous devez modifier la dernière ligne. Remplacez %{SERVER_NAME} avec votre version de domaine préférée comme ci-dessous. (domaine www)

Règle de réécriture ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Si vous préférez un domaine autre que www, remplacez-le par le suivant.

Règle de réécriture ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Ensuite, enregistrez et fermez le fichier. Nous devrons également modifier l'hôte virtuel SSL.

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

Ajoutez les lignes suivantes au-dessus de la balise de fermeture pour rediriger le domaine non-www vers le domaine www.

RewriteEngine onRewriteCond %{SERVER_NAME} =example.comRewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Si vous souhaitez rediriger www vers un domaine autre que www, ajoutez plutôt les lignes suivantes.

RewriteEngine onRewriteCond %{SERVER_NAME} =www.example.comRewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Enregistrez et fermez le fichier. Rechargez le service Apache pour que les modifications prennent effet.

sudo systemctl recharger apache2

Pour être plus clair, voici une capture d'écran de mon fichier d'hôte virtuel Apache et du fichier d'hôte virtuel SSL pour rediriger le domaine non-www vers le domaine www.

Fichier d'hôte virtuel Apache

Fichier d'hôte virtuel SSL Apache

Assurez-vous de définir votre version de domaine préférée dans WoredPress Address et Adresse du site avant de modifier les fichiers de l'hôte virtuel Apache. Si les paramètres de WordPress contredisent la configuration d'Apache, votre site se retrouvera dans une boucle de redirection.

Renouvellement automatique du certificat TLS

Pour renouveler automatiquement le certificat Let's Encrypt, modifiez simplement le fichier crontab de l'utilisateur root.

sudo crontab -e

Ajoutez ensuite la ligne suivante en bas.

@daily certbot renouveler --quiet &&systemctl recharger apache2

Le rechargement d'Apache est nécessaire pour qu'il présente le nouveau certificat aux clients.

Augmenter la taille limite du fichier de téléchargement

Si vous utilisez le module Apache PHP pour exécuter un script PHP, il n'y a pas de limite de taille de fichier de téléchargement. Si vous utilisez PHP-FPM pour exécuter un script PHP, modifiez la limite de taille de fichier afin de pouvoir télécharger de gros fichiers dans la médiathèque WordPress. La taille de fichier maximale par défaut pour le téléchargement dans PHP-FPM est de 2 Mo. Pour augmenter la taille limite de téléchargement, modifiez le fichier de configuration PHP.

sudo nano /etc/php/7.4/fpm/php.ini

Trouvez la ligne suivante (ligne 846).

upload_max_filesize =2M

Modifiez la valeur comme ci-dessous :

upload_max_filesize =20M

Trouvez ensuite la ligne suivante (ligne 694).

post_max_size =8M

Modifiez la taille maximale des données POST que PHP acceptera.

post_max_size =20M

Enregistrez et fermez le fichier. Vous pouvez également exécuter les deux commandes suivantes pour modifier la valeur sans ouvrir manuellement le fichier.

sudo sed -i 's/upload_max_filesize =2M/upload_max_filesize =20M/g' /etc/php/7.4/fpm/php.inisudo sed -i 's/post_max_size =8M/post_max_size =20M/g' /etc /php/7.4/fpm/php.ini

Redémarrez ensuite PHP-FPM.

sudo systemctl redémarrer php7.4-fpm

Comment envoyer des e-mails dans WordPress

Votre site WordPress doit envoyer des e-mails tels que des e-mails d'enregistrement de compte, des e-mails de réinitialisation de mot de passe, des e-mails de notification de commentaires, etc. Au lieu d'utiliser des solutions tierces coûteuses comme Gsuite pour créer des adresses e-mail professionnelles pour votre site Web, vous pouvez suivre ce tutoriel iRedMail pour définir créez votre propre serveur de messagerie avec votre propre nom de domaine, afin que vous puissiez avoir un nombre illimité de boîtes aux lettres et envoyer des e-mails illimités sans vous ruiner.

Notez que c'est une bonne pratique d'installer le serveur de messagerie et WordPress sur deux serveurs privés virtuels différents car vous ne voulez pas que le serveur de messagerie ralentisse la vitesse de votre site WordPress, et le serveur de messagerie divulguera l'adresse IP de votre site WordPress s'ils sont sur le même serveur privé virtuel, ce qui signifie que les pirates peuvent contourner tout CDN (réseau de diffusion de contenu) que vous utilisez et lancer une attaque DDoS directement sur votre serveur d'origine.

Une fois que votre serveur de messagerie est opérationnel, vous pouvez installer un plugin SMTP dans WordPress, afin qu'il puisse se connecter à votre serveur de messagerie et envoyer des e-mails. Accédez à votre tableau de bord WordPress -> Plugins , cliquez sur Ajouter nouveau pour installer un nouveau plugin.

Tapez ensuite WP Mail SMTP dans le champ de recherche. Installez et activez le WP Mail SMTP par WPForms plugin.

Rechargez la page Web du tableau de bord WordPress, vous verrez WP Mail SMTP dans la barre de menu de gauche. Cliquez dessus et sélectionnez Paramètres .

Ensuite, faites défiler jusqu'à la section Mailer. Par défaut, le mailer PHP est sélectionné. Nous devons le remplacer par Autre SMTP .

Faites défiler vers le bas et vous devrez entrer les paramètres SMTP.

  • Entrez le nom d'hôte de votre serveur de messagerie.
  • Sélectionnez TLS comme chiffrement.
  • Utilisez le port 587.
  • Activer l'authentification.
  • Entrez une adresse e-mail de votre domaine et le mot de passe.

Après avoir enregistré les paramètres, vous pouvez tester l'envoi d'e-mails en vous déconnectant du tableau de bord WordPress et en cliquant sur mot de passe perdu lien pour envoyer un e-mail de réinitialisation du mot de passe.


Ubuntu
  1. Comment installer WordPress avec Apache sur Ubuntu 18.04

  2. Comment installer Joomla avec Apache sur Ubuntu 18.04

  3. Comment installer plusieurs WordPress avec Nginx sur Ubuntu 18.04

  4. Installer WordPress avec LAMP Stack sur Ubuntu 20.04

  5. Comment installer phpBB avec Apache sur Ubuntu 20.04

Installer WordPress sur Ubuntu 20.04 avec Nginx, MariaDB, PHP7.4 (LEMP)

Comment installer WordPress 4.7 sur Ubuntu 16.04 avec Apache, MariaDB, PHP7

Installer WordPress sur Ubuntu 18.04 avec Nginx, MariaDB, PHP7.2 (LEMP)

Comment installer LAMP Stack (Apache, MariaDB, PHP7.1) sur Ubuntu 17.10

Comment installer la pile LAMP sur Ubuntu 20.04

Comment installer WordPress avec LAMP sur Ubuntu 20.04