Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
linux:serveur_web:config [2011/11/30 23:29] matthieu [Include] |
linux:serveur_web:config [2012/01/06 10:32] (Version actuelle) matthieu [Redirections] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag>fr fr:linux fr:serveur fr:web}} | ||
====== Configuration d'Apache ====== | ====== Configuration d'Apache ====== | ||
- | Cette page décrit comment fonctionne la configuration d'un site web avec Apache. | + | Cette page décrit comment fonctionne la configuration d'un site web avec [[linux:serveur_web|Apache]]. |
===== Structure ===== | ===== Structure ===== | ||
Ligne 38: | Ligne 39: | ||
* DocumentRoot qui permet de définir la racine du serveur web "/", par exemple : | * DocumentRoot qui permet de définir la racine du serveur web "/", par exemple : | ||
<code apache> | <code apache> | ||
- | DocumentRoot /var/www | + | DocumentRoot /var/www |
</code> | </code> | ||
* Alias qui est utilisée pour définir une sous partie du serveur web, par exemple "/wiki" : | * Alias qui est utilisée pour définir une sous partie du serveur web, par exemple "/wiki" : | ||
<code apache> | <code apache> | ||
- | Alias /wiki /opt/dokuwiki | + | Alias /wiki /opt/dokuwiki |
</code> | </code> | ||
Ligne 54: | Ligne 55: | ||
Exemple d'accès total : | Exemple d'accès total : | ||
<code apache> | <code apache> | ||
- | Alias /wiki /opt/dokuwiki | + | Alias /wiki /opt/dokuwiki |
<Directory /opt/dokuwiki> | <Directory /opt/dokuwiki> | ||
allow from all | allow from all | ||
Ligne 74: | Ligne 75: | ||
Par exemple avec l'autorisation de suivre les liens symboliques : | Par exemple avec l'autorisation de suivre les liens symboliques : | ||
<code apache> | <code apache> | ||
- | Alias /wiki /opt/dokuwiki | + | Alias /wiki /opt/dokuwiki |
<Directory /opt/dokuwiki> | <Directory /opt/dokuwiki> | ||
Options FollowSymLinks | Options FollowSymLinks | ||
Ligne 91: | Ligne 92: | ||
Enfin, il est possible de redéfinir des options directement dans les répertoires avec le fichier ".htaccess". Les options autorisées dans ce fichier sont définies avec la commande "AllowOverride". Par exemple : | Enfin, il est possible de redéfinir des options directement dans les répertoires avec le fichier ".htaccess". Les options autorisées dans ce fichier sont définies avec la commande "AllowOverride". Par exemple : | ||
<code apache> | <code apache> | ||
- | Alias /wiki /opt/dokuwiki | + | Alias /wiki /opt/dokuwiki |
<Directory /opt/dokuwiki/> | <Directory /opt/dokuwiki/> | ||
Options +FollowSymLinks | Options +FollowSymLinks | ||
Ligne 119: | Ligne 120: | ||
- | ===== Virtual hosting et redirections ===== | + | ===== Virtual hosting, redirections et reverse proxy ===== |
Le virtual hosting est utilisé pour héberger plusieurs site webs sur une seule IP publique. Apache permet plusieurs mécanismes : | Le virtual hosting est utilisé pour héberger plusieurs site webs sur une seule IP publique. Apache permet plusieurs mécanismes : | ||
* l'hébergement de plusieurs sites webs virtuels | * l'hébergement de plusieurs sites webs virtuels | ||
Ligne 130: | Ligne 131: | ||
* <VirtualHost> définit un virtual host | * <VirtualHost> définit un virtual host | ||
* ServerName définit le nom d'hôte du <VirtualHost> | * ServerName définit le nom d'hôte du <VirtualHost> | ||
+ | * ServerAlias permet d'ajouter d'autres noms en plus de ServerName | ||
Par exemple pour héberger www.bouthors.fr et web3.bouthors.fr sur le même apache avec deux configurations différentes : | Par exemple pour héberger www.bouthors.fr et web3.bouthors.fr sur le même apache avec deux configurations différentes : | ||
- | FIXME | + | <code apache> |
+ | <VirtualHost *:80> | ||
+ | ServerName www.bouthors.fr | ||
+ | ServerAlias ipv6.bouthors.fr | ||
+ | DocumentRoot /var/www | ||
+ | |||
+ | ... | ||
+ | |||
+ | </VirtualHost> | ||
+ | <VirtualHost *:80> | ||
+ | ServerName web3.bouthors.fr | ||
+ | DocumentRoot /var/www | ||
+ | |||
+ | ... | ||
+ | |||
+ | </VirtualHost> | ||
+ | </code> | ||
==== Redirections ==== | ==== Redirections ==== | ||
Les redirections sont très utilisées, elles permettent d'indiquer à l'utilisateur de faire sa requête auprès d'une autre url. | Les redirections sont très utilisées, elles permettent d'indiquer à l'utilisateur de faire sa requête auprès d'une autre url. | ||
Les commandes utilisées sont : | Les commandes utilisées sont : | ||
- | * Redirect redirige un client d'une URL vers une autre. Redirige également toutes les sous URL | + | * Redirect redirige un client d'une URL vers une autre. Cette directive map un chemin vers un autre, la cible doit être un chemin absolu. |
* RedirectMatch redirige les URL correspondant à une expression régulière | * RedirectMatch redirige les URL correspondant à une expression régulière | ||
Ligne 159: | Ligne 177: | ||
</VirtualHost> | </VirtualHost> | ||
</code> | </code> | ||
- | ===== Paramètres supplémentaires ===== | ||
- | ==== Log ==== | + | ==== Reverse Proxy ==== |
- | Les logs peuvent être contrôlées de différentes façons, voici quelques paramètres fréquents : | + | Apache peut également agir en tant que reverse proxy et transmettre la requête à un autre serveur web. Le module mod-proxy est alors utilisé. |
- | * CustomLog : Définit le nom du fichier de log et son format | + | |
- | * ErrorLog : Définit où les logs d'erreur sont envoyées | + | |
- | * LogLevel : Définit le niveau de verbosité | + | |
+ | Il faut dans un premier temps activer mod-proxy : | ||
+ | <code> | ||
+ | # a2enmod proxy_http | ||
+ | Considering dependency proxy for proxy_http: | ||
+ | Enabling module proxy. | ||
+ | Enabling module proxy_http. | ||
+ | Run '/etc/init.d/apache2 restart' to activate new configuration! | ||
+ | # /etc/init.d/apache2 restart | ||
+ | </code> | ||
- | Exemple : | + | Puis utiliser la directive ProxyPass. Par exemple rediriger le répertoire /wiki vers le serveur web4 : |
<code apache> | <code apache> | ||
- | ErrorLog ${APACHE_LOG_DIR}/error.log | + | ProxyPass /wiki/ http://web4.bouthors.fr/wiki/ |
- | + | ||
- | # Possible values include: debug, info, notice, warn, error, crit, | + | |
- | # alert, emerg. | + | |
- | LogLevel warn | + | |
- | + | ||
- | CustomLog ${APACHE_LOG_DIR}/access.log combined | + | |
</code> | </code> | ||
- | + | ===== Paramètres supplémentaires ===== | |
- | + | ||
==== Include ==== | ==== Include ==== | ||
Ligne 194: | Ligne 209: | ||
</code> | </code> | ||
+ | ==== Configuration de PHP ==== | ||
+ | Dans ///etc/php5/apache2/php.ini// configurer la taille maximum d'upload autorisé, par exemple : | ||
+ | upload_max_filesize = 15M | ||
+ | |||
+ | Il est également nécessaire de modifier la taille des posts : | ||
+ | post_max_size = 8M | ||
+ | |||
+ | Dans les cas ou il faut beaucoup de mémoire, modifier memory_limit : | ||
+ | memory_limit = 128M | ||
+ | |||
+ | |||
+ | ==== Log ==== | ||
+ | Les logs peuvent être contrôlées de différentes façons, voici quelques paramètres fréquents : | ||
+ | * CustomLog : Définit le nom du fichier de log et son format | ||
+ | * ErrorLog : Définit où les logs d'erreur sont envoyées | ||
+ | * LogLevel : Définit le niveau de verbosité | ||
+ | |||
+ | |||
+ | Exemple : | ||
+ | <code apache> | ||
+ | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | |||
+ | # Possible values include: debug, info, notice, warn, error, crit, | ||
+ | # alert, emerg. | ||
+ | LogLevel warn | ||
+ | |||
+ | CustomLog ${APACHE_LOG_DIR}/access.log combined | ||
+ | </code> | ||
==== Encodage des caractères spéciaux ==== | ==== Encodage des caractères spéciaux ==== | ||
Ligne 209: | Ligne 252: | ||
</file> | </file> | ||
- | + | ===== Links ===== | |
- | + | * [[linux:serveur_web]] | |
- | ==== Configuration de PHP ==== | + | |
- | + | ||
- | Dans ///etc/php5/apache2/php.ini// configurer la taille maximum d'upload autorisé, par exemple : | + | |
- | upload_max_filesize = 15M | + | |