Comment installer WordPress avec Apache sur Debian 12/11/10

WordPress est un système de gestion de contenu (CMS) largement utilisé qui permet aux utilisateurs de créer et de gérer facilement des sites Web. Le combiner avec Apache, MariaDB ou MySQL et PHP forme une pile LAMP robuste, idéale pour l'hébergement de sites Web dynamiques. L'installation de WordPress sur Debian 12, 11 ou 10 implique de configurer ces composants pour qu'ils fonctionnent ensemble de manière transparente, garantissant ainsi un environnement d'hébergement Web fiable et évolutif.

Ce guide vous guidera tout au long du processus d'installation de WordPress avec Apache, MariaDB ou MySQL et PHP sur Debian 12, 11 ou 10 à l'aide du terminal de ligne de commande. De plus, il couvrira des conseils pour créer un certificat SSL avec Let's Encrypt pour sécuriser votre site et résoudre les problèmes WordPress courants tels que les boucles de redirection HTTPS, les erreurs de session PHP et les boucles de redirection de nom de domaine si vous les rencontrez.

Installer Apache – Partie 1 de la configuration de la pile LAMP

Apache 2, un serveur web, représente le premier composant essentiel de la pile LAMP sur Debian. Commencez par installer Apache 2 avec la commande suivante :

sudo apt install apache2

Les personnes intéressées par une version plus récente d'Apache peuvent se référer à notre guide détaillé sur mise à niveau d'Apache dans Debian.

Après l'installation, confirmez la réussite de l'installation d'Apache en vérifiant sa version :

sudo apache2 -v

Attendez-vous à une réponse du type Version du serveur : Apache/xxx (Debian). De plus, vérifiez l'état opérationnel d'Apache en utilisant :

Server version: Apache/x.x.x (Debian)

Pour confirmer davantage que le serveur Apache est opérationnel, utilisez la commande systemctl :

systemctl status apache2

Dans le cas où Apache n'est pas actif, assurez son démarrage automatique et son activation immédiate avec :

sudo systemctl enable apache2 --now

Pour tester les fonctionnalités d'Apache, visitez l'adresse IP locale de votre serveur dans un navigateur Web, généralement http://127.0.0.1 ou http://localhost.

http://127.0.01
http://localhost

En cas de problèmes d'accès, notamment avec le pare-feu UFW, activez le trafic HTTP sur le port 80 :

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Cette commande ajuste les règles de pare-feu pour autoriser le trafic Web via le port 80.

Installez MySQL ou MariaDB – Partie 2 de la configuration de la pile LAMP

Les versions récentes de Debian sont passées de MySQL à MariaDB. Si MySQL est préféré, consultez notre guide sur installer MySQL 8.0 sur Debian. Pour MariaDB, en particulier les versions les plus récentes comme 10.5, 10.6 ou 10.10, 11.4, suivez notre Guide d'installation de MariaDB en utilisant le référentiel APT officiel MariaDB.org.

Installer MariaDB via APT

Avec MariaDB par défaut dans Debian, installez-le en utilisant :

sudo apt install mariadb-server mariadb-client

Post-installation, validez l'installation de MariaDB :

mariadb --version

Recherchez une réponse similaire à mariadb Ver 15.1 Distrib xxx-MariaDB :

mariadb  Ver 15.1 Distrib x.x.x-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper

Vérifiez le statut de MariaDB avec :

systemctl status mariadb

Si MariaDB n'est pas en cours d'exécution, démarrez-le et activez-le :

sudo systemctl enable mariadb --now

Navigation dans les commandes essentielles du service MariaDB

Pour les nouveaux utilisateurs de MariaDB, voici un guide concis de quelques commandes de service fondamentales essentielles pour une gestion efficace de la pile LAMP sur un serveur Debian :

Arrêt de MariaDB :

sudo systemctl stop mariadb

Démarrage de MariaDB :

sudo systemctl start mariadb

Activation de MariaDB pour démarrer automatiquement avec le système :

sudo systemctl enable mariadb

Désactivation de MariaDB à partir du démarrage automatique :

sudo systemctl disable mariadb

Redémarrez le service MariaDB :

sudo systemctl restart mariadb

Avoir ces commandes à portée de main simplifie la gestion de l'élément MariaDB dans votre pile Debian LAMP.

