HTTPD

De The Linux Craftsman
Aller à la navigation Aller à la recherche
HTTP HTTPS
Protocole tcp tcp
Port 80 443
Configuration Iptables iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT

Préparation

Dans un premier temps, il faudra avoir une connexion à Internet, utiliser un serveur DNS et désactiver SELinux.

Pour ceux qui aurait manqué des étapes les voici:

Une fois ces étapes effectuées, entrons dans le vif du sujet !

Installation

HTTP

# yum -y install httpd

HTTP et HTTPS

# yum -y install httpd mod_ssl 

Configuration de base

Avant le premier démarrage

Tout d'abord il faut paramétrer le nom de la machine ainsi que l'adresse d'écoute

Pour cela cherchez dans le fichier /etc/httpd/conf/httpd.conf les lignes commençant par :

  • Listen 80
  • #ServerName www.example.com:80

La première doit contenir l'adresse IP de la machine ou * pour que httpd écoute sur toutes les interfaces

Listen *:80

La deuxième doit être cohérente avec le nom de la machine qui est précisé dans le fichier network

ServerName web:80

Premier démarrage

Maintenant on peut démarrer httpd

# service httpd start
Démarrage de httpd :                                       [  OK  ]

Vérification

On peut vérifier que httpd écoute sur la bonne adresse et les bons ports

# netstat -atnp | grep httpd
tcp        0      0 :::80                       :::*                        LISTEN      1202/httpd
tcp        0      0 :::443                      :::*                        LISTEN      1202/httpd

Enregistrement dans le chargeur de démarrage

# chkconfig httpd on

Ajout d'une page html

Le dossier de travail de httpd est préciser grâce à la variable DocumentRoot qui à la valeur /var/www/html

Vous pouvez donc créez votre premier site web en ajoutant dans ce dossier le fichier désigné par la variable DirectoryIndex (généralement index.html)

# vi /var/www/html/index.html

Une fois le fichier édité, il ne faut pas oublier de repositionner les bons droits pour que apache soit apte à le lire

# chown apache.apache -R /var/www/html

Parcours des logs

httpd log dans le répertoire /var/log/httpd/ et utilise deux fichiers:

  • access_log → pour journaliser tous les accès
  • error_log → pour journaliser toutes les erreurs

favicon.ico ??

Quand on parcours le fichier access_log on peut croiser la ligne suivante

192.168.200.12 - - [28/Dec/2013:19:58:13 +0100] "GET /favicon.ico HTTP/1.1" 404 278 "-" "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0"

Et on peut se demander pourquoi le navigateur demande favicon.ico ?? En faite, il s'agit de l'icône qui figure dans l'onglet, à côté du titre

Fireforx favicon tab.pngFavicon tlc.png

Vous pouvez la générer grâce au site suivant www.favicon.cc et la placer à la racine du site web (/var/www/html)

Fonction Virtual Host

La fonction Vhost permet de faire tourner plusieurs site Web différent sur un même serveur. Les moyens de différenciations sont multiples:

  • l'adresse IP
  • le port TCP
  • le nom DNS
  • un sous-ensemble de ces trois éléments

Emplacement du fichier de configuration

VHost par adresses IP

VHost par port TCP

VHost par noms DNS