Installation d’un Site WordPress sur serveur

Illustration montrant la page d'accueil du site Wordpress.org

Dans ce second article, nous aborderons l’installation et la configuration d’un site WordPress sur le serveur que nous avons configuré précédemment (voir ici). Je vais vous guider à travers chaque étape nécessaire pour déployer un site WordPress sécurisé et performant. Suivez attentivement les instructions pour assurer une installation réussie.

Prérequis

Avant de commencer, assurez-vous d’avoir :

  • Un serveur Linux (ici nous utilisons Ubuntu 24.04).
  • Accès SSH au serveur avec des privilèges sudo.
  • Une stack technologique déjà configurée comprenant Apache, PHP, et MySQL (voir mon article détaillé pour plus de détails).
  • Un nom de domaine dont l’entrée A de la zone dns pointe vers l’adresse ip de votre serveur, ici monsite.com

Création d’une Base de Données MySQL et d’un Utilisateur pour WordPress

WordPress nécessite une base de données pour stocker son contenu, ses paramètres et ses utilisateurs. Voici comment créer une base de données dédiée et un utilisateur avec les privilèges appropriés.

Connexion à MySQL

Connectez-vous à l’interface MySQL en utilisant l’une des commandes suivantes :

sudo mysql

ou, si vous utilisez un mot de passe root :

sudo mysql -u root -p

Création de la Base de Données

Créez une base de données nommée wordpress avec le jeu de caractères UTF-8 pour assurer une compatibilité maximale avec les différents types de contenus.

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Création d’un Utilisateur MySQL

Créez un utilisateur MySQL dédié à WordPress. Vous pouvez nommer cet utilisateur wordpressuser et lui attribuer un mot de passe sécurisé. Alternativement, vous pouvez utiliser l’utilisateur user créé précédemment.

CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

Attribution des Privilèges

Attribuez tous les privilèges sur la base de données wordpress à l’utilisateur créé. Cela permettra à WordPress de gérer les tables et les données nécessaires.

GRANT ALL ON wordpress.* TO 'user'@'localhost';

FLUSH PRIVILEGES;

EXIT;

Création d’un Virtual Host dans Apache

Pour héberger votre site WordPress, vous devez configurer un Virtual Host dans Apache. Cela permet de gérer plusieurs sites sur le même serveur en fonction du nom de domaine.

Navigation vers le Répertoire des Sites Disponibles

Accédez au répertoire où sont stockés les fichiers de configuration des sites disponibles d’Apache.

cd /etc/apache2/sites-available

ls -l

Création d’un Fichier de Configuration pour WordPress

Copiez le fichier de configuration par défaut et créez un nouveau fichier spécifique à WordPress.

sudo cp 000-default.conf wordpress.conf

sudo nano wordpress.conf

Configuration du Virtual Host

Modifiez le fichier wordpress.conf en y ajoutant les directives suivantes. Remplacez monsite.com par votre propre nom de domaine et /var/www/wordpress par le chemin souhaité pour votre site WordPress.

<VirtualHost *:80>
    ServerName monsite.com
    DocumentRoot /var/www/wordpress
    AllowEncodedSlashes NoDecode

    <Directory "/var/www/wordpress/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Vérification de la Configuration Apache

Avant de redémarrer Apache, il est crucial de vérifier que la configuration est correcte pour éviter tout dysfonctionnement.

sudo apache2ctl configtest

sudo systemctl restart apache2

Activation du Site WordPress

Activez le nouveau Virtual Host et rechargez Apache pour appliquer les changements.

sudo a2ensite wordpress

sudo systemctl reload apache2

Obtention d’un Certificat SSL avec Certbot

Ici on va utiliser Certbot que nous avons installé dans le précédent guide pour obtenir et renouveller automatiquement un certificat SSL gratuit de Let’s Encrypt.

sudo certbot --apache