Sécuriser MariaDB avec le script de sécurité fourni

Les nouvelles installations MariaDB sont livrées avec des configurations par défaut qui peuvent ne pas être sécurisées de manière optimale, exposant potentiellement votre système à des accès ou à des attaques non autorisés. Cependant, MariaDB inclut un script de sécurité pour renforcer ces paramètres après l'installation.

Commencez à améliorer votre sécurité MariaDB en exécutant le script mysql_secure_installation avec la commande suivante :

sudo mysql_secure_installation

Pendant l'exécution du script, vous serez invité à prendre diverses mesures de sécurité :

  • Définissez un mot de passe pour les comptes root.
  • Supprimez les comptes root accessibles depuis les hôtes distants.
  • Éradiquez les comptes d’utilisateurs anonymes.
  • Supprimez la base de données de test par défaut accessible aux utilisateurs anonymes.

En règle générale, il est conseillé de répondre par (Y) à ces invites afin de mettre en œuvre les améliorations de sécurité suggérées.

[joshua@debian ~]$ sudo mariadb-secure-installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Installer PHP – Partie 3 de la configuration de la pile LAMP

PHP sert d'intermédiaire entre Apache et MariaDB. Les distributions Debian sont livrées avec différentes versions de PHP. Pour des versions spécifiques ou des versions plus récentes comme PHP 8.x, consultez notre Guide d'installation PHP pour Debian.

Pour installer PHP avec Apache, exécutez :

sudo apt install phpx.x libapache2-mod-phpx.x

Pour plus de clarté, un exemple concret avec des installations d'extension WordPress typiques serait pour Debian 12 :

sudo apt install php libapache2-mod-php8.2 php8.2-cli php8.2-common php8.2-zip php8.2-curl php8.2-mysql

Remarque : Debian 12, 11 et 10 ont des versions par défaut différentes, sauf si vous installez une version personnalisée à partir de notre guide mentionné au début. N'oubliez pas de remplacer la version 8.2 par la version que vous utilisez.

Vérifiez votre version PHP :

php -v

Après l'installation, le module se charge généralement automatiquement. Mais si un chargement manuel est nécessaire, utilisez cette commande : sudo a2enmod php{version}.

sudo a2enmod php8.2

Comme vu ci-dessus, le module est déjà chargé.

Pour terminer le processus d'installation, il est indispensable de redémarrer le serveur Apache pour intégrer le module PHP :

sudo systemctl restart apache2

Lors du passage d'une version de PHP à l'autre, par exemple de la 8.0 à la 8.1, il est crucial de d'abord désactiver la version actuellement active. Pour désactiver PHP 8.0, utilisez :

sudo a2dismod php8.0

Ensuite, activez la nouvelle version, comme PHP 8.2 :

sudo a2enmod php8.2

Suite à cela, redémarrez le serveur Apache pour appliquer le nouveau module PHP :

sudo systemctl restart apache2

Installer le back-end WordPress

Téléchargement de WordPress

Tout d’abord, vous devez télécharger la dernière version de WordPress, ce qui se fait rapidement avec le permalien suivant depuis WordPress :

wget https://wordpress.org/latest.tar.gz

Extraire le répertoire WordPress

Le fichier téléchargé est une archive tar.gz compressée. Utilisez la commande tar pour extraire son contenu. Cette étape est vitale car elle décompresse tous les fichiers WordPress nécessaires à l’installation :

sudo tar -xzvf latest.tar.gz -C /var/www/html/

Définition des autorisations et de la propriété

Il est essentiel de définir les autorisations et la propriété correctes pour le répertoire WordPress. Cela garantit que le serveur Web peut accéder et modifier correctement les fichiers pour les mises à jour, les installations de plugins et d'autres opérations.

Changer de propriétaire

La commande chown modifie la propriété de tous les fichiers et répertoires de WordPress en faveur de l'utilisateur du serveur Web, généralement www-data. Cette étape est critique pour que WordPress fonctionne correctement sur le serveur :

sudo chown -R www-data:www-data /var/www/html/wordpress/

Modification des autorisations :

