J'héberge mes propres sites Web depuis de nombreuses années maintenant. Depuis le passage d'OS/2 à Linux il y a plus de 20 ans, j'ai utilisé Apache comme logiciel serveur. Apache est solide, bien connu et assez facile à configurer pour une installation de base. Ce n'est pas vraiment plus difficile à configurer pour une configuration plus complexe, comme plusieurs sites Web.
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
L'installation et la configuration du serveur Web Apache doivent être effectuées en tant que root. La configuration du pare-feu doit également être effectuée en tant que root. L'utilisation d'un navigateur pour afficher les résultats de ce travail doit être effectuée en tant qu'utilisateur non root. (J'utilise l'utilisateur student
sur mon hôte virtuel.)
Installation
Remarque :cet article a été mis à jour en utilisant Fedora 33 avec Apache 2.4.46. Si vous utilisez une distribution différente ou une version différente de Fedora, vos commandes ainsi que les emplacements et le contenu des fichiers de configuration peuvent être différents. Cependant, les lignes de configuration que vous devez modifier sont les mêmes quelle que soit la distribution.
Le serveur Web Apache est facile à installer. Avec une seule commande, vous pouvez l'installer ainsi que toutes les dépendances nécessaires :
$ dnf install httpd
Tous les fichiers de configuration d'Apache se trouvent dans /etc/httpd/conf
et /etc/httpd/conf.d
. Les données des sites Web que vous exécuterez avec Apache se trouvent dans /var/www
par défaut, mais vous pouvez le modifier si vous le souhaitez.
Configuration
Le fichier de configuration principal d'Apache est /etc/httpd/conf/httpd.conf
. Il contient de nombreuses instructions de configuration qui n'ont pas besoin d'être modifiées pour une installation de base. En fait, seules quelques modifications doivent être apportées à ce fichier pour qu'un site Web de base soit opérationnel. Le fichier est très volumineux, donc, plutôt que d'encombrer cet article avec beaucoup de choses inutiles, je ne montrerai que les directives que vous devez modifier.
Tout d'abord, prenez un peu de temps et parcourez le httpd.conf
fichier pour vous familiariser avec celui-ci. L'une des choses que j'aime dans les versions Red Hat de la plupart des fichiers de configuration est le nombre de commentaires qui décrivent les différentes sections et directives de configuration dans les fichiers. Le httpd.conf
le dossier ne fait pas exception, car il est assez bien commenté. Utilisez ces commentaires pour comprendre ce que le fichier est en train de configurer.
Le premier élément à modifier est le Listen
, qui définit l'adresse IP et le port sur lesquels Apache doit écouter les demandes de page. Pour le moment, il vous suffit de rendre ce site Web disponible sur la machine locale, utilisez donc le localhost
adresse. La ligne devrait ressembler à ceci lorsque vous avez terminé :
Listen 127.0.0.1:80
Avec cette directive définie sur l'adresse IP de localhost
, Apache n'écoutera que les connexions de l'hôte local. Si vous souhaitez que le serveur Web écoute les connexions des hôtes distants, vous devez utiliser l'adresse IP externe de l'hôte.
Le DocumentRoot
spécifie l'emplacement des fichiers HTML qui composent les pages du site Web. Cette ligne n'a pas besoin d'être modifiée car elle pointe déjà vers l'emplacement standard. La ligne devrait ressembler à ceci :
DocumentRoot "/var/www/html"
Le RPM d'installation d'Apache crée le /var/www
arborescence de répertoires. Si vous vouliez changer l'emplacement où les fichiers du site Web sont stockés, cet élément de configuration est utilisé pour le faire. Par exemple, vous pouvez utiliser un nom différent pour le www
sous-répertoire pour rendre l'identification du site Web plus explicite. Cela pourrait ressembler à ceci :
DocumentRoot "/var/mywebsite/html"
Ce sont les seules modifications de configuration Apache nécessaires pour créer un site Web simple. Pour ce petit exercice, une seule modification a été apportée au httpd.conf
fichier—le Listen
directif. Tout le reste est déjà configuré pour produire un serveur Web fonctionnel.
Un autre changement est cependant nécessaire :ouvrir le port 80 dans notre pare-feu. J'utilise iptables comme pare-feu, donc je change /etc/sysconfig/iptables
pour ajouter une déclaration qui autorise le protocole HTTP. Le fichier entier ressemble à ceci :
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
La ligne que j'ai ajoutée est la troisième à partir du bas, ce qui autorise le trafic entrant sur le port 80. Maintenant, je recharge la configuration iptables modifiée.
[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables
Créer le fichier index.html
Le index.html
file est le fichier par défaut qu'un serveur Web servira lorsque vous accéderez au site Web en utilisant uniquement le nom de domaine et non un nom de fichier HTML spécifique. Dans le /var/www/html
répertoire, créez un fichier avec le nom index.html
. Ajouter le contenu Hello World
. Vous n'avez pas besoin d'ajouter de balisage HTML pour que cela fonctionne. Le seul travail du serveur Web est de servir un flux de données textuelles, et le serveur n'a aucune idée de la date ni de la manière de la rendre. Il transmet simplement le flux de données à l'hôte demandeur.
Après avoir enregistré le fichier, définissez la propriété sur apache.apache
.
[root@testvm1 html]# chown apache.apache index.html
Démarrer Apache
Apache est très facile à démarrer. Les versions actuelles de Fedora utilisent systemd
. Exécutez les commandes suivantes pour le démarrer puis pour vérifier l'état du serveur :
[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-02-08 13:18:54 EST; 5s ago
Docs: man:httpd.service(8)
Main PID: 27107 (httpd)
Status: "Processing requests..."
Tasks: 213 (limit: 4915)
CGroup: /system.slice/httpd.service
├─27107 /usr/sbin/httpd -DFOREGROUND
├─27108 /usr/sbin/httpd -DFOREGROUND
├─27109 /usr/sbin/httpd -DFOREGROUND
├─27110 /usr/sbin/httpd -DFOREGROUND
└─27111 /usr/sbin/httpd -DFOREGROUND
Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.
Les commandes peuvent être différentes sur votre serveur. Sur les systèmes Linux qui utilisent des scripts de démarrage SystemV, les commandes seraient :
[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018] [ OK ]
[root@testvm1 ~]# service httpd status
httpd (pid 14649) is running...
Si vous avez un navigateur Web comme Firefox ou Chrome sur votre hébergeur, vous pouvez utiliser l'URL localhost
sur la ligne URL du navigateur pour afficher votre page Web, aussi simple soit-elle. Vous pouvez également utiliser un navigateur Web en mode texte comme Lynx pour afficher la page Web. Tout d'abord, installez Lynx (s'il n'est pas déjà installé).
[root@testvm1 ~]# dnf -y install lynx
Utilisez ensuite la commande suivante pour afficher la page Web.
[root@testvm1 ~]# lynx localhost
Le résultat ressemble à ceci dans ma session de terminal. J'ai supprimé une grande partie de l'espace vide sur la page.
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
Ensuite, modifiez votre index.html
fichier et ajoutez un peu de balisage HTML pour qu'il ressemble à ceci :
<h1>Hello World</h1>
Actualisez maintenant le navigateur. Pour Lynx, utilisez la combinaison de touches Ctrl+R. Les résultats semblent juste un peu différents. Le texte est en couleur, c'est ainsi que Lynx affiche les en-têtes si votre terminal prend en charge la couleur, et il est maintenant centré. Dans un navigateur graphique, le texte serait dans une grande police.
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
Pensées d'adieu
Comme vous pouvez le voir dans ce petit exercice, il est facile de configurer un serveur Web Apache. Les spécificités varient en fonction de votre distribution et de la version d'Apache fournie par cette distribution. Dans mon environnement, c'était un exercice assez trivial.
Mais il y a plus car Apache est très flexible et puissant. Le mois prochain, je discuterai de l'hébergement de plusieurs sites Web à l'aide d'une seule instance d'Apache.
Cet article a été initialement publié en 2018 et a été mis à jour par l'éditeur.