3. Configuration initiale

3.1. Configuration de la base de données PostgreSQL

3.1.1. Configuration du systeme d'authentification

Postgres dispose d'un système d'authentification très complexe pour savoir si l'utilisateur a le droit de se connecter à la base ou non. Ce système d'authentification est configurable à l'aide du fichier /etc/postgresql/pg_hba.conf. Par defaut ce fichier ressemble à cela :


# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD

local   all         postgres                                        ident sameuser

local   all         all                                             ident sameuser
host    all         all         127.0.0.1         255.255.255.255   ident sameuser
host    all         all         0.0.0.0           0.0.0.0           reject   

Il faut autoriser les connexions à la base à partir de la machine locale.


# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD

local   all         all                                             trust
host    all         all          127.0.0.1         255.255.255.0    trust
host    all         all          0.0.0.0           255.255.255.255  reject 

Une fois que vous avez modifié le fichier de configuration il faut rédémarrer PostgreSQL pour que votre modification soit prise en compte.


#/etc/init.d/postgresql restart
Restarting PostgreSQL database: postmaster
waiting for postmaster to shut down......done
postmaster successfully shut down
Starting PostgreSQL postmaster.
postmaster successfully started
.

3.1.2. Création des tables

Après avoir installé PostgreSQL nous devons créer un utilisateur ogo, une base de données dont le nom est ogo pour finalement créer toutes les tables.


#su - postgres
$createdb ogo
CREATE DATABASE
$createuser -a -d ogo
CREATE USER
$psql ogo ogo
Welcome to psql 7.3.4, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit

ogo=#\i /usr/lib/opengroupware.org/Database/PostgreSQL/pg-build-schema.psql
[ ... spip ... ]
ogo=#\q
$logout

Les tables necéssaires au bon fonctionnement de OpenGroupware.org sont crées dans la base postgres.

3.2. Lancement d'OpenGroupware.org

Une fois que la base de données est correctement initialisée nous pouvons lancer le deamon qui gère tous les services d'Ogo. Pour cela il faut taper les commandes suivantes en remplçant hostname par le nom de votre machine :


#su - root
#chown -R opengroupware.skyrix /usr/lib/opengroupware.org
$su - opengroupware
$source OpenGroupware.org.sh
$cd WOApps/OpenGroupware.woa
$ln -s ../../WebServerResources/
$cd ..
$OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware -WOHttpAllowHost hostname &
Dec 28 11:08:48 OpenGroupware [1772]: SNS disabled.
Dec 28 11:08:48 OpenGroupware [1772]: |OpenGroupware| CTI Dialers:
Dec 28 11:08:48 OpenGroupware [1772]: |OpenGroupware| SKYRiX instance initialized ..
Dec 28 11:08:48 OpenGroupware [1772]: |OpenGroupware| WOHttpAdaptor listening on address <InetSocketAddress: *:20000>
        

Voila le deamon Opengroupware.org écoute sur le port 2000 toutes les connections à partir de la machine locale (localhost). Vous pouvez préciser le nom d'une autre machine. Ou bien plusieurs machines à l'aide de la syntaxe suivante :


          -WOHttpAllowHost '([your-host],[your-host2])'

Vous pouvez tester le bon fonctionnement du deamon en lançant un browser et en visitant l'adresse suivante : http://localhost:20000/OpenGroupware/.

Si tout va bien vous devriez voir l'interface Web d'Opengroupware.org. Le problème c'est que c'est le deamon Opengroupware qui gère les connection HTTP/1.1. Et toutes les spécifications de la RFC 2616 ne sont pas encore implemantées dans le deamon. Et pour des raisons de securité et de performances il vaudrait mieux laisse le serveur Apache gere les requettes HTTP .

3.3. Module Apache

Vous pouvez utiliser un module Apache pour béneficier de toutes les fonctionnalités d'Apache et soulager le deamon Ogo de la charge liée à la gestion des connections HTTP/1.1. Le module marche aussi bien pour la version 1.3 et la version 2 d'Apache.

3.3.1. Télécharger le module