Suivez les instructions à l’écran :

  1. Entrez votre adresse email pour recevoir les notifications concernant le renouvellement des certificats (si pas encore fait).
  2. Acceptez les termes du service en répondant Y.
  3. Répondez N si vous ne souhaitez pas partager votre adresse email avec l’Electronic Frontier Foundation.
  4. Choisissez le numéro correspondant à votre domaine (monsite.com) pour configurer automatiquement HTTPS.

Vérification de l’Obtention du Certificat

Assurez-vous que Certbot a correctement configuré le certificat SSL en vérifiant les messages de succès affichés à l’écran.

Vous pouvez également tester le renouvellement automatique avec la commande suivante :

sudo certbot renew --dry-run

Installation de WordPress

Création du Répertoire pour WordPress

Créez le répertoire dédié pour votre site WordPress (attention à bien mettre exactement le même que ce que vous avez configuré dans le vhost apache) et téléchargez les fichiers nécessaires.

cd /var/www

sudo mkdir wordpress

Téléchargement et Extraction de WordPress

Téléchargez la dernière version de WordPress et extrayez les fichiers.

Voici le détail de ces commandes :

  • on se place dans le répertoire tmp
  • on télécharge la dernière archive de WordPress
  • on extrait cette archive
  • on crée le fichier .htaccess qui sera utilisé par WordPress
  • On copie le fichier de configuration de démonstration vers le fichier définitif
  • on crée le dossier upgrade qui sera utilisé par WordPress
  • enfin on copie tout le contenu du dossier WordPress de tmp vers son dossier définitif (/var/www/wordpress)
cd /tmp

curl -O https://wordpress.org/latest.tar.gz

tar xzvf latest.tar.gz

touch /tmp/wordpress/.htaccess

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

mkdir /tmp/wordpress/wp-content/upgrade

sudo cp -a /tmp/wordpress/. /var/www/wordpress

Vérification des Fichiers

Assurez-vous que tous les fichiers WordPress sont correctement copiés dans le répertoire de votre site.

cd /var/www/wordpress
ls -l

Configuration des Permissions

Attribuez les bonnes permissions aux fichiers et répertoires pour assurer la sécurité et le bon fonctionnement de WordPress.

  • ici on « donne » le dossier wordpress à l’utilisateur et au groupe utilisé par Apache (www-data)
  • on attribue la permission 750 à tous les dossiers
  • on attribue la permisser 640 à tous les fichiers
sudo chown -R www-data:www-data /var/www/wordpress

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;

sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Génération des Clés de Sécurité

WordPress utilise des clés de salage pour améliorer la sécurité des sessions et des cookies. Générez ces clés en utilisant l’API de WordPress.

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Copiez les clés générées et collez-les dans une note sur le côté. On remplacera les placeholders dans le fichier wp-config.php.

Modification du Fichier wp-config.php

Ouvrez le fichier de configuration de WordPress et définissez les paramètres de connexion à la base de données ainsi que les clés de sécurité.

sudo nano /var/www/wordpress/wp-config.php

Modifiez les lignes suivantes en remplaçant les valeurs de la base de données :

define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'wordpressuser' );

