Université Mohammed 1er Ecole Nationale des Sciences Appliquées Oujda – Maroc Département : Génie Télécommunications et Réseaux (GTR) Niveau : 4ème année Module : Introduction au système Linux
Réalisé par :
Professeur :
AFELOUAT Othmane AOURAGH Mohamed DIALLO Mamadou Tourad TINE Papa Mbaye
Année académique : 2007/2008
Mr. SABER
Introduction Apache est le serveur Web le plus performant et le plus utilisé sur Internet. C’est un logiciel libre, donc gratuit (licence GNU). Il est fourni, en standard, dans toutes les distributions Linux. Un serveur Apache caractérisé par le démon httpd, communique avec un client (IE ou Netscape) grâce un protocole HTTP (Hyper Text Transfer Protocol). I. Installation du serveur et les outils Trac et Subversion On a choisi d’installer Apache2 avec les outils Trac et subversion pour gérer nos projets Web. Tout d’abord il faut se connecter en tant que root pour ne pas taper à chaque fois la commande sudo. Il faut donc après la connexion en tant que root suivre ses étapes : # apt-get install apache2 # apt-get install subversion libapache2-svn libapache2-mod-python2.4 trac On crée le répertoire système pour les instances de Trac, par exemple dans /var/trac sans oublier de le rendre accessible en écriture par apache: # mkdir /var/trac # chown www-data:www-data /var/trac Création d'une instance Trac pour votre projet Il nous faut maintenant importer un projet dans Subversion. Pour l'exemple, nous créerons un projet nommé gtr_apache, rien de plus simple... sauf pour les feignants. Pour la création du projet, vous trouverez le code sur ce lien : http://www.prendreuncafe.com/blog/share/bash/create_svn_repo.sh (On va donner le fichier en annexe pour ne pas car vous pouvez trouver des problèmes de connexion à ce site). Il suffit donc d’enregistrer ce fichier nommé create_svn_repo.sh et le rendre exécutable par la commande # chmod +x create_svn_repo.sh et comme ça on pourra commencer à créer notre projet, voici la procédure à suivre : # create_svn_repo.sh Après l’exécution de cette commande la création du projet subversion commence et on a choisi comme nom gtr_apache et on donne le chemin où on veut mettre le projet (ici /home/ensao/gtr_apache , mais il faut au préalable que ce répertoire existe sinon vous auriez des erreurs à la suite de la création du projet) ####################################### Création d'un nouveau projet Subversion ####################################### Tapez le nom du nouveau projet : gtr_apache Tapez maintenant le chemin du répertoire source : (Note: les répertoires trunk, branches et tags seront créés automatiquement) /home/ensao/gtr_apache
ENSAO_GTR4
-1-
Installation et Configuration d’Apache
Création du projet gtr_apache depuis /home/ensao/gtr_apache... Adding
/tmp/svn/gtr_apache/trunk
Adding
/tmp/svn/gtr_apache/trunk/test
Adding
/tmp/svn/gtr_apache/trunk/test/main
... Committed revision 1.
Projet subversion gtr_apache créé avec succès !
Ainsi, on a réussi à créer notre projet gtr_apache. Ensuite, il faut initialiser l'environnement trac pour notre projet récemment importé dans Subversion, ce que l'on fait au moyen de la série de commande suivante : # trac-admin /var/trac/gtr_apache initenv # chown -R www-data /var/trac/gtr_apache Notez encore une fois que je crée la racine trac dans /var/trac mais vous pouvez tout à fait utiliser un autre emplacement. Créer un ou plusieurs utilisateurs Trac et Subversion, gérer les autorisations Créons tout d'abord le fichier de stockage des mots de passe Trac/Subversion et ajoutons un utilisateur maintener : # trac-admin /var/trac/gtr_apache permission add maintener TRAC_ADMIN On peut également imaginer la création d'un compte utilisateur développeur, qui peut créer des tickets, en fermer et maintenir le wiki : # htpasswd -c /etc/apache2/dav_svn.passwd dev # trac-admin /var/trac/gtr_apache permission add dev WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY Il nous reste qu’à désactiver les contributions anonymes comme ceci : # trac-admin /var/trac/gtr_apache permission remove anonymous WIKI_CREATE WIKI_MODIFY TICKET_CREATE TICKET_MODIFY
ENSAO_GTR4
-2-
Installation et Configuration d’Apache
Configuration au coté subversion : Côté Subversion, il nous faut autoriser les checkouts anonymes mais s'assurer qu'un utilisateur est authentifié avant d'accepter ses commits. Cela se configure très facilement dans le fichier : /var/svn/gtr_apache /conf/svnserve.conf, dans lequel vous pouvez saisir : [general] anon-access = read auth-access = write password-db = passwd # authz-db = authz realm = gtr_apache Subversion Repository II. Installer Trac WebAdmin Trac WebAdmin est une interface web d'administration de votre ou vos instance(s) Trac offrant un confort appréciable pour administrer vos projets et en gérer les paramètres. Même si nous n'avons pas encore défini de virtual host apache, rien ne nous empêche d'installer le plugin, qui passe d'abord par l'installation des setuptools : # wget http://peak.telecommunity.com/dist/ez_setup.py # python ez_setup.py
Ceci fait, téléchargez le fichier de plugin TracWebAdmin sur le site de Trac, supprimez son extension .zip et installez-le au moyen du programme easy_install précédemment installé, comme suit :
# wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.2dev_r6060py2.4.egg.zip?format=raw # mv TracWebAdmin-0.1.2dev_r6060-py2.4.egg.zip\?format\=raw TracWebAdmin.egg # easy_install TracWebAdmin.egg
Éditez votre fichier de configuration d'instance Trac : # nano /var/trac/gtr_apache/conf/trac.ini. Et ajoutez-y la section suivante (si elle n'existe pas) : [components] webadmin.* = enabled
Enregistrez le fichier et quittez.
ENSAO_GTR4
-3-
Installation et Configuration d’Apache
Créer un hôte virtuel Apache : Nous devons rendre accessible par le web notre instance de Trac ainsi que le dépôt Subversion associé, par le biais d'un hôte virtuel apache dédié, il nous faut créer le fichier trac.mondomaine.org comme suit : # nano /etc/apache2/sites-available/trac.mondomaine.org
ServerAdmin [email protected] ServerName trac.mondomaine.org DocumentRoot /var/trac/gtr_apache SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnv /var/trac/gtr_apache PythonOption TracUriRoot / PythonPath "sys.path + ['/var/trac/gtr_apache']" ErrorLog /var/log/apache2/error.trac.domaine.org.log CustomLog /var/log/apache2/access.trac.domaine.org.log combined DAV svn SVNPath /var/svn/gtr_apache AuthType Basic AuthName "gtr_apache Subversion repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user AuthType Basic AuthName "Trac login" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user
ENSAO_GTR4
-4-
Installation et Configuration d’Apache
Vous devrez bien entendu enregistrer le domaine et le sous domaine dans votre fichier de configuration DNS, voire simplement dans votre fichier /etc/hosts. Ici denzel c’est mon hostname, vous pouvez connaître votre hostname en tapant la commande # hostname. # nano /etc/hosts 127.0.0.1 localhost.localdomain localhost denzel 127.0.0.1 trac.mondomaine.org denzel
Nous utilisons mod_python (précédemment installé), n'oublions pas de l'activer :
# 2enmod mod_python Ceci fait, il nous reste à activer le nouvel hôte apache et à relancer ce dernier :
# a2ensite trac.mondomaine.org # /etc/init.d/apache2 restart
Pour vérifier que tout s'est déroulé correctement, faites pointer votre navigateur préféré vers l'adresse trac.mondomaine.org, vous devriez accéder sans encombres à votre instance nouvellement créée. Vous pouvez vous loguer en cliquant sur le lien Login et en fournissant les paramètres d'accès utilisateur que vous avez définis précédemment. Si vous vous loguez en administrateur Trac, vous devriez disposer du menu Admin donnant accès à l'extension WebAdmin où vous pourrez ajuster les paramètres de votre instance à vos besoins. Conclusion Ce mini projet nous a donc permis à comprendre le fonctionnement du serveur Apache2 et son utilité pour la création de site web. On a aussi su comment utiliser Apache avec les outils Trac et Subversion.
ENSAO_GTR4
-5-
Installation et Configuration d’Apache
Annexes : Fichier create_svn_repo.sh #!/bin/bash # Vous pouvez éditer ces variables selon vos besoins SVN_ROOT="/var/svn" SVN_TMP_PATH="/tmp/svn" APACHE_USER="www-data" APAGE_GROUP="www-data" TRAC_ROOT="/var/trac" TRAC_SHARE="/usr/share/trac"
# Ce script doit être executer avec les droits de superutilisateur test -w /root; if [ ! "$?" -eq "0" ]; then echo "Vous devez executer ce script en tant que superutilisateur." exit 0 fi
echo "#######################################" echo "Création d'un nouveau projet Subversion" echo "#######################################" echo "" echo "Tapez le nom du nouveau projet :" read PROJECT_NAME
if [ -z "$PROJECT_NAME" ]; then echo "$PROJECT_NAME n'est pas un nom de projet valide."; exit 0 fi
echo "Tapez maintenant le chemin du répertoire source :" echo "(Note: les répertoires trunk, branches et tags seront créés automatiquement)" read PROJECT_SOURCE_PATH
ENSAO_GTR4
-6-
Installation et Configuration d’Apache
if [ -z "$PROJECT_SOURCE_PATH" -o ! -d $PROJECT_SOURCE_PATH ]; then echo "$PROJECT_SOURCE_PATH n'est pas un répertoire valide."; exit 0 fi
echo "Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH..."
# Si le répertoire $SVN_ROOT n'existe pas, on le crée if [ ! -d $SVN_ROOT ]; then mkdir $SVN_ROOT fi
# Si le répertoire $SVN_TMP_PATH n'existe pas, on le crée if [ ! -d $SVN_TMP_PATH ]; then mkdir $SVN_TMP_PATH fi
# Création du répertoire du dépôt mkdir $SVN_ROOT/$PROJECT_NAME
# Création d'un répertoire temporaire de stockage avant import mkdir $SVN_TMP_PATH/$PROJECT_NAME mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk
# Copie des fichiers originaux dans le répertoire temporaire cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/
# Création du dépôt et import depuis le répertoire créé svnadmin create $SVN_ROOT/$PROJECT_NAME svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m "Initial import"
# Attribution des permissions à Apache sur le repertoire du dépot chown -R $APACHE_USER:$APACHE_GROUP $SVN_ROOT/$PROJECT_NAME ENSAO_GTR4
-7-
Installation et Configuration d’Apache
# Attribution de droits supplémentaires sudo chown -R $APACHE_USER:$APACHE_GROUP $TRAC_SHARE
# Suppression du répertoire temporaire rm -rf $SVN_TMP_PATH/$PROJECT_NAME
# Done ! echo "" echo "Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !"
echo "Voulez-vous lancer l'utilitaire de création d'environnement trac" echo "correspondant au projet ? (oui/non)"
read GENERATE_TRAC_INSTANCE
if [ $GENERATE_TRAC_INSTANCE == "oui" ]; then trac-admin $TRAC_ROOT/$PROJECT_NAME initenv chown -R $APACHE_USER:$APACHE_GROUP $TRAC_ROOT/$PROJECT_NAME fi Il suffit juste donc de créer sous le nom create_svn_repo.sh avec n’importe qu’elle éditeur de texte et l’enregistrer dans un répertoire. Puis il faut le rendre exécutable par # chmod + x create_svn_repo.sh et donc pour l’exécuter, il suffit d’être dans le répertoire contenant ce fichier et taper la commande # create_svn_repo.sh et ainsi on pourra créer notre projet comme précédemment.
ENSAO_GTR4
-8-
Installation et Configuration d’Apache
Fichiers .htaccess Les fichiers .htaccess peuvent être utilisés dans n'importe quel répertoire virtuel ou sous-répertoire. Les principales raisons d'utilisation des fichiers .htaccess sont : Gérer l'accès à certains fichiers. -
Ajouter un mime-type,
-
Protéger l'accès à un répertoire par un mot de passe,
-
Protéger l’accès à un fichier par un mot de passe,
-
Définir des pages d’erreurs personnalisées.
Dans notre cas on va l’utiliser pour gérer l’erreur 404 Not found fourni par le serveur Apache quand il ne trouve pas un fichier sur le serveur. Pour cela, on crée le fichier .htaccess dans le répertoire /var/www. # nano /var/www/.htaccess ErrorDocument 404 /erreur/404.html
Après cela il faut ajouter cette ligne aussi dans /ect/apache2/apache2.conf, faire donc : # nano /ect/apache2/apache2.conf et y ajouter ErrorDocument 404 /erreur/404.html Il faut d’abord créer le repertoire erreur dans /var/www et y créer ensuite le fichier 404.html comme suit, la procédure est donc : création du répertoire, après se placer dans ce répertoire et créer le fichier. # mkdir /var/www/erreur #cd /var/www/erreur # gedit 404
Erreur 404 Not found La page demandé n’existe pas dans le serveur.
Enregistrer le fichier avec « Ctrl+S » au format html (extension .html) avant de quitter gedit. Ainsi tous les erreurs de nature 404 Not Found vont donc être redirigés vers /var/www/erreur/404.html et donc du coup on ne vas pas afficher les informations sur notre serveur Apache ou bien le système d’exploitation utilisé par notre hôte.
ENSAO_GTR4
-9-
Installation et Configuration d’Apache