Comment héberger gratuitement un site Web sur votre système Linux domestique
Le terme serveur Web peut être utilisé pour désigner à la fois le matériel et le logiciel, ou les deux fonctionnant ensemble. Dans le cadre de ce guide, nous allons nous concentrer sur l’aspect logiciel et voir comment vous pouvez héberger un site web sur votre machine Linux.
Un serveur web est un logiciel qui reçoit et répond aux requêtes des clients via les protocoles HTTP/HTTPS. Son objectif principal est d’afficher le contenu d’un site Web qui, souvent, se présente sous la forme de texte, d’images et de vidéos.
Un serveur Web peut diffuser du contenu statique ou dynamique. Le contenu statique, comme son nom l’indique, fait référence à un contenu qui ne change pratiquement pas et qui est destiné à rester le même. Le serveur renvoie le contenu au navigateur de l’utilisateur en l’état.
Le contenu dynamique est un contenu qui change souvent ou qui est constamment mis à jour. Pour diffuser du contenu dynamique, un serveur Web doit également fonctionner avec un serveur de base de données et des langages de script côté serveur.
Ce guide vous montrera comment configurer un serveur Web Apache pour héberger gratuitement un site Web sur votre système Linux.
Exigences
Pour suivre ce guide, assurez-vous d’avoir mis en place les éléments suivants.
- Une adresse IP publique dédiée peut être obtenue auprès de votre FAI.
- Une boîte Linux, qui peut être une installation sur un serveur Linux de votre variante de système d’exploitation préférée. Pour ce guide, nous allons utiliser Debian 11.
Consultez quelques guides qui peuvent vous donner des informations sur l’installation d’un serveur Linux.
- Comment installer un serveur minimal Debian 11 (Bullseye)
- Comment installer un serveur minimal Debian 10 (Buster)
- Comment installer Ubuntu 20.04 Server
- Comment installer Rocky Linux 9 Server
- Comment installer AlmaLinux 9 Server
- Comment installer RHEL 9 gratuitement
Vous avez également dû installer un serveur LAMP, qui est l’acronyme de Linux, Apache et MySQL (il peut également s’agir de MariaDB). Voici quelques guides sur la façon d’installer la pile LAMP sous Linux.
- Comment installer LAMP sur Debian 11 Server
- Comment installer LAMP sur Debian 10 Server
- Comment installer la pile LAMP dans Ubuntu 20.04
- Comment installer LAMP sur Rocky Linux 9/8
- Comment installer la pile LAMP dans AlmaLinux 9/8
- Comment installer LAMP sur RHEL 9/8
Comment héberger un site Web sur un serveur Linux
Dans cette section, nous allons procéder et discuter des principaux composants d’un serveur web.
Qu’est-ce qu’Apache ?
Apache est un serveur Web multiplateforme populaire, gratuit et open-source, publié sous la licence Apache 2.0. C’est l’un des serveurs Web les plus utilisés, représentant près de 32,2 % de la part de marché des serveurs Web.
Pour vérifier la dernière version d’Apache disponible, et si elle est installée sur votre serveur, exécutez la commande :
# apt-cache policy apache2 (On Debian-based OS)
À partir de la sortie, vous pouvez voir le paramètre Installed : (none), ce qui signifie qu’il n’est pas encore installé. Vous obtenez également des informations sur la dernière version proposée par le dépôt Debian/Ubuntu, qui dans ce cas est la 2.4.52.
Sur les distributions Red Hat modernes, vous pouvez vérifier la disponibilité d’Apache à l’aide de la commande dnf suivante comme suit.
# dnf search httpd
D’après la sortie ci-dessus, vous pouvez voir que le paquet Apache httpd est disponible en téléchargement. Si Apache n’est pas installé sur votre système, utilisez les gestionnaires de paquets 'apt' ou 'dnf' pour installer Apache comme indiqué.
Sur les systèmes basés sur Debian :
$ sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
Sur les systèmes basés sur Red-Hat :
# dnf install httpd -y
systemctl start httpd
systemctl enable httpd
systemctl status httpd
Qu’est-ce que MariaDB ?
Fork de MySQL, MariaDB est l’un des systèmes de gestion de bases de données relationnelles les plus populaires et open-source. De nos jours, il est préféré à MySQL en raison de ses vitesses plus rapides dans la réplication et l’exécution des requêtes, ainsi que de la sécurité et d’une vaste gamme de moteurs de stockage.
Pour installer MariaDB sur les systèmes basés sur Debian :
sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo systemctl status mariadb
Le résultat suivant montre que MariaDB est installé et s’exécute comme prévu.
Pour installer MariaDB, sur les systèmes basés sur RHEL :
dnf install mariadb-server -y
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
Qu’est-ce que PHP ?
PHP est un acronyme récursif pour PHP Hypertext Preprocessor, qui est un langage de script à usage général populaire qui est principalement utilisé dans le développement Web.
Pour installer PHP sur les systèmes basés sur Debian :
sudo apt update
sudo apt upgrade
sudo apt install ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.0 libapache2-mod-php8.0
Pour installer PHP sur les systèmes basés sur RHEL, vous devez d’abord activer le référentiel EPEL.
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9]
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
Ensuite, activez le référentiel Remi, qui propose la dernière version de PHP sur les systèmes basés sur RHEL.
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8]
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
Une fois que les dépôts EPEL et Remi sont activés sur le système, vous pouvez installer PHP comme indiqué.
# dnf module list php
dnf module enable php:remi-8.0 -y
dnf install php php-cli php-common
Avec tous les composants installés, vous pouvez maintenant créer votre site Web à l’aide du CMS WordPress, qui est un logiciel qui facilite le développement et la gestion d’un site Web sans nécessairement avoir de connaissances des langages de conception Web tels que HTML, CSS, PHP et Javascript.
Création d’un site web simple à l’aide de WordPress sous Linux
Pour la démonstration, nous installerons WordPress sur les systèmes Debian 11 et RHEL 9, qui fourniront un exemple de site Web qui peut être personnalisé selon vos préférences.
Cette section suppose que la pile LAMP est déjà installée.
Étape 1 : Installer des modules PHP supplémentaires
Pour continuer, installez des modules PHP supplémentaires requis par WordPress comme indiqué.
Pour installer des modules PHP, sur les systèmes basés sur Debian :
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
Pour installer des modules PHP, sur les systèmes basés sur RHEL :
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
Étape 2 : Créer une base de données pour WordPress
Écrit en PHP, WordPress est un système de gestion de contenu basé sur les données, gratuit et open-source. Une base de données est un composant essentiel de WordPress.
La base de données est utilisée pour stocker tous les articles de blog, les pages, les catégories, les commentaires, les thèmes, les plugins ainsi que les fichiers de configuration WordPress.
Pour créer une base de données pour WordPress, connectez-vous au serveur de base de données MariaDB :
$ sudo mysql -u root -p
Ensuite, créez une base de données comme indiqué
CREATE DATABASE wordpress_db;
Ensuite, créez un utilisateur de base de données et attribuez-lui tous les privilèges sur la base de données.
GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
Enfin, rechargez les tables d’octroi pour enregistrer les modifications apportées et quitter la base de données.
FLUSH PRIVILEGES;
QUIT;
Étape 3 : Télécharger WordPress
Une fois la base de données en place, téléchargez le dernier fichier tarball WordPress à l’aide de la commande wget.
$ wget https://wordpress.org/latest.tar.gz
Une fois téléchargé, extrayez le fichier compressé à l’aide de la commande tar.
$ tar -xvzf latest.tar.gz
La commande extrait le contenu du fichier dans un dossier appelé wordpress. Déplacez ou copiez le dossier dans la racine du document pour le serveur Web Apache.
$ sudo mv wordpress/ /var/www/html/
Ensuite, attribuez les autorisations et les droits de propriété suivants.
$sudo chmod 755 -R /var/www/html/wordpress/
$sudo chown -R www-data :www-data /var/www/html/wordpress/
Étape 4 : Créer un hôte virtuel Apache pour WordPress
La terminologie « hôte virtuel » fait référence à la pratique consistant à héberger plusieurs sites Web sur un seul serveur. Si vous avez l’intention d’héberger plusieurs sites Web sur un seul serveur, vous devez créer un hôte virtuel pour chaque site Web.
Dans ce cas, vous devez créer un hébergeur virtuel pour le site Web WordPress comme suit.
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian]
vi /etc/httpd/conf/httpd.conf [On RHEL]
Collez les lignes de code suivantes pour définir l’hôte virtuel. Pour la directive ServerName, indiquez l’adresse IP du serveur ou le nom de domaine complet, qui doit pointer vers l’adresse IP publique dédiée.
<VirtualHost *:80>
ServerAdmin admin@your_domain.com
DocumentRoot /var/www/html/wordpress
ServerName 192.168.0.100
<Directory /var/www/html/wordpress>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined
</VirtualHost>
Enregistrez les modifications et quittez le fichier.
Pour se connecter à la base de données, quelques modifications supplémentaires sont nécessaires. Alors, naviguez dans le dossier wordpress.
$ cd /var/www/html/wordpress/
Ensuite, mettez à jour le fichier wp-config.php avec le contenu du fichier wp-config-sample.php.
$ cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
Ensuite, mettez à jour les directives de nom de base de données, de nom d’utilisateur db et de mot de passe avec les détails de la base de données.
Ensuite, activez le nouveau site WordPress comme suit sur les systèmes basés sur Debian.
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf
sudo a2ensite wordpress
sudo a2enmod rewrite
sudo a2dissite 000-default
Pour effectuer les modifications, redémarrez Apache.
$ sudo systemctl restart apache2 [On Debian]
systemctl restart httpd [On RHEL]
Étape 4 : Terminez la configuration de WordPress sur un navigateur
Pour terminer la configuration, parcourez l’adresse IP de votre serveur Web comme indiqué :
http://server-ip
Vous devriez afficher la page d’accueil de WordPress comme indiqué. Sélectionnez votre langue préférée et cliquez sur « Continuer ».
Ensuite, remplissez les détails du site.
Cliquez ensuite sur « Installer WordPress » pour terminer la configuration de WordPress.
Si tout s’est bien passé, vous recevrez une confirmation que l’installation a réussi. Pour vous connecter, cliquez sur le bouton « Se connecter ».
Cela vous amène au tableau de bord WordPress, comme vous pouvez le voir. À ce stade, vous pouvez expérimenter différents thèmes pour améliorer l’apparence de votre site Web d’échantillon.
Étape 5 : Accéder à WordPress à l’aide de la redirection de port
Étant donné que vous auto-hébergez votre serveur Web à partir d’un système Linux à la maison ou de votre réseau local (LAN), l’étape suivante consiste à le rendre accessible aux utilisateurs externes ou aux utilisateurs en dehors de votre LAN (Local Area Network). C’est là qu’intervient la redirection de port.
La redirection de port, également appelée mappage de port, est une technique qui permet aux périphériques externes d’accéder aux serveurs ou aux ressources d’un réseau privé via Internet. L’idée est d’accéder aux réseaux privés de l’extérieur, sans quoi il serait impossible puisque les appareils externes ne peuvent pas communiquer avec des adresses IP internes.
Dans votre configuration, vous devez rediriger le port sur lequel le serveur Web écoute (dans la plupart des cas, il s’agit du port 80 pour le trafic HTTP ou 443 pour HTTPS) ainsi que l’adresse IP privée statique du serveur Web.
Alors, connectez-vous à votre routeur et rendez-vous dans la section Redirection de port. Dans notre exemple, nous utilisons le routeur DLink pour rediriger les ports (80 et 443) et l’adresse IP privée (192.168.0.100) du serveur Web vers l’adresse IP publique dédiée attribuée par le FAI.
Dans votre cas, spécifiez les ports et l’adresse IP privée du serveur web et enregistrez les modifications.
Pour enregistrer les modifications, vous devrez peut-être redémarrer le routeur. Alors, allez-y et faites exactement cela.
Une fois la redirection de port correctement effectuée, vous pouvez maintenant atteindre votre serveur web en dehors de votre réseau via l’adresse IP publique.
Conclusion
Dans ce guide, nous avons montré comment vous pouvez auto-héberger votre serveur web à l’aide d’Apache sur une machine Linux. Vos commentaires sur ce guide sont les bienvenus.











