# Astuces pour apache2, LE serveur web par excellence

**URL:** <https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358>\
**Category:** Trucs et Astuces\
**Created:** [Février 20, 2016, 4:04 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358 "2016-02-20T16:04:54Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexmath](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8edcca/32.png) [@alexmath](https://www.debian-fr.org/u/alexmath)\
**Post date:** [Février 20, 2016, 4:04 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/1 "2016-02-20T16:04:54Z")

</div>

Donc comme le titre le laisse supposé, les explications ci-dessous vont détaillés certaines astuces qui me paraissent intéressantes pour configurer ce logiciel qui est la référence mondiale dans son domaine . Les explications (notamment certains chemins d’accés aux fichiers de configuration) sont spécifiques à un système d’exploitation linux de type debian version etch.

Dans les lignes qui vont suivre, je pars du principe que le serveur en lui même est déjà installé ainsi que les différents modules php utile pour utiliser ce langage.

[size=150]I Pour démarrer le serveur : [/size] `/etc/init.d/apache2 start`  
Pour redémarrer le serveur (à faire pour prendre en compte les modifs ci-après)

```auto

```

et pour arrêter le serveur :

```auto

```

[size=150]II Quelques options du fichier php.ini[/size]

```auto

```

Activer les variables globales : depuis la version 4.2.0 de PHP, cette option est par défaut initialisée à OFF et ce pour des raisons de sécurité. Voici un lien expliquant la raison de cette desactivation : [manuel php](http://www.manuelphp.com/php/security.globals.php)  
en root et recherchez la ligne commençant par :`register_globals`  
et remplacez off par on.

```auto

```

avec cette configuration, seulement les avertissements dus à des erreurs seront affichés. Si vous voulez afficher tous les messages, enlevez le dernier paramètre :

```auto

```

utile lors du développement, mais préférable de le désactiver sur un serveur en prod.

```auto

```

avec cette fonction activé, les erreurs sont affichés à l’écran. Pour ne plus afficher les erreurs, remplacer on par off.

```auto

```

sur on, ce paramètre enregistrera toutes les erreurs dans un fichier.

```auto

```

ici on définit le nom du fichier de log en remplaçant filename par le chemin complet vers le fichier à écrire. Pensez à decommenter la ligne pour activer la fonction.

[size=150]III Personnaliser les messages d’erreurs[/size]

Si vous voulez offrir autre chose que les traditionnelles : `Not Found
The requested URL /foru was not found on this server.`  
ou `Forbidden
You don't have permission to access /.htaccess on this server.`  
et ainsi de suite, vous pouvez demander à apache de rediriger le visiteur sur une page defini sur laquelle vous préciserez ce que vous voulez lorsqu’il générera une erreur. pour ce faire, 2 possibilités s’offrent à nous :  
-soit définir les pages à afficher dans le fichier /etc/apache2/httpd.conf soit dans un fichier .htaccess à placer à la racine du serveur pour qu’il agisse partout. Pour ce faire, quelque soit la méthode choisi, on va utiliser la directive ErrorDocument. Exemple :

```auto

```

ici, on redirige le visiteur vers une page nommé 404.html se trouvant dans le dossier erreur lui même à la racine du serveur. On peut très bien mettre l’adresse d’une page externe en mettant son adresse complète genre [lapage\_a\_afficher.html](http://www.lapage_a_afficher.html). Vous pouvez faire ceci pour chaque message d’erreur pouvant apparaître comme le 401, 402, 403, etc…

[size=150]IV Activer la prise en compte des fichiers .htaccess : [/size]  
pour ce faire, nous allons modifier quelques fichiers afin d’ordonner à apache de prendre en compte les fichiers htaccess. Premier fichier à editer, `/etc/apache2/sites-available/default`  
On va remplacer `AllowOverride None`  
par : `AllowOverride All`  
ceci est à effectuer pour les 2 premières apparitions de cette directive, c’est à dire, pour ce qui concerne /var/www seulement. On fait la même chose pour le fichier :`/etc/apache2/sites-enabled/000-default`  
[size=150]V Activer l’url rewriting[/size]

Voici le point qui m’a incité à écrire ce petit référentiel. Bien qu’ayant beaucoup cherché sur le web, je n’ai trouvé aucune doc donnant la démarche exacte à suivre pour activer l’url rewriting sur une debian etch avec apache2. Après un matin passé à tester et retester, j’y suis quand même arrivé et je vais donc vous en faire profiter.

1. Avant toute chose, assurez vous d’avoir activer la prise en compte des fichiers htaccess. Cf plus haut.  
2)Maintenant, il ne reste plus qu’a charger le module rewrite à l’aide de l’utilitaire a2enmod :

```auto

```

puis recharger la configuration d’apache :`/etc/init.d/apache2 reload`

Pour vérifier que la modif a bien été prise en compte, vous pouvez créer un script php contenant ceci : `<?php phpinfo(); ?>`  
ceci une fois exécuter dans votre navigateur vous montrera les details de la configuration d’apache. L’information qui nous intéresse se trouve dans la section apache2handler, dans la sous section Load modules vous devriez voir à la fin mod\_rewrite ce qui signifie que le mode est bien activé.  
3)Passons à la pratique : je ne m’étalerais pas sur la syntaxe à adopter pour la mise en place des redirections, je vais simplement donner un exemple basic. Commençons par créer un fichier php contenant un banal texte genre : `si je vois ce message c'est que l'url rewriting fonctionne bien`  
Mettez ce fichier à la racine de votre serveur et créez aussi un fichier .htaccess dans lequel vous allez mettre : `RewriteEngine on
RewriteRule ^test\.html$ /test.php [L]`  
La première ligne demande l’activation du mod rewrite et celle d’après indique que lors d’une requête sur la page test.html, il faut renvoyer test.php . Une fois ceci fait, dans votre navigateur favoris tapez [localhost/test.html](http://localhost/test.html) et si tout s’est bien passé, vous devriez voir apparaître le contenu de la page test.php.

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 20, 2016, 4:25 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/2 "2016-02-20T16:25:17Z")

</div>

Je viens d’essayer le REWRITING mais ca ne fonctionne pas, à cette ligne il est dit :

[quote=“alexmath”]

1. Avant toute chose, assurez vous d’avoir activer la prise en compte des fichiers htaccess. Cf plus haut.  
2)Maintenant, il ne reste plus qu’a éditer le fichier `/etc/apache2/httpd.conf`  
dans lequel on va ajouter à la fin : `LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so`  
cette ligne indique à apache de charger le module permettant la reecriture d’url à la volée. [/quote]

