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 | + | |