  PhpCompta Installation
  originally written by Dany De Bontridder
  $Revision: 1.22 $   $Date: 2005/10/30 21:19:30 $

  Ce document décrit l'installation complète de PhpCompta et explique
  comment ont été installés les programmes dont PhpCompta dépend. Php-
  Compta PhpCompta <http://www.alchimerys.be/FR/phpcompta>, site savan-
  nah PhpCompta Savannah <http://savannah.nongnu.org/projects/php-
  compta/>
  ______________________________________________________________________

  Table of Contents


  1. Avertissement
  2. Postgresql (version 8.0.1 minimum)
     2.1 Installation
     2.2 Configuration et démarrage de PostgreSql
     2.3 Optimisation
     2.4 Pour la sécurité

  3. Apache
     3.1 Installation d'Apache
     3.2 Configuration d'Apache

  4. PHP
     4.1 Installation de PHP 4.3.1
     4.2 Configuration de PHP :  Fichier php.ini

  5. Installation de PhpCompta
     5.1 Première installation
     5.2 Mise à jour

  6. Conclusion


  ______________________________________________________________________

  [1m1.  Avertissement[0m

  Si vous installez sur Linux, l'installation d'apache, postgres et php
  peut se faire avec les "packages" standards fournis; ces "packages"
  sont largement suffisants. Les explications données ici sur
  l'installation de ces produits sont destinées à ceux préfèrant le
  faire manuellement.


  Si vous installez sous Windows, il est assez compliqué de recompiler.
  Il est préférable d'utiliser les programmes fournis sur Postgres
  <http://www.postgresql.org> et EasyPhp <http://www.easyphp.org/>.



  Cependant, les configurations des différents produits sont importantes
  et devraient être lues avant d'appeler à l'aide.

  [1m2.  Postgresql (version 8.0.1 minimum)[0m

  [1m2.1.  Installation[0m

  Soit avec des binaires préparés, soit à partir du code source

  Le plus simple est d'utiliser les binaires de votre distribution, ne
  compiler ces programmes que si vraiment vous devez le faire ou que
  vous préfèrez avoir la dernière version disponible.

  Si vous décidez de le compiler vous-même, les options suivantes
  fonctionnent

  ./configure -with-tk --with-python --with-perl --prefix=/ou_vous_voulez



  [1m2.2.  Configuration et démarrage de PostgreSql[0m

  Comme d'habitude pour postgres, il faut tout d'abord définir, créer
  l'utilisateur postgres puis initialiser l'endroit où seront stocké vos
  données (variable env. PGDATA), exemple


       root#mkdir /data/psql
       root#chown postgres /data/psql
       root#su - postgres
       postgres#initdb -D /data/psql
       postgres#pg_ctl -D /data/psql -o '-i' start



  Il est impératif que dans le fichier postmaster.conf vous ayez les
  options

  tcpip_socket = true
  port=5432


  D'autres options sont conseillées pour l'optimisation de Postgresql

  ne pas oublier d'ajouter dans le PATH, l'endroit où se trouve les
  binaires de postgres

  ex:
  export PATH=$PATH:/opt/psql732/bin



  Il est impératif d'avoir soit l'option -i soit la directive
  tcpip_socket=true , sinon le server HTTP ne pourra pas contacter
  PostgreSql.

  Dans PGDATA,vous trouverez le fichier nommé pg_hba.conf qui vous
  permettra de régler la sécurité

  Ce fichier doit au moins contenir la ligne:

  # TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
  host    all         phpcompta   172.16.30.0         255.255.255.0   local


  Il vaut mieux remplacer 172.16.30.0 par l'adresse du server HTTP, dans
  le cas où vous utilisez un VirtualHost avec une adresse IP, c'est
  cette adresse qu'il vous faudra mettre

  [1m2.3.  Optimisation[0m

  Posgresql est une base de données très rapide, cependant, il vous
  faudra configurer pour pouvoir en bénéficier. Les paramètres par
  défaut sont prévus pour une machine qui n'a que 16 Mb de RAM... Donc,
  aller voir la documentation sur Postgresql.org, chapitre Run-time
  Configuration.


  Les paramètres que vous pouvez utiliser si vous avez une machine d'au
  moins 256 Mb:

  ·  Augmenter la zone mémoire pour les tri (dans postgres.conf)
     sort_mem = 8192; cette zone mémoire est important car elle a trait
     à la mémoire utilisée pour les tris et les jointures! attention ce
     paramètre donne la consommation mémoire par session !

  ·  Faites tourner régulièrement vacumdb -a -z grâce au crontab(une
     fois par jour)

  ·  Dans postgres.conf, les shared_buffers: calculées en page de 8Kb,
     la valeur par défaut est de seulement 64, ce qui correspond à
     512Kb, une meilleure valeur est 640

  [1m2.4.  Pour la sécurité[0m

  Vous pouvez ajouter la sécurité à votre server Postgresql en changeant
  dans pg_hba.conf. Mais avant de faire cela, ajoutez un mot de passe à
  vos utilisateurs avec la commande remplacer .1. par le nom de
  l'utilisateur et .2. par son mot de passe

  changement mot de passe
  alter user .1. password '.2.'



  Sécurité
  # TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
  host    all         phpcompta   172.16.30.0         255.255.255.0   md5
  local    all         phpcompta   172.16.30.0         255.255.255.0   md5


  Ensuite soit vous utilisez la variable d'environnement PGPASSWORD qui
  contient votre mot de passe soit avec le fichier .pgpass dont la syn-
  taxe est

   host:port:database:username:password


  N'oubliez pas de mettre ce fichier en mode 600 !!!! Pour executer sans
  demande de mot de passe host = localhost


  [1m3.  Apache[0m

  [1m3.1.  Installation d'Apache[0m

  Si vous décidez de le compiler vous-même, les options suivantes
  fonctionnent

  ./configure --prefix=/opt/http2/ \
              --enable-ssl \
              --enable-http \
              --enable-cgi \
              --enable-so \
              --enable-usertrack \
              --enable-headers \
              --enable-info



  [1m3.2.  Configuration d'Apache[0m

  Le fichier httpd.conf doit au moins contenir.

  LoadModule      php4_module     modules/libphp4.so
  AddType application/x-httpd-php .php4 .php3 .php .phtml


  Et si vous décidez d'avoir la même configuration que moi, mais ce
  n'est pas obligatoire

  < VirtualHost 172.16.30.150 >
          ServerName site
          ErrorLog phpcompta-error.log
          TransferLog phpcompta-debug.log
          DocumentRoot /home/httpd/compta/html
  </VirtualHost >



  Apache se démarre avec apachectl start

  Remarque : Pour plus d'information, voir le manuel d'Apache.


  [1m4.  PHP[0m

  [1m4.1.  Installation de PHP 4.3.1[0m

  Il doit être compilé le dernier !!!  Si vous décidez de le compiler
  vous-même, les options suivantes fonctionnent


       ./configure --prefix=/opt/php431 \
           --with-apxs2=/opt/http2/bin/apxs \
           --with-fastcgi \
           --with-zlib \
           --with-pgsql=/usr/local/psql \
           --with-mysql \
           --with-apache2=/software/httpd-2.0.44



  le répertoire /software/httpd-2.0.44 est le répertoire ou vous
  installer les sources d'apache

  [1m4.2.  Configuration de PHP :  Fichier php.ini[0m

  s'il n'existe pas, vous devez le créer, l'endroit où vous le trouverez
  dépend des options de compilation. Dans le cas, où vous avez compilé
  php de la même manière que moi, il se trouve dans /opt/php431/lib.
  Recopier simplement le fichier fourni à cet endroit.

  Sinon, adaptez votre fichier, il doit avoir au minimum les options
  suivantes



  magic_quotes_gpc = Off
  magic_quotes_runtime = Off
  magic_quotes_sybase = Off


  [Session]
  session.save_handler      = files   ; handler used to store/retrieve data
  session.save_path         = /tmp    ; argument passed to save_handler
                                      ; in the case of files, this is the
                                      ; path where data files are stored
  session.use_cookies       = 1       ; whether to use cookies
  session.name              = PHPSESSID
                                      ; name of the session
                                      ; is used as cookie name
  session.auto_start        = 1       ; initialize session on request startup
  session.cookie_lifetime   = 0       ; lifetime in seconds of cookie
                                      ; or if 0, until browser is restarted
  session.cookie_path       = /tmp       ; the path the cookie is valid for

  allow_call_time_pass_reference = on
  register_argc_argv = on
  session.bug_compat_42 = 1
  session.bug_compat_warn = 0
  session.use_trans_sid = 1
  include_path=".:../include:addon"



  [1m5.  Installation de PhpCompta[0m

  [1m5.1.  Première installation[0m

  On suppose que postgresql est installé correctement


  Etape

  ·  Se connecter en tant que postgres et taper les commandes


     createuser -h localhost -d  -P postgres phpcompta
     createdb -h localhost -O phpcompta phpcompta



  ·  Décompacter le package dans le répertoire de votre choix, et
     configurer Apache pour qu'il puisse accèder au sous-répertoire
     html. (voir plus haut la directive DocumentRoot)

  ·  Eventuellement changer dans constant.php votre domaine (voir manuel
     : Domaine)

  ·   Vous devez vous connecter sur http://votre_server/admin/setup.php

  [1m5.2.  Mise à jour[0m

  Etape

  ·  Faite un backup de toutes vos bases de données (cf pg_dumpall)

  ·  Décompacter le package dans le répertoire de votre choix, et
     configurer Apache pour qu'il puisse accèder au sous-répertoire
     html. (voir plus haut la directive DocumentRoot)

  ·   Vous devez connecter sur http://votre_server/admin/setup.php

  [1m6.  Conclusion[0m

  En vous connectant à l'adresse http://votre_server/admin/setup.php;
  vous installerez tout ce qu'il faut, testerez votre installation et
  surtout met à jour les bases de données dans le cas d'une mise à jour.
  En cas de problème, signalez-le nous.


  IMPORTANT Vous devez effacer le répertoire html/admin après
  installation ou mise à jour !!!!