Pourquoi à la fin du fichier ? moi je n’ai aucunes lignes 😕

La config apache me retourne bien un :

> [@](#):
>
> Loaded Modules core mod\_log\_config mod\_logio prefork http\_core mod\_so mod\_alias mod\_auth\_basic mod\_authn\_file mod\_authz\_default mod\_authz\_groupfile mod\_authz\_host mod\_authz\_user mod\_autoindex mod\_cgi mod\_dir mod\_env mod\_mime mod\_negotiation mod\_php5 mod\_rewrite mod\_setenvif mod\_status

Une idée ?  
Merçi de votre aide

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 20, 2016, 4:25 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/3 "2016-02-20T16:25:24Z")

</div>

un tit “up” 😃

---

<div class="post-metadata">

**Author:** ![alexmath](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8edcca/32.png) [@alexmath](https://www.debian-fr.org/u/alexmath)\
**Post date:** [Février 20, 2016, 4:25 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/4 "2016-02-20T16:25:37Z")

</div>

[quote=“chris38”]Je viens d’essayer le REWRITING mais ca ne fonctionne pas, à cette ligne il est dit :

[quote=“alexmath”]

1. Avant toute chose, assurez vous d’avoir activer la prise en compte des fichiers htaccess. Cf plus haut.  
2)Maintenant, il ne reste plus qu’a éditer le fichier `/etc/apache2/httpd.conf`  
dans lequel on va ajouter à la fin : `LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so`  
cette ligne indique à apache de charger le module permettant la reecriture d’url à la volée. [/quote]

