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 :
- Entrez votre adresse email pour recevoir les notifications concernant le renouvellement des certificats (si pas encore fait).
- Acceptez les termes du service en répondant
Y
. - Répondez
N
si vous ne souhaitez pas partager votre adresse email avec l’Electronic Frontier Foundation. - 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.