FreeBSD Serveur FreeBSD: Installation du serveur de services (svn, trac, …)

23 janvier 2008 – 0:36

Dans cet article nous allons voir l’installation d’un serveur web apache 2.2 en SSL avec svn et trac (en cgi).

Sur ce serveur nous allons commencer par installer les fonctionnalités liées à  Apache, à  savoir le svn et le trac.

Apache 2.2 SSL

Installation d’Apache

Nous allons commencer par spécifier les options avec lesquelles nous voulons installer apache en rajoutant ce qui suit au fichier /usr/local/etc/pkgtools.conf dans la section MAKE_ARGS.


'www/apache22' => [
'WITH_APR_FROM_PORTS=yes',
'WITH_ALL_MODULES=yes',
'WITH_BERKELEYDB=db42',
],

Ensuite nous lançons l’installation d’apache via la commande:

serveur2# portinstall www/apache22

Création des certificats SSL

Pour cela nous allons utiliser openssl afin de créer une clé, puis une demande de certificat que nous nous auto-signerons.

serveur2# cd
serveur2# openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus
......................++++++
...........++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key: le pass qu'il faudra conserver

serveur2# openssl req -new -key server.key -out server.csr

Enter pass phrase for server.key:le pass donné précédemment
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:nom du serveur web
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:un mot de passe inutile de le mémoriser (le plus robuste possible)
An optional company name []:

serveur2# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Signature ok
subject=************
Getting Private key
Enter pass phrase for server.key:le même pass qu'au début

Voilà maintenant, nous allons les copier aux bons endroits et à  retirer le code de la clé car sinon à chaque démarrage du serveur il sera demandé.

serveur2# cp server.key /usr/local/etc/apache22/
serveur2# cp server.crt /usr/local/etc/apache22/
serveur2# chmod 400 /usr/local/etc/apache22/server.key
serveur2# chmod 400 /usr/local/etc/apache22/server.crt
serveur2# cp /usr/local/etc/apache22/server.key /usr/local/etc/apache22/server.key.orig
serveur2# openssl rsa -in /usr/local/etc/apache22/server.key -out /usr/local/etc/apache22/server.key

Puis on va dé commenter la ligne suivante du fichier /usr/local/etc/apache22/httpd.conf:

Include etc/apache22/extra/httpd-ssl.conf

Et dans ce même fichier on va rajouter la ligne suivante afin de nous épargner un Warning:

ServerName serveur2.mondomaine.tld

Voilà  pour une configuration “Basique” d’apache 2.2 en ssl. Mettons à  jour le firewall afin d’autoriser le trafic entrant sur le port 443 en ajoutant au fichier /etc/pf.conf la ligne suivante:

pass in on $ext_if proto tcp to ($ext_if) port 443 flags S/SA keep state

On rajoute la ligne suivante au fichier /etc/rc.conf afin de pouvoir démarrer apache de manière automatique:

apache22_enable="YES"

Puis on lance les commandes suivantes pour redémarrer le firewall et lancer apache.

serveur2# /etc/rc.d/pf restart
serveur2# /usr/local/etc/rc.d/apache22 start

Subversion

Installation de subversion

Pour installer subversion nous allons commencer par éditer le fichier /usr/local/etc/pkgtools.conf pour spécifier les options que nous voulons activer en y rajoutant les lignes suivantes:


'devel/subversion-python' => [
'WITH_MOD_DAV_SVN=yes',
'WITH_PYTHON=yes',
'WITH_APACHE2_APR=yes',
],

Ensuite on lance la commande suivante pour installer subversion:

serveur2# portinstall devel/subversion-python

Voilà subversion est installer, il ne reste qu’à  créer des reprositories puis modifier la configuration d’apache. Nous allons commencer par créer le reprository et le peupler avec la hiérarchie standard.

serveur2# svnadmin create /home/$USER/svn
serveur2# mkdir /tmp/svn
serveur2# mkdir /tmp/svn/branches
serveur2# mkdir /tmp/svn/tags
serveur2# mkdir /tmp/svn/trunk
serveur2# svn import /tmp/svn/. file:///home/$USER/svn -m "Initial import"
serveur2# chown -R www:$USER /home/$USER/svn
serveur2# chmod -R 2755 /home/$USER/svn

