Le terme serveur Web peut être utilisé pour désigner à la fois le matériel et les logiciels, ou les deux fonctionnant ensemble. Pour les besoins de ce guide, nous nous concentrerons sur le côté logiciel et verrons 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 le HTTP/HTTPS protocoles. Son objectif principal est d’afficher le contenu du site Web qui, souvent, se présente sous la forme de texte, d’images et de vidéos.
Un serveur Web peut soit servir statique ou dynamique contenu. Le contenu statique, comme son nom l’indique, fait référence à un contenu qui ne change guère et qui est destiné à rester le même. Le serveur renvoie le contenu tel quel au navigateur de l’utilisateur.
Le contenu dynamique est un contenu qui change souvent ou qui est constamment mis à jour. Pour servir un 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 apache serveur Web pour héberger gratuitement un site Web sur votre système Linux.
Exigences
Pour suivre ce guide, assurez-vous d’avoir les éléments suivants en place.
- Une adresse IP publique dédiée peut être obtenue auprès de votre FAI.
- Une boîte Linux, qui peut être une installation de serveur Linux de votre variante de système d’exploitation préférée. Pour ce guide, nous utiliserons Débian 11.
Consultez quelques guides qui peuvent vous donner des informations sur l’installation d’un serveur Linux.
Vous aviez également besoin d’un LAMPE serveur installé, qui est un acronyme pour Linux, Apache et MySQL (cela peut aussi être MariaDB). Voici quelques guides sur la façon d’installer le LAMPE pile sous Linux.
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 gratuit et open source populaire 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 : (aucun) ce qui signifie qu’il n’est pas encore installé. Vous obtenez également des informations sur la dernière version proposée par Debian/Ubuntu référentiel, qui dans ce cas est 2.4.52.
Sur les distributions Red Hat modernes, vous pouvez vérifier la disponibilité de apache en utilisant la commande dnf suivante comme suit.
# dnf search httpd
À partir de la sortie ci-dessus, vous pouvez voir qu’Apache httpd package est disponible en téléchargement. Si Apache n’est pas installé sur votre système, utilisez le ‘apt’ ou ‘dnf‘ gestionnaires de paquets à installer apache comme montré.
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 ?
Une fourchette de MySQL, MariaDB est l’un des systèmes de gestion de bases de données relationnelles les plus populaires et les plus open source. De nos jours, on préfère MySQL en raison de ses vitesses plus rapides de réplication et d’exécution des requêtes ainsi que de la sécurité et d’une vaste gamme de moteurs de stockage.
À installer MariaDBSur 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
La sortie suivante montre que MariaDB est installé et fonctionne comme prévu.
À installer MariaDBSur 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 Préprocesseur hypertexte PHPqui est un langage de script généraliste populaire principalement utilisé dans le développement Web.
À installer PHPSur 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
À installer PHPSur les systèmes basés sur RHEL, vous devez d’abord activer le EPEL dépôt.
$ 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 EPEL et Rémi référentiels sont activés sur le système, vous pouvez installer PHP comme montré.
# dnf module list php # dnf module enable php:remi-8.0 -y # dnf install php php-cli php-common
Une fois tous les composants installés, vous pouvez désormais créer votre site Web à l’aide du CMS WordPress, un logiciel qui permet aux utilisateurs de développer et de gérer facilement un site Web sans nécessairement connaître les langages de conception Web tels que HTML, CSS, PHP et Javascript.
Créer un site Web simple à l’aide de WordPress sous Linux
Pour la démonstration, nous installerons Wordpress sur Débian 11 et RHEL 9 systèmes, qui fourniront un exemple de site Web qui pourra être personnalisé davantage selon vos préférences.
Cette section suppose que vous disposez déjà du LAMPE pile installée.
Étape 1 : Installer des modules PHP supplémentaires
Pour continuer, installez les modules PHP supplémentaires requis par WordPress, comme indiqué.
À installer PHP modules, 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
À installer PHP modules, 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, pages, catégories, commentaires, thèmes, 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 tous les privilèges à l’utilisateur sur la base de données.
GRANT ALL PRIVILEGES ON wordpress_db.* to [email protected] identified by '[email protected]';
Ensuite, rechargez enfin les tables de droits pour enregistrer les modifications apportées et quittez la base de données.
FLUSH PRIVILEGES; QUIT;
Étape 3 : Télécharger WordPress
Une fois la base de données en place, continuez et 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 le Racine du document pour le apache serveur Web.
$ sudo mv wordpress/ /var/www/html/
Attribuez ensuite les autorisations et 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ôte 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 le Nom du serveur fournissez 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 [email protected]_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 wordpress dossier.
$ cd /var/www/html/wordpress/
Ensuite, mettez à jour le wp-config.php fichier avec le contenu du wp-config-exemple.php déposer.
$ cp wp-config-sample.php wp-config.php $ sudo nano wp-config.php
Ensuite, mettez à jour le nom de la base de données, le nom d’utilisateur db et les directives 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 appliquer les modifications, redémarrez Apache.
$ sudo systemctl restart apache2 [On Debian] # systemctl restart httpd [On RHEL]
Pour terminer la configuration, parcourez l’adresse IP de votre serveur Web comme indiqué :
http://server-ip
Vous devriez obtenir la page d’accueil WordPress affichée comme indiqué. Sélectionnez votre langue préférée et cliquez sur ‘Continuer‘.
Ensuite, remplissez les détails du site.
Puis clique ‘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 ‘Connexion‘ bouton.
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 exemple de site Web.
Étape 5 : Accéder à WordPress à l’aide de la redirection de port
Étant donné que vous hébergez vous-même 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 (réseau local). C’est là qu’intervient la redirection de port.
La redirection de port, également appelée mappage de port, est une technique qui permet à des périphériques externes d’accéder à des serveurs ou à des ressources au sein d’un réseau privé via Internet. L’idée est d’accéder aux réseaux privés depuis l’extérieur, sans quoi cela serait impossible puisque les appareils externes ne peuvent pas communiquer avec les adresses IP internes.
Dans votre configuration, vous devez transférer 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 dirigez-vous vers le Port section d’expédition. Dans notre exemple, nous utilisons le DLink routeur pour rediriger les ports du serveur Web (80 et 443) et l’adresse IP privée (192.168.0.100) 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 désormais accéder à 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 en utilisant apache sur une machine Linux. Vos commentaires sur ce guide sont les bienvenus.