Pourquoi à la fin du fichier ? moi je n’ai aucunes lignes 😕

La config apache me retourne bien un :

> [@](#):
>
> Loaded Modules core mod\_log\_config mod\_logio prefork http\_core mod\_so mod\_alias mod\_auth\_basic mod\_authn\_file mod\_authz\_default mod\_authz\_groupfile mod\_authz\_host mod\_authz\_user mod\_autoindex mod\_cgi mod\_dir mod\_env mod\_mime mod\_negotiation mod\_php5 mod\_rewrite mod\_setenvif mod\_status

Une idée ?  
Merçi de votre aide[/quote]  
j’ai précisé à la fin du fichier dans la perpective ou il y aurait deja eu des config d’ajouté dans ce fichier. Donc tu ajoutes si ce n’est deja fait `LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so`et tu t’assures aussi d’avoir bien activé la prise en compte des fichiers htaccess

---

<div class="post-metadata">

**Author:** ![chris38](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chris38/32/12918_2.png) [@chris38](https://www.debian-fr.org/u/chris38)\
**Post date:** [Février 20, 2016, 4:25 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/5 "2016-02-20T16:25:46Z")

</div>

J’ai repris l’installation (au cas ou…) pour voir, mais toujours rien ☹

> [@](#):
>
> The requested URL /test.html was not found on this server.

Pourtant, le fichier test.php est bien dans /var/www et le fichier .htaccess aussi.

---

<div class="post-metadata">

**Author:** ![panthere](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/5daacb/32.png) [@panthere](https://www.debian-fr.org/u/panthere)\
**Post date:** [Février 20, 2016, 4:46 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/6 "2016-02-20T16:46:28Z")

</div>

voici un petit soft bien pratique ,qui ne remplace pas la doc et c’est donc pas un clikodrome

[kochizz.sourceforge.net/](http://kochizz.sourceforge.net/)

bon évidement certin vont raler parce que sa fait pas partie des paquets, mai il y a les sources disponibles donc je trouve que sa reste raisonnable 🙂

---

<div class="post-metadata">

**Author:** ![ripat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ripat](https://www.debian-fr.org/u/ripat)\
**Post date:** [Février 20, 2016, 4:46 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/7 "2016-02-20T16:46:28Z")

</div>

Attention que l’installation par défaut du paquet debian apache2 construit une arborescence modulaire qui permet de gérer facilement différents sites et configurations. Ainsi, en ce qui concerne les modules, ceux-ci sont installés dans /etc/apache2/mods-available. Si on veut activer un module particulier, il suffit de créer un symlink dans /etc/apache2/mods-enabled qui pointe vers le premier répertoire. Il existe d’ailleurs un petit utilitaire apache pour créer ce lien: a2enmod

Tous les modules installés dans le répertoire /etc/apache2/mods-enabled seront automatiquement chargés par les directives Include /etc/apache2/mods-enabled/\*.load et \*.conf du fichier apache2.conf

Je ne dis pas qu’ajouter le module “à la main” comme suggéré plus haut ne marchera pas -ça marche d’ailleurs très bien - mais on passe à côté de cette belle achitecture apache-debian.

---

<div class="post-metadata">

**Author:** ![alexmath](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8edcca/32.png) [@alexmath](https://www.debian-fr.org/u/alexmath)\
**Post date:** [Février 20, 2016, 5:29 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/8 "2016-02-20T17:29:26Z")

</div>

j’ai mis à jour mon premier post en remplaçant la methode manuel de chargement du mode rewrite par la methode utilisant a2enmode

---

<div class="post-metadata">

**Author:** ![anik](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/a9a28c/32.png) [@anik](https://www.debian-fr.org/u/anik)\
**Post date:** [Février 20, 2016, 5:48 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/9 "2016-02-20T17:48:34Z")

</div>

[quote=“alexmath”]Donc comme le titre le laisse supposé, les explications ci-dessous vont détaillés certaines astuces qui me paraissent intéressantes pour configurer ce logiciel qui est la référence mondiale dans son domaine . Les explications (notamment certains chemins d’accés aux fichiers de configuration) sont spécifiques à un système d’exploitation linux de type debian version etch.

Dans les lignes qui vont suivre, je pars du principe que le serveur en lui même est déjà installé ainsi que les différents modules php utile pour utiliser ce langage.

[size=150]I Pour démarrer le serveur : [/size] `/etc/init.d/apache2 start`

bonjour 🙂  
je suis nouvelle et je rencontre des difficultés que je n’arrive pas à résoudre.  
j’avais installé apache et tout le reste php5, mysql, phymyadmin sans problème sur mon vieil ordi, mais celui-ci est totalement hs j’ai donc un nouvel ordi qui est uniquement sous une débian etch: un défi pour moi mais en général ça fonctionne plutôt bien 🙂  
j’ai eu un décès d’un proche donc je n’ai pas utilisé les lignes de commande cette dernière année et là j’ai décidé de me faire un site perso avec spip, donc j’ai acheté un nom de domaine chez gandi, tuxfamily m’héberge très gentillement, mais voilà je coince avec l’installation d’apache2 et après moultes installations, désinstallations, purges je me retrouve avec le même problème qui semble totalement insurmontable pour une débutante mais qui sera peut être rien du tout pour des gens aussi calés et geek que vous ici.

donc, j’ai fait cette première ligne de commande en sudo et j’obtiens

`$ sudo /etc/init.d/apache2 start
Password:
Starting web server (apache2)...apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
 failed!
`

impossible d’ouvrir [127.0.0.1](http://127.0.0.1)

en effet, après maintes recherches j’ai enfin compris que le port 80 était squatté par dhttpd et après un man dhttpd j’ai appris que c’était un mini serveur statique de etch

> [@](#):
>
> dhttpd is a program that started out as a small project to write a simple server that could not be hacked

et aussi

> [@](#):
>
> …The default location to serve files from it /var/www/. You will need an index.html if you want to be able to use exactly that location. If not you have to enter the file name too. [/quote]

donc, je ne sais pas vraiment trop comment m’y prendre…  
dans /var/www/ j’ai installé spip pour le site web.  
cet index.html dont j’ai besoin si je veux utiliser /var/www je dois le créer à quel niveau?

bref, je suis perdue et j’espère qu’une bonne âme voudra bien avoir de la patience avec une débutante qui fait de son mieux pour apprendre et comprendre. merci 🙂

---

<div class="post-metadata">

**Author:** ![ripat](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/bc79bd/32.png) [@ripat](https://www.debian-fr.org/u/ripat)\
**Post date:** [Février 20, 2016, 5:49 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/10 "2016-02-20T17:49:17Z")

</div>

Tu as essayé d’arrêter dhttpd? Ou le désinstaller, tu n’en auras plus besoin quand apache tournera.

---

<div class="post-metadata">

**Author:** ![anik](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/a9a28c/32.png) [@anik](https://www.debian-fr.org/u/anik)\
**Post date:** [Février 20, 2016, 5:49 UTC](https://www.debian-fr.org/t/astuces-pour-apache2-le-serveur-web-par-excellence/8358/11 "2016-02-20T17:49:18Z")

</div>

bonjour,  
oui, merci 🙂  
c’est exactement ce que j’ai fait finalement, je lui ai jeté un petit remove et du coup ça marche !  
je ne savais même pas que je l’avais sur mon ordi!
