Documente Academic
Documente Profesional
Documente Cultură
1/28
Technologie Web
Serveur Http Apache Alexandre Pauchet
INSA Rouen - Dpartement ASI
BO.B.RC.18, pauchet@insa-rouen.fr
INSA - ASI
2/28
Plan
Description Conguration gnrale Conguration des accs et oprations Rpertoires et authentication Serveurs virtuels Optimisation et scurit
INSA - ASI
3/28
Description
(1/3)
Bas sur du code existant et une srie de patchs Serveur open source : http://httpd.apache.org Conforme au protocole HTTP/1.1 (rfc2616) Serveur le plus utilis au monde 2 versions actuelles : 1.3.X et 2.X (rcrit et multi-threads) Multi-plateformes (Unix, Windows, Novell Netware) Trs congurable et modulaire
INSA - ASI
4/28
Description
(2/3)
Le serveur Apache Http peut sinstaller directement par paquets (apt-get ou via le gestionnaire de paquets) Paquets installer : libapr1, apache2, apache2.2-common, apache2-utils et apache2-mpm-worker Modules complmentaires :
PHP5 : php5-common, php5, php5-gd et libapache2-mod-php5 + modules optionnels php5 SQLite : php5-sqlite et sqlite3 MySQL : php5-mysql, mysql-server et libapache2-mod-auth-mysql POSTGRESQL : postgresql libapache2-mod-auth-pgsql
INSA - ASI
5/28
Description
(3/3)
Rcupration des dernires versions Apache et PHP sur http://www.apache.org et http://www.php.net Conguration et compilation dApache Http
$ . / c o n f i g u r e p r e f i x =ApachePath w i t h i n c l u d e d a p r $ make $ make i n s t a l l
Prise en compte des chiers .php dans Apache Ajouter AddType application/xhttpdphp .php dans le httpd.conf
INSA - ASI
6/28
Conguration gnrale
Systmes de chiers
(1/5)
INSA - ASI
7/28
Conguration gnrale
(2/5)
Types MIME reconnus : directive TypesConfig dans mime.types (VDU : chier prsent dans mods-enabled)
INSA - ASI
8/28
Conguration gnrale
Conguration rseau
(3/5)
Listen dtermine le port de connexion au serveur (classiquement 80 pour http, parfois 8080) VC : httpd.conf / VDU : ports.conf KeepAlive spcie si les connexions persistantes sont autorises VC : httpd-default.conf / VDU : apache2.conf KeepAliveTimeout temps partir duquel la connexion est coupe VC : httpd-default.conf / VDU : apache2.conf Timeout temps de rception dune requte ou dune rponse VC : httpd-default.conf / VDU : apache2.conf
Remarque
Cest le serveur qui dnit le mode de connexion par dfaut La rfc2616 prconise une connexion persistante
INSA - ASI
9/28
Conguration gnrale
Conguration des processus
(4/5)
StartServer, MaxSpareServers, MinSpareServers dnissent le nombre de processus ls VC : httpd-mpm.conf / VDU : apache2.conf MaxRequestsPerChild nombre de requtes traites par ls VC : httpd-mpm.conf / VDU : apache2.conf
INSA - ASI
10/28
Conguration gnrale
Dmon Http
(5/5)
User/Group : utilisateur et groupe sous lesquels est excut le dmon Http. Dans httpd.conf pour VC
<I f M o d u l e ! mpm_netware_module> U s e r daemon Group daemon </I f M o d u l e >
INSA - ASI
11/28
(1/7)
DirectoryIndex : le(s) chier(s) par dfaut (index.html index.htm index.xhtml index.cgi index.php ...) VC : httpd.conf / VDU : dir.conf
INSA - ASI
12/28
(2/7)
INSA - ASI
13/28
(3/7)
UserDir spcie le nom du rpertoire web des utilisateurs (usuellement public_html) VC : httpd-userdir.conf / VDU : userdir.conf Alias : association dune URL un rpertoire local VC : httpd.conf / VDU : alias.conf ScriptAlias : idem, mais uniquement pour les CGI VC : httpd.conf / VDU : alias.conf AccessFileName : chier de contrle daccs (.htaccess) VC : httpd-default.conf / VDU : apache2.conf
INSA - ASI
14/28
(4/7)
Redirect : redirection dune URL sur une autre Exemple : Redirect /google http://www.google.fr VC : httpd.conf / VDU : apache2.conf AddHandler : association dune extension un gestionnaire Exemple : AddHandler cgi-script .cgi VC : httpd.conf / VDU : mime.conf ErrorDocument : spcie le document renvoyer si erreur Exemple : ErrorDocument 404 /doc_missing.html VC : httpd.conf / VDU : apache2.conf
INSA - ASI
15/28
(5/7)
INSA - ASI
16/28
(6/7)
AuthName : Information transmise lutilisateur AuthType : Basic|Digest AuthUserFile : chemin absolu vers le .htpasswd AuthGroupFile : chemin absolu vers le .htgroup
INSA - ASI
17/28
(7/7)
Dans les <Directory> comme dans les <Limit>, il est possible de contrler laccs de certaines machines :
Deny from nom |nom partiel |IP |IP partiel idem Allow from ... Order Deny,Allow ou Order Allow,Deny
Exemple
<D i r e c t o r y / d o c r o o t > O r d e r Deny , A l l o w A l l o w from 1 9 2 . 1 Deny from a p a c h e . o r g . n e t </ D i r e c t o r y >
INSA - ASI
18/28
Rpertoires et authentication
.htaccess & AllowOverride
(1/4)
AllowOverride autorise la rednition de directives locales un rpertoire dans un chier .htaccess situ dans ce dernier : None : les chiers .htaccess sont ignors All : tout type de rednition est autoris dans le .htaccess AuthConfig : autorise lauthentication dutilisateurs FileInfo : autorise les directives lies aux types de documents Indexes : autorise lindexation des rpertoires Limit : autorise les directives de gestion daccs Options : autorise les directives se rapportant aux fonctionnalits des rpertoires
INSA - ASI
19/28
Rpertoires et authentication
Exemples de <Directory>
(2/4)
INSA - ASI
20/28
Rpertoires et authentication
Le chier .htaccess
(3/4)
Le chier .htaccess
AuthName TEXTE AuthType B a s i c A u t h U s e r F i l e <chemin a b s o l u >/. h t p a s s w d A u t h G r o u p F i l e <chemin a b s o l u >/. h t g r o u p <L i m i t GET POST> r e q u i r e g r o u p g r o u p e 1 . . . groupeN require user u t i l i s a t e u r 1 . . . utilisateurN </ L i m i t >
INSA - ASI
21/28
Rpertoires et authentication
Utilisateur et mots de passe
(4/4)
Fichier .htgroup
groupe1 u t i l i s a t e u r 1 ... groupeN u t i l i s a t e u r 1 ... ... utilisateurN utilisateurN
Fichier .htpasswd
u t i l i s a t e u r 1 : mot de p a s s e c r y p t ... u t i l i s a t e u r N : mot de p a s s e c r y p t
Remarque
Attention : tous ces chiers doivent tre inaccessibles ! ! !
INSA - ASI
22/28
Serveurs virtuels
(1/3)
Plusieurs serveurs web sur une mme machine Deux possibilits de serveurs virtuels bass sur les IP : une adresse IP pour chaque serveur virtuel bass sur les noms : mme adresse IP, mais nom pour chaque serveur virtuel
Remarque
Host: dans len-tte Http est indispensable en cas de serveur virtuel
INSA - ASI
23/28
Serveurs virtuels
Directive
(2/3)
Exemples
<V i r t u a l H o s t 193.254.105.78 > ServerAdmin c a n a r i @ t i t i . f r DocumentRoot / t i t i / d o c u m e n t s S e r v e r N a m e www . t i t i . f r ErrorLog / t i t i / logs / error_log TransferLog / t i t i / logs / access_log </ V i r t u a l H o s t > <V i r t u a l H o s t 193.254.105.79 > S e r v e r A d m i n matou@grosm i n e t . f r DocumentRoot / g r o s m i n e t / d o c u m e n t s S e r v e r N a m e www . g r o s m i n e t . f r E r r o r L o g / g r o s m i n e t / l o g s / e r r o r _ l o g T r a n s f e r L o g / g r o s m i n e t / l o g s / a c c e s s _ l o g </ V i r t u a l H o s t >
Conguration des serveurs par ajout de directives internes. Chaque serveur virtuel doit connatre la fois son IP et son nom.
INSA - ASI
24/28
Serveurs virtuels
Directives
(3/3)
Exemple
NameVirtualHost 193.254.105.78 <V i r t u a l H o s t 193.254.105.78 > ServerAdmin c a n a r i @ t i t i . f r DocumentRoot / t i t i / d o c u m e n t s S e r v e r N a m e www . t i t i . f r ErrorLog / t i t i / logs / error_log TransferLog / t i t i / logs / access_log </ V i r t u a l H o s t > <V i r t u a l H o s t 193.254.105.78 > S e r v e r A d m i n matou@grosm i n e t . f r DocumentRoot / g r o s m i n e t / d o c u m e n t s S e r v e r N a m e www . g r o s m i n e t . f r E r r o r L o g / g r o s m i n e t / l o g s / e r r o r _ l o g T r a n s f e r L o g / g r o s m i n e t / l o g s / a c c e s s _ l o g </ V i r t u a l H o s t >
INSA - ASI
25/28
Optimisation et scurit
Droits sur la racine du serveur
(1/3)
Remarque
Les rpertoires bin, conf, logs sont des rpertoires trs sensibles Le propritaire du rpertoire du serveur et lutilisateur User doivent tre dirents Seul le propritaire du serveur peut modier les chiers (chmod 755) Il faut faire particulirement attention la conguration des SSI (Server Side Includes) et des CGI (Common Gateway Interface)
INSA - ASI
26/28
Optimisation et scurit
Scurisation des SSI et des CGI
(2/3)
INSA - ASI
27/28
Optimisation et scurit
(3/3)
INSA - ASI
28/28
Rfrences
http://www.apache.org : Apache software foundation http://doc.ubuntu-fr.org/apache2 : Documentation Ubuntu sur Apache Http http://apachetoday.com : site dinformations sur Apache Http http://www.jalix.org/ressources/reseaux/apache/_fiches_ httpd/HTTPD.PS : cours de Maurice Szmurlo http://www.php.net/ : site ociel PHP