Développer un site dans votre home

Ce week-end, un ami est passé à la maison et nous avons discuté de la facilité d’utiliser Windows pour développer un site html/php alors que sous Linux nous nous trouvons vite bloqué par des droits… Effectivement, la configuration de Apache vous demande de développer dans /var/www/html mais votre utilisateur n’a pas du tout le droit de toucher ce répertoire. Cela complique les choses pour un néophyte et peut même être bloquant.

Il existe une solution pour passer outre cela, je vais vous montrer ce que j’ai expliqué à cet ami pour pouvoir développer dans /home/votre_login sans aucune difficulté.

//**Note: En lisant ce ticket, remplacez votre_login par votre login Linux**//

Apache a un module nommé “mod_user” généralement installé sur vos distribution. Voici comment faire.

Tout d’abord, nous allons créer un répertoire dans votre home qui se nommera “public_html”. Puis nous changeons les droits de ce répertoire pour que le groupe apache puisse y accéder:

cd /home/votre_login
mkdir /home/votre_login/public_html
chmod -R 755 /home/votre_login/public_html

Maintenant le souci c’est que, même si vous avez laissé la lecture à tout le monde sur le répertoire “public_html”, le répertoire “/home/votre_login” n’est pas “traversable”. Nous allons changer cela:

cd /home
chmod 711 /home/votre_login

Cette commande va permettre à tout le monde de “traverser” votre répertoire. Cela ne veut pas dire que tout le monde pourra “lire” mais juste descendre jusqu’à des répertoires qui seront authorisés. “public_html” est justement un répertoire que nous laissons en lecture autorisé.

Reste maintenant à activer la configuration “mod_user” pour apache:

su -c "gedit /etc/httpd/conf/httpd.conf"
ou sur Ubuntu:
sudo gedit /etc/httpd/conf/httpd.conf

Après avoir tapé votre mot de passe, l’éditeur s’ouvre. Chercher ce bloc:

<IfModule mod_userdir.c>
   #
   # UserDir is disabled by default since it can confirm the presence
   # of a username on the system (depending on home directory
   # permissions).
   #
   UserDir disable

   #
   # To enable requests to /~user/ to serve the user's public_html
   # directory, remove the "UserDir disable" line above, and uncomment
   # the following line instead:
   #
   #UserDir public_html

</IfModule>

Ce que vous devez faire, c’est : -ajouter un dièse devant “UserDir disable” -enlever celui qui est devant “UserDir public_html”.

Vous devriez donc avoir cela:

<IfModule mod_userdir.c>
   #
   # UserDir is disabled by default since it can confirm the presence
   # of a username on the system (depending on home directory
   # permissions).
   #
   #UserDir disable

   #
   # To enable requests to /~user/ to serve the user's public_html
   # directory, remove the "UserDir disable" line above, and uncomment
   # the following line instead:
   #
   UserDir public_html

</IfModule>

Il doit y avoir, généralement juste en dessous, un bloc “Directory” de cette forme:

<Directory /home/*/public_html>

Enlevez alors tous les dièses depuis cette ligne jusqu’à inclut.

Maintenant, relancez Apache:

su -c "/etc/init.d/httpd restart"

Allez dans votre répertoire /home/votre_login/public_html et créez un fichier index.html… tapez un peu de code HTML ou simplement “Hello”. Enfin, ouvrez un navigateur et allez sur l’adresse: http://127.0.0.1/~votre_login/index.html et admirrez le fonctionnement.

Voilà, vous ne serez plus bloqué par les droits du répertoire /var/www/html et vous pourrez travailler facilement. Attention tout de même, cette configuration **ne doit pas être une configuration de production**, elle ne doit servir que pour développer un site.

comments powered by Disqus