Vous êtes sur la page 1sur 5

tutoriel:lamp_repertoires_de_travail - Documentation Ubuntu Francophone http://doc.ubuntu-fr.

org/tutoriel/lamp_repertoires_de_travail

Contenu | Rechercher | Menus

Ubuntu-fr
Communauté francophone d'utilisateurs d'Ubuntu

/ inscription

Piste: » lamp_repertoires_de_travail

Présentation
Mise en place
Protection de /var/www
Création des répertoires de travail
Donner les droits utilisateur aux répertoires de travail
Configuration d'alias dans apache
Ajout de liens symboliques
Éviter le 403
Finalisation
Problèmes
Liens et ScreenCast

dapper, feisty, gutsy, hardy, intrepid, lucid, serveur, tutoriel

Serveur LAMP - Créer un/des répertoires de travail

Présentation
L'erreur de beaucoup de personnes arrivant sur Ubuntu et/ou GNU/Linux est de créer des pages
internet avec des droits d'administration ou d'affecter le répertoire /var/www à un utilisateur. En
contrepartie, beaucoup d'utilisateurs trouvent également peu pratique de devoir travailler dans un
répertoire qu'ils n'ont pas choisi.
/var/www est un répertoire sous droits root. Il est donc contre indiqué de travailler dans ce
répertoire.

Ici nous allons exposer comment créer ses propres répertoires de travail avec des droits spécifiques à
une utilisation à la fois 'publique' (serveur web personnel) et 'privée' (serveur de développement).

Nous allons aussi faire en sorte de rendre /var/www inaccessible de l'extérieur ou du moins
accessible de façon ponctuelle.

Mise en place
Dans un premier temps nous allons donc rendre le dossier /var/www inaccessible. Pour cela, on édite
en super utilisateur le fichier : /etc/apache2/sites-available/default et dans la section <Directory
/var/www> on va modifier les accès :
Changez :

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None

1 sur 5 17/02/2011 10:03


tutoriel:lamp_repertoires_de_travail - Documentation Ubuntu Francophone http://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail

Order allow,deny
Allow from all
</Directory>

en :

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 # local
Allow from 192.168.1.0/24 # reseau
</Directory>

