Introduction
Installer Wordpress de A à Z à partir d'un VPS Ubuntu 18.04
Dans cet article, probablement le plus long jamais rédigé sur ce site web, nous allons voir comment créer mon site internet professionnel Wordpress de A à Z sur une nouvelle installation d’un VPS ou d’un serveur dédié avec Ubuntu 18.04. Je vais vous expliquer et partager avec vous quelques astuces qui vous permettrons de faire tourner votre site internet facilement et rapidement depuis un serveur, sans aucune connaissance technique. Ce tutoriel se focalise sur l’installation de Wordpress mais toute la première partie permettra d’installer en théorie n’importe quel CMS ou même de vous lancer dans le développement de votre site internet from scratch. N’hésitez pas à me faire un retour en commentaire si cet article vous a été utile ou si une partie vous à poser problème.
Avant de pouvoir installer Wordpress, nous allons nous occuper d’installer tout l’environnement nécessaire : apache2 qui est un serveur HTTP (vous pouvez installer nginx aussi), mariadb qui permettra d’installer et de gérer la base de donnée ainsi que Php 7.4. Pour des raisons évidentes de performances et de sécurité, nous allons également activer le http/2, installer un certificat SSL et apprendre à protéger notre serveur.
Pré-requis pour suivre ce tutoriel : un serveur dédié ou un VPS avec une nouvelle installation ubuntu 18.04 et un accès SSH (vous pouvez utiliser par exemple le logiciel PuTTY.
Navigation
Les différentes étapes pour installerWordpress sur votre VPS
Étape 1 : installer le serveur HTTP Apache2
Étape 2 : Installer le serveur de base de donnée MariaDB
Étape 3 : Installer PHP 7.4 et les modules associés
Étape 4 : Créer une base de donnée
Étape 5 : Télécharger et installer Wordpress
Étape 6 : Installer un certificat de sécurité SSL et activer le https
Code
Étape 1 : Installer Apache2 sur Ubuntu 18.04
Wordpress a besoin d'un serveur HTTP pour fonctionner
WordPress à besoin d’un serveur web et apache2 est une solution simple et rapide. Pour installer Apache2 sur ubuntu 18.04, exécutez la commande suivante depuis votre terminal :
sudo apt update
sudo apt install apache2
Voici les commandes associés à Apache2 pour voir arrêter, démarrer et activer les services Apache2 après un redémarrage de votre serveur :
sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
Félicitation, vous venez d’installer un serveur web et de compléter la première étape pour installer wordpress sur Ubuntu 18.04!
Explication
Pourquoi utiliser Apache2 ?
Apache2 est un logiciel de serveur web http gratuit et open-source, maintenu et développé par Apache Software Foundation. Il permet de servir du contenu sur le web. Le serveur web traite les fichiers écrits dans différents langages de programmations (PHP, javascript, css…) et les transforment en fichiers HTML statiques avant d’en diffuser le contenu dans le navigateur des visiteurs de votre site internet. C’est un outil de communication entre le serveur et le client. Il existe également d’autre logiciel serveur tel que Nginx.
A moins que vous n’ayez un site internet avec un énorme trafic (dans ce cas, orienté vous vers la solution Nginx), Apache2 sera le choix idéal pour installer votre site Wordpress. En effet Apache2 est Open-source et gratuit même pour un usage commercial, il est fiable, stable et dispose de mise à jour et correctifs de sécurité réguliers et il est facile à configurer pour un débutant. Apache2 sera parfaitement adapté pour d’autres CMS tel que Joomla, prestashop, Drupal et les Framework web comme Django, Laravel, etc…
Code
Étape 2 : Installer MariaDB sur Ubuntu 18.04
Wordpress a besoin d'un système de gestion de base de données pour fonctionner
Wordpress a besoin d’un serveur SQL pour fonctionner. Pour installer MariaDB, exécutez la commande suivante :
sudo apt-get install mariadb-server mariadb-client
Voici les commandes associés à MariaDB pour voir arrêter, démarrer et activer les services Apache2 après un redémarrage de votre serveur :
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Suite à l’installation, nous allons sécuriser MariaDB en créant un mot de passe. Exécutez la commande suivante :
sudo mysql_secure_installation
Répondez au questions en suivant ce guide :
Enter current password for root (enter for none): Appuyez juste sur Entrée
Set root password? [Y/n]: Y
New password: Entrez votre mot de passe
Re-enter new password: Répetez le mot de passe
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Puis redémarrez MariaDB pour prendre en compte les modifications à l’aide de la commande suivante :
sudo systemctl restart mariadb.service
Explication
Pourquoi utiliser MariaDB ?
MariaDB est un système de gestion de base de données créé par le développeur à l’origine de MySQL et édité sous licence GPL conférant au logiciel l’assurance de rester libre. MariaDB possède plus de fonctionnalité que MySQL et est surtout mieux optimisé au niveau des requêtes. MariaDB est notamment utilisé par Wikipedia, WordPress.com et Google, alors pourquoi pas vous ?
Code
Étape 3 : Installer php 7.4 et ses modules sur Ubuntu 18.04 ainsi que HTTP/2
Wordpress à besoin que PHP soit installé pour fonctionner
Le PHP 7.4 n’est peut être pas disponible par défaut dans les répertoires de Ubuntu, il faudra donc l’installer depuis un troisième partie. Depuis votre console, exécutez la commande suivante :
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Vous pouvez ensuite lancer l’installation de PHP et de ses modules. C’est une liste non exhaustive de modules PHP, il en existe plein d’autre qui peuvent être installer selon vos besoins, il s’agit ici des plus utilisés qui doivent couvrir la plupart des besoins :
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-mysql php7.4-cli php7.4-zip php7.4-curl
Installer et activer le protocole HTTP2 sur apache2
Pour activer le HTTP2, technologie très intéressante et importante pour optimiser les performances de vos sites internet, nous allons remplacer le php 7.4 classique par le php 7.4-fpm :
sudo apt install php7.4-fpm
Il faut activer les modules apache requis proxy_fcgi et setenvif :
sudo a2enmod proxy_fcgi setenvif
Il faut ensuite activer votre php fpm et désactiver la version classique, puis relancer apache2 :
sudo a2enconf php7.4-fpm
sudo a2dismod php7.4
sudo service apache2 restart
le module MPM (Multi-Processing Module) d’apache2 activé par défaut n’est pas compatible avec le http2, il faut le modifier et relancer les services :
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo service apache2 restart && sudo service php7.4-fpm restart
Ajouter ensuite cette ligne Protocols h2 h2c http/1.1
à la fin du fichier /etc/apache2/apache2.conf pour que http2 soit actif sur tout vos sites internet.
sudo nano /etc/apache2/apache2.conf
Activez le module http2 de apache2 :
sudo a2enmod http2
On vérifie ensuite si il n’y a pas d’erreur avec apache2 et on relance le service :
sudo apachectl configtest && sudo service apache2 restart
Configuration de php.ini pour php7.4-fpm
Après l’installation, on va configurer le PHP pour améliorer les performances et augmenter certaines limitations. Pour cela ouvrez le fichier php.ini à l’aide de la commande suivante :
sudo nano /etc/php/7.4/fpm/php.ini
Si jamais votre terminal vous retourne l’erreur suivante : sudo: nano: command not found
, cela veut dire que nano n’est pas installé sur votre VPS. Vous pouvez l’installer avec la commande suivante : sudo apt-get install nano
Une fois le fichier php.ini ouvert, changez les lignes suivantes avant d’enregistrer (ctrl + X) :
file_uploads = On
allow_url_fopen = On
memory_limit = 512M
max_input_vars = 6000
upload_max_filesize = 100M
max_execution_time = 360
Explication
Pourquoi installer PHP sur mon VPS ?
Le PHP est un langage de programmation open-source côté serveur (invisible pour le visiteur), principalement utilisé pour le développement web.
Le PHP est l’un des langages de programmation le plus utilisé, on le retrouve dans 78.9% de tout les sites existants, soit près de 8 sites web sur 10.
Wordpress est majoritairement écris en PHP, malgré ses développements récents codé en JavaScript (React, JSX et ES6), ce qui rend ce langage vitale pour sa bonne exécution.
La version PHP 7.4 offre des améliorations de performances et de sécurité significatives qui seront importantes pour optimiser votre site internet.
Code
Étape 4 : Créer une base de donnée
Wordpress a besoin d'une base de donnée pour stocker son contenu
Afin de pouvoir installer Wordpress, nous allons créer une base de donnée.
Commençons par nous connecter à MariaDB :
sudo mysql -u root -p
Puis créez une nouvelle base de donnée (remplacez nom_base_de_donnee
par le nom que vous souhaitez donner à votre base de donnée. Pour des raisons de sécurité, je vous encourage à changer cette information et de ne pas exécuter arbitrairement la commande fournit ci-dessous) :
CREATE DATABASE nom_base_de_donnee;
Nous allons ensuite créer un utilisateur (encore une fois, veuillez changer le nom de l’utilisateur afin de renforcer la sécurité de votre installation) avec un nouveau mot de passe (à compléter également) :
CREATE USER 'nom_utilisateur_a_changer'@'localhost' IDENTIFIED BY 'votre_mot_de_passe';
Une fois l’utilisateur créé, il faut l’associer à notre base de donnée et lui donner les accès :
GRANT ALL ON nom_base_de_donnee.* TO 'nom_utilisateur_a_changer'@'localhost' IDENTIFIED BY 'le_mot_de_passe_precedent' WITH GRANT OPTION;
Vous pouvez quitter MariaDB après avoir enregistré les changements :
FLUSH PRIVILEGES;
EXIT;
Explication
Pourquoi wordpress a-t-il besoin d'une base de donnée ?
Wordpress est un CMS qui distribue le contenu de votre site de manière dynamique. Contrairement à une installation statique où le contenu de votre site serait présent dans un fichier html et servi directement en état, les informations de votre site wordpress sont enregistrés dans une base de donnée. Ces données sont ensuite appelées et utilisées lorsque votre site en a besoin.
A chaque chargement d’une page, le serveur exécute le code (principalement du PHP) qui lui dit comment générer le contenu, à partir de fonctions et de votre base de donnée. Ce que l’internaute voit en visitant votre site internet, c’est l’interprétation du code dynamique par le serveur et qui distribue un rendu statique pour le visiteur.
Vous vous en doutez probablement, si le contenu statique est directement affiché, le contenu dynamique doit être traité par le serveur et converti en contenu statique ce qui consomme plus de ressource et qui diminue nettement les performances d’un site internet. C’est pourquoi il est judicieux d’optimiser au maximum son site internet et d’utiliser des modules de mise en cache qui permettrons d’accélérer et d’améliorer la navigation et l’expérience utilisateur.
Code
Étape 5 : Télécharger et installer Wordpress
Téléchargeons et installons la dernière version de Wordpress et configurons Apache2
Exécutez la commande suivante pour télécharger la dernière archive de wordpress, l’extraire et la déplacer vers le dossier de votre choix (n’oubliez pas de modifier le nom du dossier) :
cd /tmp && wget https://fr.wordpress.org/latest-fr_FR.tar.gz
tar -zxvf latest-fr_FR.tar.gz
sudo mv wordpress /var/www/nom_du_dossier_de_votre_site
Nous allons ensuite donner à wordpress les bonnes permissions afin qu’il puisse fonctionner correctement. Attention ne sautez pas cette étape sinon vous rencontrerez des dysfonctionnements importants au niveau de votre backend.
sudo chown -R www-data:www-data /var/www/nom_du_dossier_de_votre_site/
sudo chmod -R 755 /var/www/nom_du_dossier_de_votre_site/
Nous allons ensuite configurer Apache2 pour lui indiquer où se trouve notre site Wordpress. A ce stade là, vous devez avoir normalement déjà votre nom de domaine et le faire pointer vers votre hébergement (avec un champ A par exemple).
Nous allons créer un fichier de configuration avec le nom du site, pour la suite de ce tutoriel je vais utiliser websual.fr mais veillez à bien changer ce nom :
sudo nano /etc/apache2/sites-available/websual.fr.conf
Copiez et collez le contenu suivant et enregistrez (ctrl + x). Remplacez le contenu en gras par vos informations, tel que votre nom de domaine et le nom du dossier où vous avez installer Wordpress.
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/nom_du_dossier_de_votre_site/
ServerName websual.fr
ServerAlias www.websual.fr
<Directory /var/www/nom_du_dossier_de_votre_site/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enregistrez le fichier (ctrl+x puis y et entrer).
Une fois ce fichier créé, nous allons demander à Apache2 de le lire et de le prendre en compte. Nous allons également activer le module de réécriture qui vous permettra d’avoir des permaliens (URL), important pour le SEO :
sudo a2ensite websual.fr.conf
sudo a2enmod rewrite
Redémarrez ensuite Apache2 avec la commande suivante :
sudo systemctl restart apache2.service
Si vous avez suivi toutes ces étapes correctement, vous devriez maintenant pouvoir lancer la procédure d’installation de wordpress en tapant dans votre moteur de recherche votre nom de domaine.
Explication
Pourquoi utiliser Wordpress comme CMS pour créer mon site internet professionnel ?
Wordpress est un CMS lancé le 21 novembre 2005 par la société Automattic. Il s’agit aujourd’hui du CMS (Content management system ou système de gestion de contenu) le plus utilisé au monde. En plus d’être totalement gratuit, il est aussi très facilement personnalisable grâce à son système de thème et de modules qui viennent se greffer très simplement. Facilement administrable, il est également SEO friendly, ce qui vous aidera à vous positionner dans les moteurs de recherche, à condition d’utiliser le bon thème et de respecter la sémantique lorsque vous construirai votre contenu.
Disposant d’une énorme communauté, Wordpress dispose de très très nombreuses ressources gratuite qui permette énormément de possibilité dans le développement de votre projet. Que vous ayez envie de créer un site internet pour démarrer un blog, faire du e-commerce et ouvrir une boutique en ligne, vendre des formations ou créer le site internet de votre entreprise, Wordpress est parfaitement adapté. Websual vous accompagne dans le développement de votre projet, la création de site internet et le référencement naturel SEO.
Code
Étape 6 : Installer un certificat de sécurité SSL et activer le https
Activer le https est vital pour votre SEO et pour protéger les internautes
Avoir un site internet, c’est bien. Avoir un site internet sécurisé, c’est encore mieux! Nous allons maintenant voir comment installer facilement un certificat de sécurité SSL afin de protéger vos internautes.
Commençons par installer Certbot qui nous permettra de facilement installer et mettre en place ce fameux certificat :
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-apache
A ce stade là, je vais partir du principe que vous avez suivi l’article depuis le début. Vous avez donc normalement déjà votre fichier mon_site.conf activé dans apache2 ainsi que votre nom de domaine qui pointe sur votre serveur. Si ce n’est pas le cas, je vous invite à suivre les étapes précédentes car il est impossible d’installer un certificat de sécurité SSL si le nom de domaine ne pointe pas sur l’hébergement.
Pour générer le certificat SSL, exécutez la commande suivante sans oublier de remplacer mon_site.fr par votre nom de domaine. Si vous n’avez pas fait pointer le sous-domaine www dans votre fichier .conf, retirer le de la commande :
sudo certbot --apache -d mon_site.fr -d www.mon_site.fr
Si c’est la première fois que vous exécutez le programme, certbot va vous demander une adresse mail et d’accepter l’utilisation des services. Le mail pourra être utilisé pour vous envoyer des alertes lorsque le certificat est proche de l’expiration, même si celui-ci est supposé se régénérer automatiquement. Suite à ça il va essayer de communiquer avec votre nom de domaine.
Si tout est bon, certbot vous demandera si vous souhaitez rediriger automatiquement votre contenu vers le https. Tapez 2 puis [entrer] pour valider la mise en place de cette redirection.
Félicitation, votre site est maintenant sécurisé!
Si vous souhaitez vérifier que le processus qui doit renouveler automatiquement le certificat de sécurité SSL est bien actif, vous pouvez exécuter la commande suivante :
sudo systemctl status certbot.timer
Ce qui devrez vous donner un résultat similaire :
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Wed 2020-11-18 09:45:16 CET; 6h ago
Trigger: Wed 2020-11-18 17:47:21 CET; 1h 39min left
Si il est marqué « active », alors tout fonctionne correctement.
Explication
Pourquoi utiliser un certificat de sécurité SSL sur mon site internet professionnel? ?
l’utilisation du certificat SSL permet d’encrypter les informations de vos visiteurs. Il fournit également une authentification de votre serveur, qui permet aux internautes d’être certains de naviguer sur le bon site internet sans risquer de se faire dérober des informations. Il est d’autant plus utile pour un site internet e-commerce puisqu’il permet de protéger les données bancaires de vos clients. L’utilisation d’un certificat SSL est aujourd’hui obligatoire si l’on ne veut pas être pénaliser par les moteurs de recherche, il est donc important d’en installer un pour protéger votre référencement naturel SEO!
Code
Étape 7 : Sécuriser mon VPS
Protéger son serveur est une nécessité pour protéger son business
Pour protéger Ubuntu 18.04, nous allons activer et installer un firewall ainsi qu’un antispam. Commençons par le firewall. UFW (ou Uncomplicated Firewall) est normalement installé par défaut sur Ubuntu 18.04, mais si, pour une obscure raison, UFW n’était pas installé, vous pouvez le mettre en place à l’aide de la commande suivante :sudo apt install ufw
.
Nous allons commencer par autoriser les connexions SSH au serveur. Cette ligne de commande est vitale car si vous n’autorisez pas les connexions SSH, lorsque vous fermerai votre terminal vous ne pourrez plus vous reconnecter, votre serveur se trouvera verrouiller et vous allez devoir lancer une réinstallation complète.
sudo ufw allow ssh
Ensuite nous allons autoriser le serveur apache2 pour qu’il ne soit pas impacté par le firewall :
ufw allow "Apache Full"
Activons ensuite le firewall UFW :
sudo ufw enable
Vous pouvez vérifier à tout moment les protocoles qui sont autorisés par le pare-feu :
ufw status
Nous allons ensuite installer fail2ban, un module puissant qui permet de bannir automatiquement les IP qui essayent de se connecter à votre serveur avec un mauvais mot de passe :
apt install fail2ban
echo -e "# Permanently ban 7+ tries\n[DEFAULT]\nbantime = -1\n\n[sshd]\nenabled = true\nport = ssh\nfilter = sshd\nlogpath = /var/log/auth.log\nmaxretry = 7" > /etc/fail2ban/jail.local
systemctl start fail2ban
systemctl enable fail2ban
fail2ban-client reload
Vous pouvez vérifier à tout moment les IP banni par le module à l’aide de la commande suivante :
fail2ban-client status sshd
Essayez, vous devriez déjà voir un certain nombre d’adresse IP prise dans le filet. Il faut savoir que les serveurs sont harcelés en permanence par des tentatives d’intrusions menés par des robots.
Note : l’installation suivante permet de bannir de manière permanente les IP qui essayent de se connecter sans succès plus de 7 fois, cela vous inclus également.
Explication
Pourquoi protéger mon serveur et mon site internet avec un pare-feu ?
Votre serveur, c’est la base de votre site internet. Si celui-ci est compromis, vous mettez non seulement en danger votre business mais aussi vos visiteurs. Il existe des solutions simples pour protéger au minimum votre serveur et qui se mettent très rapidement en place, alors pourquoi lésiner sur la sécurité ? ça ne vous prendra que quelques minutes! Websual vous explique comment créer mon site internet professionnel sur Wordpress de A à Z, mais également comment le protéger.
Conclusion
Félicitation, vous êtes propriétaire d'un site internet professionnel
Vous avez tenu bon et vous êtes arrivé au bout du parcours, vous êtes maintenant en possession d’un hébergement correctement configuré pour accueillir votre site internet fraichement installé. Vous pouvez maintenant vous mettre à construire votre contenu, installer un thème et des modules et vous lancer dans votre projet web. Bon courage !
Disclaimer : Websual ne saurait être tenu responsable en cas de problème rencontré lors de l’exécution de ce tutoriel ou de dommage sur votre serveur. Même si créer mon site internet professionnel sur wordpress devient plus accessible grâce à ce tutoriel, la création de site internet reste un métier complet, et si ce tutoriel vous permet d’installer wordpress, vous ne devriez pas prendre à la légère l’immense travail qui vous attends :
- La conception du webdesign et de votre charte graphique
- La rédaction du contenu
- La mise en place d’une stratégie SEO et de marketing digital
- L’optimisation de votre site internet
- La mise en ligne de votre business
- Le suivi et le développement de votre projet web
Si vous vous sentez dépassé par ce tutoriel, n’hésitez pas à faire appel à un professionnel du web.