Une fois cela fait on va créer le fichier dans lequel seront stockés les mots de passe des utilisateurs accédant au svn. Pour cela nous allons utiliser la commande htpasswd. (Lors de la première utilisation on met -c pour créer le fichier cible).

serveur2# htpasswd -cm /home/$USER/access_svn $USER1
serveur2# htpasswd -m /home/$USER/access_svn $USER2
serveur2# chown www:www /home/$USER/access_svn
serveur2# chmod 600 /home/$USER/access_svn

Ensuite il faut créer le fichier de description des droits (/home/$USER/access_svn_perm) qui doit être de la forme:

[/]
$USER1 = rw
$USER2 = r

Et lui appliquer les droits suivants:

serveur2# chown www:www /home/$USER/access_svn_perm
serveur2# chmod 600 /home/$USER/access_svn_perm

Il ne reste plus qu’à  ajouter les lignes suivantes au fichier de configuration d’apache (dans le vhost qui va bien):


DAV svn
SVNPath /home/$USER/svn
AuthType Basic
AuthName "SVN : $USER"
AuthUserFile /home/$USER/access_svn
AuthzSVNAccessFile /home/$USER/access_svn_perm
Require vaild-user

Si lors du redémarrage d’apache vous avez un Warning, il est sûrement dû au fait que la ligne suivante est en double dans le fichier /usr/local/etc/apache22/httpd.conf, supprimez en une:

LoadModule dav_module libexec/apache22/mod_dav.so

Il ne reste qu’à  redemarrer apache via la commande suivante et le tour est joué.

serveur2# /usr/local/etc/rc.d/apache22 restart

Installation de Trac / mod_python

Pour installer Trac nous allons commencer par installer le mod_python via la commande suivante:

serveur2# portinstall www/mod_python3

Puis il faut rajouter dans le fichier de configuration d’apache (/usr/local/etc/apache22/httpd.conf) la ligne suivante afin de le charger:

LoadModule python_module libexec/apache22/mod_python.so

Ensuite nous allons rajouter les lignes suivantes au fichier /usr/local/etc/pkgtools.conf afin de rendre trac plus convivial.

'www/trac' => [
'WITH_SILVERCITY=yes',
],

Puis nous allons installer trac en lançant la commande

serveur2# portinstall www/trac

Il ne nous reste plus qu’à  initialiser un environnement pour le svn précédemment créé via les commandes:

serveur2# trac-admin /home/$USER/trac initenv
serveur2# chown -R www:$USER /home/$USER/trac
serveur2# chmod -R 2755 /home/$USER/trac
serveur2# htpasswd -cm /home/$USER/access_trac $USER1
serveur2# htpasswd -m /home/$USER/access_trac $USER2
serveur2# chown www:www /home/$USER/access_trac
serveur2# chmod 600 /home/$USER/access_trac

Maintenant il faut rajouter les lignes suivantes dans le fichier de configuration d’apache afin d’y accéder:


<Location /$USER>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/$USER/trac
PythonOption TracUriRoot /$USER
</Location>
<Location /$USER/login>
AuthType Basic
AuthName "Trac"
AuthUserFile /home/$USER/access_trac
Require valid-user
</Location>

Voici le trac configuré, il ne reste qu’à  redémarrer apache et le tour est joué.

serveur2# /usr/local/etc/rc.d/apache22 restart

Installation de PHP en mod pour Apache

On va commencer comme toujours par rajouter les lignes suivantes au fichier /usr/local/etc/pkgtools.conf:

'lang/php5' => [
'WITH_APACHE=yes',
],

Ensuite on lance l’installation:

serveur2# portinstall lang/php5

Une fois ceci fait, il faut mettre le fichier de configuration de php en place:

serveur2# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Puis on ajoute au fichier de configuration d’apache la ligne suivante:

AddType application/x-httpd-php .php

Et on modifie la ligne suivante:

DirectoryIndex index.php index.html

Tags: , , , ,

You must be logged in to post a comment.