  PhpCompta Installation
  originally written by Dany De Bontridder
  $Revision: 1.24 $   $Date: 2006/05/15 17:05:56 $

  Ce document dcrit l'installation complte de PhpCompta et explique
  comment ont t installs les programmes dont PhpCompta dpend. 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 dmarrage de PostgreSql
     2.3 Optimisation
     2.4 Pour la scurit

  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
     4.3 configuration de .htaccess

  5. Installation de PhpCompta
     5.1 Premire 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 donnes ici sur
  l'installation de ces produits sont destines  ceux prfrant le
  faire manuellement.


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



  Cependant, les configurations des diffrents 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 prpars, 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 prfrez avoir la dernire version disponible.
  Si vous dcidez de le compiler vous-mme, les options suivantes
  fonctionnent

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



  [1m2.2.  Configuration et dmarrage de PostgreSql[0m

  Comme d'habitude pour postgres, il faut tout d'abord dfinir, crer
  l'utilisateur postgres puis initialiser l'endroit o seront stock vos
  donnes (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 impratif que dans le fichier postmaster.conf vous ayez les
  options

  tcpip_socket = true
  port=5432


  D'autres options sont conseilles 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 impratif 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 rgler la scurit

  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 donnes trs rapide, cependant, il vous
  faudra configurer pour pouvoir en bnficier. Les paramtres par
  dfaut sont prvus pour une machine qui n'a que 16 Mb de RAM... Donc,
  aller voir la documentation sur Postgresql.org, chapitre Run-time
  Configuration.


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

    Augmenter la zone mmoire pour les tri (dans postgres.conf)
     sort_mem = 8192; cette zone mmoire est important car elle a trait
      la mmoire utilise pour les tris et les jointures! attention ce
     paramtre donne la consommation mmoire par session !

    Faites tourner rgulirement vacumdb -a -z grce au crontab(une
     fois par jour)

    Dans postgres.conf, les shared_buffers: calcules en page de 8Kb,
     la valeur par dfaut est de seulement 64, ce qui correspond 
     512Kb, une meilleure valeur est 640

  [1m2.4.  Pour la scurit[0m

  Vous pouvez ajouter la scurit  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.'



  Scurit
  # 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 dcidez de le compiler vous-mme, 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 dcidez d'avoir la mme 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 >



  Note certains ont fait ceci pour configurer Apache

  <VirtualHost localhost>
     ServerAdmin webmaster@dummy-host.example.com
     DocumentRoot /www/phpcompta/html/
     ServerName phpcompta
     php_flag session.auto_start 1
     php_flag magic_quotes_gpc 0
     php_flag session.use_trans_sid 1
     php_value include_path ".:../include:../addon"
  </VirtualHost>


  Actuellement, le rpertoire html, contient un fichier .htaccess qui
  contient le ncessaire pour que les variables php soient correctes
  (voir ``configuration de .htaccess'').


  Apache se dmarre 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 dcidez de le compiler
  vous-mme, 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 rpertoire /software/httpd-2.0.44 est le rpertoire ou vous
  installer les sources d'apache

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

  s'il n'existe pas, vous devez le crer, l'endroit o vous le trouverez
  dpend des options de compilation. Dans le cas, o vous avez compil
  php de la mme manire 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"



  [1m4.3.  configuration de .htaccess[0m

  Dans le cas o vous ne pouvez pas changer le fichier php.ini, il faut
  simplement modifier ls fichier PHPCOMPTA/html/.htaccess qui contient.


          php_value include_path ".:../include:addon"
          php_value session.use_trans_sid true
          php_value session.auto_start true
          php_value max_execution_time 120
          php_value magic_quotes_gpc 0


  Note:Normalement, vous ne devez pas changer ce fichier.



  [1m5.  Installation de PhpCompta[0m

  [1m5.1.  Premire 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



    Dcompacter le package dans le rpertoire de votre choix, et
     configurer Apache pour qu'il puisse accder au sous-rpertoire
     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 donnes (cf pg_dumpall)

    Dcompacter le package dans le rpertoire de votre choix, et
     configurer Apache pour qu'il puisse accder au sous-rpertoire
     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 donnes dans le cas d'une mise  jour.
  En cas de problme, signalez-le nous.


  IMPORTANT Vous devez effacer le rpertoire html/admin aprs
  installation ou mise  jour !!!!



