Académique Documents
Professionnel Documents
Culture Documents
org/tutoriel/lamp_repertoires_de_travail
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
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
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
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.
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>
## 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 !
Il vous faudra également effacer le fichier index.html pour que cela prenne effet :
sudo rm /var/www/index.html
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 :
à 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.
Problèmes
* Cas d'une erreur sur ServerName au rechargement d'apache
Erreur ServerName
127.0.0.1 domain.dnsalias.net
127.0.0.1 localhost
127.0.1.1 <hostname>
par :
Liens et ScreenCast
Reprise de l'ancienne doc : http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2_et_dyndns
Contact
Ressources
Licences