Cette modification va faire en sorte que seule votre machine (127.0.0.1) et celles de votre réseau
local (à condition que celui-ci utilise l'adresse 192.168.1.0) auront accès aux pages web situées dans
le dossier /var/www/.

Si vous ne parvenez pas à accéder au dossier localhost et que vous avez une erreur 403 à la place,
modifier la ligne # local pour avoir "Allow from 127.0.0.1 ::1/128" !
Ici nous allons placer nos répertoires dans la zone /media (en prévision d'une installation sur une clé
usb, un disque externe, une partition séparée, etc. Libre à vous de choisir le lieu … qu'il reste cohérent
quand même

sudo mkdir /media/www-dev


sudo mkdir /media/www-dev/public
sudo mkdir /media/www-dev/private

Attention:la variable '$USER' est une variable pour l'utilisateur en cours. si vous voulez affecter ces
répertoires à un autre utilisateur, donnez le nom réel de l'utilisateur.
Le 'users' par contre est un nom de group (normalement déjà présent sur votre installation). Soit
vous utilisez nom_user:nom_user, soit nom_user:users.
'users' étant souvent le group utilisé sur de l'hébergement mutualisé, ce qui vous permet de simuler
votre hébergeur au plus près.

sudo chown -R $USER:users /media/www-dev

Pour pouvoir accéder à ces répertoires, apache a besoin d'une *redirection*.


Cette *redirection* se présente sous la forme : http://nom_de_domaine.tld/nom_de_redirection
Ces *redirections* s'appellent des Alias.
Il nous faut donc ajouter deux alias, un pour public et un pour private.

Éditez en super utilisateur le fichier : /etc/apache2/sites-available/default et ajoutez à la suite


de <Directory /var/www>….</Directory> :

Dans le cas ci-dessous on accorde un accès au W3C (validateur html) et à l'espace dédié aux
développeurs d'application utilisant Paypal

## ZONE PUBLIQUE
Alias /public /media/www-dev/public
<Directory /media/www-dev/public>

2 sur 5 17/02/2011 10:03


tutoriel:lamp_repertoires_de_travail - Documentation Ubuntu Francophone http://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail

Options Indexes FollowSymLinks MultiViews


AllowOverride All
Order allow,deny
Allow from all
</Directory>

## ZONE PRIVEE
Alias /private /media/www-dev/private
<Directory /media/www-dev/private>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1 # Local
Allow from 192.168.1.0/24 # Réseau
Allow from .w3.org # W3C
Allow from sandbox.paypal.com # Paypal
</Directory>

Si vous ne parvenez pas à accéder au dossier private et que vous avez une erreur 403 à la place,
modifier la ligne # Local pour avoir "Allow from 127.0.0.1 ::1/128" !
A présent les espaces sont valides, mais non visible depuis la racine de votre serveur (c.f.:
http://localhost). Il serait donc judicieux et pratique d'y avoir accès directement, plutôt que de devoir
taper manuellement 'http://localhost/public' ou 'http://localhost/private'.
Il suffit tout simplement de créer un lien symbolique dans /var/www

Attention: Ne jamais faire un 'rm -rf' sur un lien symbolique … cette commande aura pour effet de
supprimer le contenu réel de destination du lien symbolique. Utilisez juste 'rm /dossier
/nom_symbolique' comme s'il s'agissait d'un simple fichier.
les liens symboliques dans /var/www se font via 'sudo' et donc sont en root:root. Ne changez pas
ces droits !

sudo ln -s /media/www-dev/public /var/www/public


sudo ln -s /media/www-dev/private /var/www/private

Il vous faudra également effacer le fichier index.html pour que cela prenne effet :

sudo rm /var/www/index.html

Les répertoires /var/www et /media/www-dev/private (/var/www/private) étant interdit de


l'extérieur, un visiteur tapant votre adresse (ip / no-ip , DynDNS / nom de domaine) directement sans
préciser le dossier 'public', se verra accueilli par une belle page en 403 (ou si il tente d'accéder *par
miracle* ←- faut le savoir à votre répertoire 'private')

Si vous n'avez pas de domaine (domain.tld est un exemple générique), il faudra utiliser votre IP réelle.

On va donc remédier à cela en redirigeant les visiteurs automatiquement vers le répertoire 'public' en
cas d'erreur 403.
Il suffit d'ajouter la ligne :

ErrorDocument 403 "http://domain.tld/public"

3 sur 5 17/02/2011 10:03


tutoriel:lamp_repertoires_de_travail - Documentation Ubuntu Francophone http://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail

à la suite de :

<Directory /var/www>

et :

<Directory /media/www-dev/private>

Finalisation
Voilà c'est fini. À présent il vous suffit de recharger la configuration d'apache pour rendre tout cela
opérationnel.

sudo /etc/init.d/apache2 force-reload

Problèmes
* Cas d'une erreur sur ServerName au rechargement d'apache
Erreur ServerName

* Renvoi vers votre 'livebox/neufbox/ClubInternet Box' avec un nom de domaine.


Éditez en super utilisateur le fichier : /etc/hosts et ajouter une ligne avec :

127.0.0.1 domain.dnsalias.net

* Erreur sur le localhost


Éditez en super utilisateur le fichier : /etc/hosts et remplacer les lignes :

127.0.0.1 localhost
127.0.1.1 <hostname>

par :

127.0.0.1 localhost <hostname>

Liens et ScreenCast
Reprise de l'ancienne doc : http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2_et_dyndns

Installation en vidéo (screencast) de ce tutoriel : http://doc.ubuntu-fr-secours.org/lamp/


- 04-Environnement_de_travail.ogg - 21 Mo - 15 minutes 33 sec ( pourquoi une minute de plus ).
- 04-Environnement_de_travail.avi - 39 Mo - 14 minutes 36 sec.

— Accueil Contributeur/Mainteneur : McPeter

tutoriel/lamp_repertoires_de_travail.txt · Dernière modification: Le 20/01/2011, 21:32 par


88.167.56.122
Le contenu de ce wiki est sous licence : CC BY-SA v3.0

Contact
Ressources
Licences

4 sur 5 17/02/2011 10:03


tutoriel:lamp_repertoires_de_travail - Documentation Ubuntu Francophone http://doc.ubuntu-fr.org/tutoriel/lamp_repertoires_de_travail

Propulsé par Dokuwiki

5 sur 5 17/02/2011 10:03

Vous aimerez peut-être aussi