/** Database password */
define( 'DB_PASSWORD', 'password' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

Remplacez les clés de salage par celles que vous avez copiées précédemment (attention à ne jamais réutiliser les mêmes clés sur différents sites web):

define('AUTH_KEY',         'GWw|LaW3W2@mjj]|=3{9D<zS<]I28}?F5=N4^M:aOj1=8Y2uAZK)75^cTK[wpplj');

define('SECURE_AUTH_KEY',  'E3A~<jnJ;Cv0auAtD-q([^1)zb#XAvnjt{5?k%}eO-7S=V|fu{J>|oE,#lS+gSun');

define('LOGGED_IN_KEY',    '>j(=%U<#35RJpu9Vxz>/f#7A|+_nWXjf&DV4L7*6L|,O%xD-/{<}BVwQ|RNJRW>H');

define('NONCE_KEY',        ';AN7,KUy*#E{WF;U)Vr6Xf,8K9meHSI2j+Kbp$cu/._|nu|i8>V8/<R5gmmB6a#i');

define('AUTH_SALT',        'R|;Y(2U%Gfm8/hlc9Veqf:SvzpjP|mc 21yB8<t5~7@q7+k;~@V$qXF1,??aR=HR');

define('SECURE_AUTH_SALT', '+XU+GQy-hRW8q+lnw,MtNu)|q-AK|lYIjk>v!YRvW-^3;N5-{KU $t(&;2Go|jL^');

define('LOGGED_IN_SALT',   'Qb)v7SLJ&T>|eRf~+9INFDNfd 494-=#Qp$uZR+x=)#|X=r;j{K%F-TS:fM`NPpa');

define('NONCE_SALT',       'Zqaf;1Xp~JO@[6>J`J7O$=$:v<:z+a$(6=.hEwc+$&!&(JgWJ%$)Ry|vA8cWNs[f');

Ajoutez également la méthode de gestion des fichiers pour éviter les invites FTP lors des mises à jour :

/* Add any custom values between this line and the "stop editing" line. */

define('FS_METHOD', 'direct');

/* That's all, stop editing! Happy publishing. */

Finalisation de l’Installation de WordPress

Ouvrez votre navigateur et accédez à l’URL de votre site (http://monsite.com) pour terminer la configuration de WordPress. Suivez les instructions à l’écran pour définir le titre du site, créer un compte administrateur, et finaliser l’installation.

Configuration Post-Installation de WordPress

Une fois WordPress installé, il est recommandé de procéder à quelques configurations supplémentaires pour sécuriser et optimiser votre site.

Suppression des Thèmes Inutilisés

Accédez à Apparence > Thèmes dans le tableau de bord WordPress et supprimez les thèmes par défaut que vous n’utilisez pas. Cela réduit la surface d’attaque potentielle et améliore les performances.

Suppression des Extensions Inutilisées

Allez dans Extensions > Extensions installées et désactivez, puis supprimez les extensions par défaut que vous n’utilisez pas. Gardez uniquement les extensions nécessaires pour minimiser les risques de sécurité et optimiser les performances.

Mise à Jour de WordPress

Rendez-vous dans Tableau de bord > Mises à jour et installez toutes les mises à jour disponibles, y compris les traductions. Cela garantit que votre site bénéficie des dernières fonctionnalités et correctifs de sécurité.

Désactivez aussi les mises à jour automatique, cela vous évitera de retrouver un site cassé après une mise à jour majeure et des extensions non compatible.

Configuration des Réglages Généraux

Dans Réglages > Général, ajoutez un slogan et un favicon pour personnaliser l’apparence de votre site.

Configuration des Réglages de Lecture

Allez dans Réglages > Lecture et configurez la page d’accueil selon vos préférences. Vous pouvez choisir d’afficher les derniers articles ou une page statique.

Configuration des Permaliens

Pour améliorer le référencement et la lisibilité des URLs, configurez la structure des permaliens en allant dans Réglages > Permaliens et sélectionnez l’option Titre de la publication. Enregistrez les modifications.





Structure des permaliens : /%postname%/

Conclusion

Vous avez maintenant un site WordPress fonctionnel et sécurisé sur votre serveur. Cette configuration de base est optimisée pour la performance et la sécurité, vous offrant une plateforme solide pour développer et gérer votre contenu.

N’hésitez pas à explorer davantage les options de personnalisation et les extensions disponibles dans l’écosystème WordPress pour enrichir votre site selon vos besoins spécifiques.

Pour les prochains articles, nous aborderons des sujets tels que l’installation d’un site e-commerce Magento, le développement en local d’un site WordPress avec Docker, le déploiement en production, et bien d’autres sujets !

Si vous avez des questions ou besoin d’assistance supplémentaire, n’hésitez pas à me contacter.