Définir les bonnes autorisations est crucial pour la sécurité et la fonctionnalité. La commande chmod définit les autorisations de répertoire sur 755 et les autorisations de fichiers sur 644. Cette configuration permet à WordPress de fonctionner de manière sécurisée et efficace :

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

Création d'une base de données pour WordPress

WordPress utilise une base de données pour stocker toutes les données du site. Cette section vous guide dans la création d'une nouvelle base de données et d'un nouvel utilisateur pour WordPress à l'aide de MariaDB, un serveur de base de données populaire.

Accès au shell MariaDB :

Connectez-vous à MariaDB en tant qu'utilisateur root. Cette étape permet de créer et de gérer des bases de données et des utilisateurs :

sudo mariadb -u root

Alternativement, si vous préférez MySQL :

sudo mysql -u root

Création de la base de données WordPress :

Exécutez la commande SQL pour créer une nouvelle base de données nommée WORDPRESSDB. Remplacez WORDPRESSDB par le nom de la base de données souhaitée. Cette base de données contiendra toutes les données WordPress :

CREATE DATABASE WORDPRESSDB;

Création d'un utilisateur de base de données sécurisée :

Pour des raisons de sécurité, créez un utilisateur unique pour WordPress. Cette pratique limite l’accès et améliore la sécurité. Remplacez « WPUSER » et « PASSWORD » par le nom d'utilisateur et le mot de passe que vous avez choisis :

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

Remarque : WPUSER et PASSWORD peuvent être ce que vous désirez. Assurez-vous que toutes les autres commandes reflètent ce que vous avez défini à ce stade lorsque vous traitez le côté base de données de l'installation de WordPress avec LAMP.

Accorder des privilèges :

Attribuez les privilèges nécessaires au nouvel utilisateur pour gérer la base de données WordPress. Cette étape est cruciale pour garantir que WordPress puisse interagir avec sa base de données :

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

Application des modifications :

Après avoir configuré l'utilisateur et les privilèges, videz les privilèges pour appliquer les modifications et quittez le shell MariaDB :

FLUSH PRIVILEGES;
EXIT;

Configuration de WordPress

Configurez la configuration WordPress en éditant le fichier wp-config.php. Cela implique de spécifier les détails de la base de données et d'autres configurations.

Accédez au répertoire WordPress :

Accédez au répertoire d'installation de WordPress :

cd /var/www/html/wordpress/

Configuration de wp-config.php :

Renommez l'exemple de fichier de configuration et modifiez-le pour inclure les détails de votre base de données :

sudo mv wp-config-sample.php wp-config.php

À l’aide d’un éditeur de texte, affichez le fichier wp-config.php nouvellement renommé. Dans notre exemple, nous utiliserons nano.

sudo nano wp-config.php

Mettez à jour le fichier avec le nom de votre base de données, votre utilisateur et votre mot de passe. Vous pouvez également définir le jeu de caractères et le classement de la base de données :

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 
define( 'DB_NAME', 'WORDPRESSDB' );

/* MySQL database username */ 
define( 'DB_USER', 'WPUSER' );

/* MySQL database password */
define( 'DB_PASSWORD', 'YOUR PASSWORD' );

/* MySQL hostname, change the IP here if external DB set up */ 
define( 'DB_HOST', 'localhost' );

/* Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/* The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

Vous pouvez éventuellement ajouter des configurations pour les modifications directes de fichiers, les limites de mémoire et les préfixes de table :

/* Save files direct method */
 define( 'FS_METHOD', 'direct' );

/* Increase memory limit, 256MB is recommended */
 define('WP_MEMORY_LIMIT', '256M');

/* change WordPress database table prefix if wanted */
 $table_prefix = 'wp_';

Définition des clés de sécurité WordPress

Générez des clés d'authentification uniques pour WordPress. Visiter le API de clé secrète WordPress et remplacez les lignes d'espace réservé dans le fichier wp-config.php par vos clés générées.

Configuration d'Apache pour WordPress

Configurez un hôte virtuel pour votre site WordPress dans Apache. Cette étape est cruciale pour diriger le trafic Web vers votre installation WordPress.

Création du fichier hôte virtuel :

Créez un nouveau fichier de configuration pour votre site WordPress :

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

Configurez le fichier avec votre domaine, la racine du document et les directives nécessaires :

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DocumentRoot /var/www/html/wordpress
    <Directory "/var/www/html/wordpress">
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/wordpress.error.log
    CustomLog ${APACHE_LOG_DIR}/wordpress.access.log combined
