|
|
| (53 versions intermédiaires par le même utilisateur non affichées) |
| Ligne 1 : |
Ligne 1 : |
| {|border=1 class="wikitable"
| | Cette page rassemble tous les articles concernant le serveur Apache httpd : |
| ! !! HTTP !! HTTPS
| |
| |-align="center"
| |
| | '''Protocole''' || tcp || tcp
| |
| |-align="center"
| |
| | '''Port''' || 80 || 443
| |
| |-align="center"
| |
| | '''Configuration Iptables''' || iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT || iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT
| |
| |}
| |
|
| |
|
| = Préparation =
| | # [[httpd_install_start| Installation et premier démarrage ]] |
| | | # [[httpd_vhost| Déploiement d'un hôte virtuel]] |
| Dans un premier temps, il faudra avoir une connexion à Internet, utiliser un serveur DNS et désactiver SELinux.
| | # [[httpd_htaccess | Le fichier .htaccess ]] |
| | | # [[httpd_redirect_reverse-proxy_mod-rewrite| Redirections, réécriture d’URL (mod_rewrite)]] |
| Pour ceux qui auraient manqué des étapes les voici:
| | # [[httpd_certificate_security | Certificats et sécurité ]] |
| * [[resolv.conf|Configuration du client DNS]]
| |
| * [[ifcfg-ethX|Paramétrer sa carte réseau]]
| |
| * [[SELinux|Désactiver SELinux]]
| |
| | |
| Une fois ces étapes effectuées, entrons dans le vif du sujet !
| |
| | |
| = Installation =
| |
| | |
| == HTTP ==
| |
| | |
| <pre>
| |
| # yum -y install httpd
| |
| </pre>
| |
| | |
| == HTTP '''et''' HTTPS ==
| |
| <pre>
| |
| # yum -y install httpd mod_ssl
| |
| </pre>
| |
| | |
| = 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
| |
| | |
| <pre>
| |
| Listen *:80
| |
| </pre>
| |
| | |
| La deuxième doit être cohérente avec le nom de la machine qui est précisé dans le fichier [[Sysconfig-network|''network'']]
| |
| | |
| <pre>
| |
| ServerName web:80
| |
| </pre>
| |
| | |
| == Premier démarrage ==
| |
| | |
| Maintenant on peut démarrer ''httpd''
| |
| | |
| <pre>
| |
| # service httpd start | |
| Démarrage de httpd : [ OK ]
| |
| </pre>
| |
| | |
| == Vérification ==
| |
| | |
| On peut vérifier que ''httpd'' écoute sur la bonne adresse et les bons ports
| |
| | |
| <pre>
| |
| # netstat -atnp | grep httpd
| |
| tcp 0 0 :::80 :::* LISTEN 1202/httpd
| |
| tcp 0 0 :::443 :::* LISTEN 1202/httpd
| |
| </pre>
| |
| | |
| == Enregistrement dans le chargeur de démarrage ==
| |
| | |
| <pre>
| |
| # chkconfig httpd on
| |
| </pre>
| |
| | |
| = Ajout d'une page html =
| |
| | |
| Le dossier de travail de ''httpd'' est précisé grâce à la variable ''DocumentRoot'' qui a la valeur ''/var/www/html'' | |
| | |
| Vous pouvez donc créer votre premier site web en ajoutant dans ce dossier le fichier désigné par la variable ''DirectoryIndex'' (généralement ''index.html'')
| |
| | |
| <pre>
| |
| # vi /var/www/html/index.html | |
| </pre>
| |
| | |
| Une fois le fichier édité, il ne faut pas oublier de repositionner les bons droits pour qu'apache soit apte à le lire
| |
| | |
| <pre>
| |
| # chown apache.apache -R /var/www/html
| |
| </pre>
| |
| | |
| = 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 parcourt le fichier ''access_log'' on peut croiser la ligne suivante
| |
| | |
| <pre>
| |
| 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"
| |
| </pre>
| |
| | |
| Et on peut se demander pourquoi le navigateur demande favicon.ico ?? En fait, il s'agit de l'icône qui figure dans l'onglet, à côté du titre
| |
| | |
| [[Fichier:fireforx_favicon_tab.png]] → [[Fichier:favicon_tlc.png]]
| |
| | |
| Vous pouvez la générer grâce au site suivant [http://www.favicon.cc/ 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 sites Web différents sur un même serveur. Les moyens de différenciation sont multiples:
| |
| * le port TCP
| |
| * l'adresse IP
| |
| * le nom DNS
| |
| * un sous-ensemble de ces trois éléments
| |
| | |
| == Emplacement du fichier de configuration ==
| |
| | |
| Les fichiers de configuration de ''httpd'' se trouvent dans le dossier ''/etc/httpd/conf.d''
| |
| | |
| <pre>
| |
| # ll /etc/httpd/conf.d/
| |
| total 20
| |
| -rw-r--r--. 1 root root 392 13 août 19:28 README
| |
| -rw-r--r--. 1 root root 9473 2 août 13:59 ssl.conf
| |
| -rw-r--r--. 1 root root 299 2 août 13:59 welcome.conf
| |
| </pre>
| |
| | |
| Ces fichiers sont ''importés'' dans la configuration de ''httpd'' grâce à la directive ''Include'' présente dans le fichier ''httpd.conf''
| |
| | |
| <pre>
| |
| Include conf.d/*.conf
| |
| </pre>
| |
| | |
| Nous allons donc créer un fichier spécifique pour nos VHost que nous appellerons ''vhost.conf''
| |
| | |
| <pre>
| |
| # touch /etc/httpd/conf.d/vhost.conf
| |
| </pre>
| |
| | |
| == VHost par ports TCP ==
| |
| | |
| Ce choix permet avec une seule adresse IP d'avoir plusieurs sites qui sont accessibles sur des ports différents. C'est généralement le cas quand on veut installer des interfaces d'administration.
| |
| | |
| Tout d'abord le serveur ''httpd'' doit écouter sur les ports en question
| |
| | |
| <pre>
| |
| Listen 80 # Ne pas ajouter si déjà dans httpd.conf
| |
| Listen 8080
| |
| ServerName www.tala-informatique.fr
| |
| </pre>
| |
| | |
| Ensuite les VHost possèderont une directive ''VirtualHost'' différente
| |
| | |
| <pre>
| |
| <VirtualHost *:80>
| |
| DocumentRoot /var/www/html/public
| |
| </VirtualHost>
| |
| | |
| <VirtualHost *:8080>
| |
| DocumentRoot /var/www/html/admin
| |
| </VirtualHost>
| |
| </pre>
| |
| | |
| == VHost par adresses IP ==
| |
| | |
| === Des contenus différents ===
| |
| | |
| Ce choix est inintéressant quand le serveur Web possède deux cartes réseaux sur deux réseaux différents (vers Internet et vers l'intranet).
| |
| | |
| Tout d'abord on déclare un serveur ''httpd'' principal et cette configuration est généralement déjà dans ''httpd.conf''.
| |
| | |
| <pre>
| |
| Listen 192.168.200.251:80
| |
| DocumentRoot /var/www/html/
| |
| ServerName www.tala-informatique.fr
| |
| </pre>
| |
| | |
| Ensuite le VHost possèdera une directive ''VirtualHost'' différente
| |
| | |
| <pre>
| |
| <VirtualHost 192.168.200.250:80>
| |
| DocumentRoot /var/www/html/intranet
| |
| </VirtualHost>
| |
| </pre>
| |
| | |
| === Le même contenu ===
| |
| | |
| Le serveur web peut avoir plusieurs interfaces, sur des réseaux différents, et en plus une interface d'administration sur laquelle on ne veut pas que ''httpd'' écoute.
| |
| | |
| Tout d'abord le serveur ''httpd'' doit écouter sur le port TCP/80 (en général)
| |
| | |
| <pre>
| |
| Listen 80
| |
| </pre>
| |
| | |
| Puis on précise les interfaces d'écoute
| |
| | |
| <pre>
| |
| <VirtualHost 192.168.200.250 192.168.200.251>
| |
| DocumentRoot /var/www/html/intranet
| |
| ServerName www.tala-informatique.fr
| |
| </VirtualHost>
| |
| </pre>
| |
| | |
| == VHost par noms DNS ==
| |
| | |
| C'est le type le plus courant de VHost. En effet, le plus souvent les gens ne possèdent qu'une seule adresse IP publique et il est donc plus simple de faire ''pointer'' plusieurs noms de domaine vers la même adresse.
| |
| | |
| Tout d'abord le serveur ''httpd'' doit écouter sur le port TCP/80 (en général) mais cette fois-ci on doit lui spécifier que l'on va utiliser des VHost par nom. Pour cela on utilise la directive ''NameVirtualHost'' soit:
| |
| * en utilisant un nom différent de celui utilisé pour les VHost (c'est le cas dans cet exemple)
| |
| * soit en utilisant une adresse IP
| |
| | |
| <pre>
| |
| NameVirtualHost web.tala-informatique.fr:80
| |
| </pre>
| |
| | |
| ''web.tala-informatique.fr'' = ''www.tala-informatique.fr'' = ''wiki.tala-informatique.fr'' = une adresse IP
| |
| | |
| Ensuite les VHost possèderont une variable ''ServerName'' différente
| |
| | |
| <pre>
| |
| <VirtualHost *:80>
| |
| DocumentRoot /var/www/html/informatique
| |
| ServerName www.tala-informatique.fr
| |
| </VirtualHost>
| |
| | |
| <VirtualHost *:80>
| |
| DocumentRoot /var/www/html/wiki
| |
| ServerName wiki.tala-informatique.fr
| |
| </VirtualHost>
| |
| </pre>
| |
| | |
| = Le fichier ''.htaccess'' =
| |
| | |
| = Reverse-Proxy =
| |