Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
linux:serveur_web:config [2011/10/20 00:49] matthieu [Redirections] |
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 | ||
| + | Exemple de redirection de la racine d'un serveur web : | ||
| + | <code apache> | ||
| + | <Directory /var/www/> | ||
| + | Options Indexes FollowSymLinks MultiViews | ||
| + | AllowOverride None | ||
| + | Order allow,deny | ||
| + | allow from all | ||
| + | RedirectMatch ^/$ /wiki/ | ||
| + | </Directory> | ||
| + | </code> | ||
| + | Exemple de redirection inconditionnelle par défaut : | ||
| + | <code apache> | ||
| + | <VirtualHost *:80> | ||
| + | RedirectMatch 301 ^/(.*) http://www.bouthors.fr/$1 | ||
| + | </VirtualHost> | ||
| + | </code> | ||
| + | |||
| + | ==== Reverse Proxy ==== | ||
| + | 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é. | ||
| + | |||
| + | 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> | ||
| + | |||
| + | Puis utiliser la directive ProxyPass. Par exemple rediriger le répertoire /wiki vers le serveur web4 : | ||
| + | <code apache> | ||
| + | ProxyPass /wiki/ http://web4.bouthors.fr/wiki/ | ||
| + | </code> | ||
| ===== Paramètres supplémentaires ===== | ===== Paramètres supplémentaires ===== | ||
| - | ==== Log ==== | + | ==== Include ==== |
| + | Include est utilisé pour insérer un autre fichier. | ||
| - | === ErrorLog === | + | Exemple (à la fin de apache2.conf) : |
| - | ^Lien |http://httpd.apache.org/docs/2.2/mod/core.html#errorlog| | + | <code apache> |
| - | ^Description|Définit où les logs d'erreur sont envoyées| | + | # Include generic snippets of statements |
| - | ^Syntaxe |%%ErrorLog file-path|syslog[:facility]%%| | + | Include conf.d/ |
| - | ^Contexte |server config, virtual host| | + | |
| - | === LogLevel === | + | # Include the virtual host configurations: |
| - | ^Lien |http://httpd.apache.org/docs/2.2/mod/core.html#loglevel| | + | Include sites-enabled/ |
| - | ^Description|Définit le niveau de verbosité| | + | </code> |
| - | ^Syntaxe |LogLevel level| | + | |
| - | ^Contexte |server config, virtual host| | + | |
| - | === CustomLog === | + | ==== Configuration de PHP ==== |
| - | ^Lien |http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog| | + | |
| - | ^Description|Définit le nom du fichier de log et son format| | + | |
| - | ^Syntaxe |%%CustomLog file|pipe format|nickname [env=[!]environment-variable]%%| | + | |
| - | ^Contexte |server config, virtual host| | + | |
| + | 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 | ||
| - | ==== Include ==== | + | Dans les cas ou il faut beaucoup de mémoire, modifier memory_limit : |
| - | ^Lien |http://httpd.apache.org/docs/2.2/fr/mod/core.html#include| | + | memory_limit = 128M |
| - | ^Description|Inclue un autre fichier ou les fichiers d'un répertoire| | + | |
| - | ^Syntaxe |%%Include file-path|directory-path%%| | + | |
| - | ^Contexte |server config, virtual host, directory| | + | |
| + | ==== 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 188: | 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 | + | |