</VirtualHost>

Ensuite, exécutez un test sec de votre hôte virtuel à l'aide de la commande suivante.

sudo apache2ctl configtest

Exemple de sortie :

Syntax OK

Comme mentionné ci-dessus, la configuration de l'hôte virtuel ne comporte aucune erreur, vous pouvez donc maintenant activer votre hôte virtuel.

sudo a2ensite example.com.conf

Enfin, redémarrez votre service Apache.

sudo systemctl restart apache2

Installer l'interface WordPress

Accéder à l'adresse d'installation

Pour lancer l'installation de WordPress, accédez au domaine de votre site Web. Utilisez l'une de ces URL :

  • https://www.yoursite.com
  • https://www.yoursite.com/wp-admin/install.php

En accédant au site, vous rencontrerez la page des paramètres de langue. Ici, vous pouvez sélectionner la langue préférée pour votre installation WordPress.

Configuration du compte administrateur

La prochaine étape consiste à créer votre compte administrateur. Il s'agit d'une étape cruciale car elle configure votre nom d'utilisateur et votre mot de passe, que vous utiliserez pour vos futures connexions. N'oubliez pas que ces informations d'identification sont modifiables à tout moment.

Configuration de la visibilité des moteurs de recherche

Pour les sites Web en construction, il est conseillé d'empêcher les moteurs de recherche d'indexer votre site. Sélectionnez l'option « décourager fortement les moteurs de recherche d'indexer ce site » lors de la configuration. Cette étape garantit que les moteurs de recherche comme Google et Bing n'indexent pas votre site Web en cours de travail (WIP). Vous pouvez modifier ce paramètre une fois que votre site est prêt à être consulté par le public.

Achèvement de l'installation de WordPress

Une fois ces étapes terminées et connecté, votre site WordPress, alimenté par la pile LAMP sur Debian, est installé avec succès et prêt pour la personnalisation et la création de contenu.

Créer un certificat SSL gratuit Let's Encrypt

Pour une sécurité renforcée sur Debian, il est crucial d'utiliser les certificats SSL Let's Encrypt avec votre installation WordPress Apache. Let's Encrypt est une autorité de certification gratuite et automatisée du Internet Security Research Group (ISRG). Il renforce la crédibilité de votre site en activant HTTPS, un protocole de communication sécurisée sur un réseau informatique.

Installation de Certbot pour l'intégration SSL

La première étape pour sécuriser votre site avec Let's Encrypt est d'installer Certbot. Certbot est un outil logiciel qui automatise l'obtention et l'installation de certificats SSL. Installez Certbot à l'aide de la commande suivante :

sudo apt install python3-certbot-apache -y

Générer un certificat SSL

Après avoir installé Certbot, générez un certificat SSL avec cette commande :

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Personnalisez you@example.com et www.example.com avec votre adresse e-mail et votre domaine. Cette étape sécurise votre site avec les redirections HTTPS, les en-têtes Strict-Transport-Security et OCSP Stapling, garantissant une sécurité renforcée.

Renouvellement automatique du certificat SSL

Les certificats Let's Encrypt sont valables 90 jours. Pour automatiser le renouvellement, configurez une tâche cron. Modifiez le fichier crontab en utilisant :

sudo crontab -e

Ajoutez cette ligne pour planifier les contrôles quotidiens de renouvellement :

0 3 * * * /usr/bin/certbot renew --quiet

Cette commande vérifie le renouvellement quotidiennement à 3 heures du matin et renouvelle le certificat silencieusement si nécessaire.

Transition vers HTTPS

Après ces configurations, votre site utilisera HTTPS, redirigeant tout le trafic HTTP vers une connexion HTTPS sécurisée. Cela garantit le cryptage des données entre votre serveur et les navigateurs des utilisateurs.

Configuration du pare-feu UFW pour la pile LAMP

Lorsque vous utilisez Apache avec votre pile LAMP, il est important de configurer le pare-feu simple (UFW). UFW simplifie la gestion du pare-feu et est essentiel pour contrôler l'accès aux services de votre serveur.

Installation d'UFW