Vous devez télécharger la dernière version du module OpenGroupware à la page suivante : http://www.opengroupware.org/sources/opengroupware.org-mod_ngobjweb-latest.tar.gz.

3.3.2. Compiler le module

Vous avez besoin d'un compilateur C comme celui de la suite GCC et des bibliothèques de développement d'apache. Un petit apt-get ferra l'affaire :


            #apt-get install make gcc apache-dev
          

Il ne ne reste plus qu'à télécharger le tarball et le compiler.


            #wget http://www.opengroupware.org/sources/opengroupware.org-mod_ngobjweb-latest.tar.gz
            #tar xzf opengroupware.org-mod_ngobjweb-latest.tar.gz
            #cd opengroupware.org-mod_ngobjweb
          

Une fois que vous avez extracté les sources. Vous pouvez modifier le fichier Makefile : GNUmakefile. Vous devez remplacer la variable HTTPD et indiquer l'endroit exacte où se trouve l'executable d'Apache.

HTTPD = $(APACHE)/sbin/httpd

HTTPD = $(APACHE)/sbin/apache-ssl

Il ne vous reste plus qu'a compiler le module.


#make
[ ... spip ... ]
#ls *.so
ngobjweb_1.3.27.so
          

Ici 1.3.27 est la version d'Apache qui est installée sur la machine. Nous allons placer le module dans le nouveau repertoire : /usr/lib/opengroupware.org/WebServer.


#mkdir /usr/lib/opengroupware.org/WebServer
#mv ngobjweb_1.3.29.so /usr/lib/opengroupware.org/WebServer

Il ne nous reste plus qu'à configurer Apache pour que celui-ci utilise ce nouveau module.

3.3.3. Configurer Apache

Pour configurer le serveur HTTP Apache il faut ajouter les lignes suivantes dans le fichier /etc/apache-ssl/http.conf.


LoadModule ngobjweb_module /usr/lib/opengroupware.org/WebServer/ngobjweb_1.3.27.so
		
<LocationMatch "^/OpenGroupware/*">
  SetHandler ngobjweb-adaptor
  SetAppPort 20000
</LocationMatch>

Alias /OpenGroupware.woa/WebServerResources/ /usr/lib/opengroupware.org/WebServerResources/

La première directive du fichier de configuration indique au serveur Apache qu'il faut charger le module que nous venons de compiler. La seconde permet d'indiquer que tous les requettes qui contiennent OpenGroupware dans leur URL seront gerées par le module et enfin la dernière directive permet de faire pointer les images d'OpenGroupware.org sur le bon repertoire. Vous pouvez relancer Apache et accéder à l'interface d'OpenGroupware à l'aide de l'url suivante :

https://localhost/OpenGroupware

3.3.4. Lancer automatiquement Opengroupware.org lors du boot de la machine

Une fois que vous avez configurer les differents composants d'opengroupware, il est temps d'automatiser le lancement du programme deamon lors du boot de la machine. Pour cela nous avons besoin d'installer script suivant :

http://helms-deep.cable.nu/~rwh/howtos/opengroupware


#cd /etc/init.d/
#wget --non-verbose http://helms-deep.cable.nu/~rwh/howtos/opengroupware
15:41:55 URL:http://helms-deep.cable.nu/%7Erwh/howtos/opengroupware [1516/1516] -> "opengroupware" [1]
#chmod +x opengroupware
#update-rc.d opengroupware defaults
95Adding system startup for /etc/init.d/opengroupware ...
/etc/rc0.d/K95opengroupware -> ../init.d/opengroupware
/etc/rc1.d/K95opengroupware -> ../init.d/opengroupware
/etc/rc6.d/K95opengroupware -> ../init.d/opengroupware
/etc/rc2.d/S95opengroupware -> ../init.d/opengroupware
/etc/rc3.d/S95opengroupware -> ../init.d/opengroupware
/etc/rc4.d/S95opengroupware -> ../init.d/opengroupware
/etc/rc5.d/S95opengroupware -> ../init.d/opengroupware

Voila au prochain reboot de la machine. Le deamon OpenGroupware se lancera tout seul.