GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer un serveur Web Apache

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.


Linux
  1. Comment configurer plusieurs sites Web avec le serveur Web Apache

  2. Comment installer Apache Web Server sur Centos 8

  3. Comment installer le serveur Web Apache sur Ubuntu

  4. Comment installer et configurer le serveur Web Apache sur Ubuntu 13.10

  5. Comment vérifier les erreurs de syntaxe dans la configuration de mon serveur Web Apache

Comment installer le serveur Web Apache sur Alpine Linux

Comment installer le serveur Web Apache sur Debian 11

Comment installer le serveur Web Apache sur Ubuntu 18.04

Comment installer le serveur Web Apache sur Ubuntu 20.04

Comment optimiser le serveur Web Apache ?

Comment installer et configurer un serveur Web LAMP sur Ubuntu 18.04