Si UFW n'est pas encore installé, ajoutez-le avec :

sudo apt install ufw -y

Activez UFW pour démarrer au démarrage du système :

sudo ufw enable

Configuration des profils Apache dans UFW

Apache s'intègre à UFW et fournit plusieurs profils. Pour les lister, utilisez :

sudo ufw app list

La sortie affiche des profils tels que « Apache » (HTTP), « Apache Secure » (HTTPS) et « Apache Full » (HTTP et HTTPS). Choisissez en fonction de votre configuration.

Activation des profils UFW

Pour une configuration de base sans SSL, activez le profil Apache :

sudo ufw allow 'Apache'

Pour le trafic HTTPS (après avoir configuré SSL), activez « Apache Secure » :

sudo ufw allow 'Apache Secure'

Pour autoriser à la fois HTTP et HTTPS, utilisez :

sudo ufw allow 'Apache Full'

Résoudre les problèmes WordPress courants

Résoudre les erreurs de session PHP

Les erreurs de session PHP, souvent rencontrées lors de l'utilisation de plugins WordPress spécifiques, sont généralement dues à des autorisations incorrectes dans le répertoire /var/lib/php/sessions/.

Résolvez ce problème efficacement avec la commande suivante :

sudo chown -R www-data:www-data /var/lib/php/sessions/

Cette commande modifie la propriété du répertoire de sessions en l'utilisateur et le groupe www-data. Ce faisant, WordPress obtient les autorisations nécessaires pour écrire des données de session, ce qui est crucial pour les plugins gérant des tâches automatisées telles que les intégrations de réseaux sociaux. La correction des erreurs de session PHP améliore les performances de votre site Web et l'expérience utilisateur.

Aborder la boucle de redirection HTTPS dans WordPress

Une boucle de redirection HTTPS dans WordPress, se produisant généralement après l'activation de HTTPS, peut être corrigée en modifiant le fichier wp-config.php. Cette boucle se produit lorsque WordPress redirige continuellement vers HTTPS, mais que le processus ne se termine jamais.

Modification du fichier wp-config.php

Pour résoudre ce problème, insérez ces lignes dans votre wp-config.php :

define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

Explication du code :

  • La ligne FORCE_SSL_ADMIN garantit que toutes les pages d'administration utilisent HTTPS.
  • Le code suivant vérifie l'en-tête HTTP_X_FORWARDED_PROTO pour « https ». Lorsqu'il est détecté, il définit la variable du serveur HTTPS sur « on », signalant une connexion sécurisée.

La mise en œuvre de ces changements devrait résoudre la boucle de redirection HTTPS, garantissant le bon fonctionnement de votre site WordPress avec sa connexion sécurisée.

Correction de la boucle de redirection de nom de domaine

Les boucles de redirection dans WordPress peuvent résulter de divergences entre le nom de domaine dans le fichier wp-config.php et le domaine réel de votre site.

Vérification du fichier wp-config.php

Vérifiez et ajustez le nom de domaine dans votre wp-config.php :

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Assurez-vous que le nom de domaine ici correspond au domaine réel de votre site Web. Si le problème persiste malgré des paramètres de domaine corrects, le problème peut provenir des configurations du serveur. Dans de tels cas, il est conseillé de contacter votre fournisseur d’hébergement pour obtenir de l’aide.

Conclusion

En suivant ce guide, vous avez installé avec succès WordPress avec Apache, MariaDB ou MySQL et PHP sur Debian 12, 11 ou 10. Votre site WordPress est désormais configuré au sein d'une pile LAMP robuste, garantissant des performances et une fiabilité optimales. De plus, vous avez sécurisé votre site avec un certificat SSL de Let's Encrypt, améliorant ainsi la sécurité et la fiabilité de votre site.

Pendant que vous continuez à gérer votre site WordPress, soyez vigilant quant à la résolution des problèmes courants tels que les boucles de redirection HTTPS, les erreurs de session PHP et les boucles de redirection de nom de domaine. La mise à jour régulière de vos composants logiciels et plugins WordPress est cruciale pour maintenir la sécurité et les performances. Pour toute maintenance ou dépannage en cours, reportez-vous à ce guide ou consultez des ressources supplémentaires pour assurer le bon fonctionnement et la sécurité de votre site.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire