327 lines
10 KiB
Text
327 lines
10 KiB
Text
<!doctype linuxdoc system>
|
||
<article>
|
||
<title> PhpCompta Installation</title>
|
||
<author>
|
||
<name>originally written by Dany De Bontridder </name>
|
||
</author>
|
||
<date>$Revision$ $Date$</date>
|
||
<abstract>
|
||
Ce document décrit l'installation complète de PhpCompta et explique comment
|
||
ont été installés les programmes dont PhpCompta dépend.
|
||
PhpCompta <url url="http://www.alchimerys.be/FR/phpcompta" name="PhpCompta">,
|
||
site savannah
|
||
<url url="http://savannah.nongnu.org/projects/phpcompta/" name="PhpCompta Savannah">
|
||
<!-- Table of contents -->
|
||
<toc>
|
||
<sect>Avertissement
|
||
<p> 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.
|
||
|
||
<p>Si vous installez sous Windows, il est assez compliqué de recompiler.
|
||
Il est préférable d'utiliser les programmes fournis sur <url url="http://www.postgresql.org"
|
||
name="Postgres"> et <url url="http://www.easyphp.org/" name="EasyPhp">.
|
||
|
||
|
||
<p> Cependant, les configurations des différents produits sont importantes
|
||
et devraient être lues avant d'appeler à l'aide.
|
||
</sect>
|
||
|
||
<sect>Postgresql (version 8.0.1 minimum)
|
||
<sect1>Installation
|
||
<p>
|
||
Soit avec des binaires préparés, soit à partir du code source
|
||
</p>
|
||
<p> 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.
|
||
</p>
|
||
<p>
|
||
Si vous décidez de le compiler vous-même, les
|
||
options suivantes fonctionnent
|
||
<verb>
|
||
./configure -with-tk --with-python --with-perl --prefix=/ou_vous_voulez
|
||
</verb>
|
||
</p>
|
||
</sect1>
|
||
<sect1>Configuration et démarrage de PostgreSql <label id="configuration">
|
||
<p>
|
||
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
|
||
<tscreen><verb>
|
||
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
|
||
</verb></tscreen>
|
||
</p>
|
||
<p>
|
||
Il est impératif que dans le fichier postmaster.conf vous ayez les options
|
||
<verb>
|
||
tcpip_socket = true
|
||
port=5432
|
||
</verb>
|
||
D'autres options sont conseillées pour l'optimisation de Postgresql
|
||
</p>
|
||
<p>
|
||
ne pas oublier d'ajouter dans le PATH, l'endroit où se trouve les
|
||
binaires de postgres
|
||
<verb>
|
||
ex:
|
||
export PATH=$PATH:/opt/psql732/bin
|
||
</verb>
|
||
</p>
|
||
<p>
|
||
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.
|
||
</p>
|
||
<P>
|
||
Dans PGDATA,vous trouverez le fichier nommé pg_hba.conf qui
|
||
vous permettra de régler la sécurité<newline>
|
||
|
||
Ce fichier doit au moins contenir la ligne:
|
||
<verb>
|
||
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
|
||
host all phpcompta 172.16.30.0 255.255.255.0 local
|
||
</verb>
|
||
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
|
||
</p>
|
||
</sect1>
|
||
<sect1>Optimisation
|
||
<p> 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.
|
||
|
||
<p> Les paramètres que vous pouvez utiliser si vous avez une machine d'au moins 256 Mb:
|
||
<itemize>
|
||
<item> 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 !
|
||
</item>
|
||
<item> Faites tourner régulièrement vacumdb -a -z grâce au crontab(une fois par jour)</item>
|
||
<item> 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 </item>
|
||
|
||
</itemize>
|
||
</sect1>
|
||
<sect1> Pour la sécurité
|
||
<p>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
|
||
<verb>
|
||
changement mot de passe
|
||
alter user .1. password '.2.'
|
||
</verb>
|
||
|
||
<verb>
|
||
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
|
||
</verb>
|
||
Ensuite soit vous utilisez la variable d'environnement PGPASSWORD qui contient
|
||
votre mot de passe soit avec le fichier .pgpass dont la syntaxe est
|
||
<verb>
|
||
host:port:database:username:password
|
||
</verb>
|
||
N'oubliez pas de mettre ce fichier en mode 600 !!!! Pour executer sans demande
|
||
de mot de passe host = localhost
|
||
|
||
</sect>
|
||
|
||
<sect> Apache
|
||
<sect1>Installation d'Apache
|
||
<p>
|
||
Si vous décidez de le compiler vous-même, les
|
||
options suivantes fonctionnent
|
||
<verb>
|
||
./configure --prefix=/opt/http2/ \
|
||
--enable-ssl \
|
||
--enable-http \
|
||
--enable-cgi \
|
||
--enable-so \
|
||
--enable-usertrack \
|
||
--enable-headers \
|
||
--enable-info
|
||
</verb>
|
||
</p>
|
||
</sect1>
|
||
|
||
<sect1> Configuration d'Apache
|
||
<P>
|
||
Le fichier httpd.conf doit au moins contenir.
|
||
<verb>
|
||
LoadModule php4_module modules/libphp4.so
|
||
AddType application/x-httpd-php .php4 .php3 .php .phtml
|
||
</verb>
|
||
Et si vous décidez d'avoir la même configuration que moi, mais ce
|
||
n'est pas obligatoire
|
||
<verb>
|
||
< VirtualHost 172.16.30.150 >
|
||
ServerName site
|
||
ErrorLog phpcompta-error.log
|
||
TransferLog phpcompta-debug.log
|
||
DocumentRoot /home/httpd/compta/html
|
||
</VirtualHost >
|
||
</verb>
|
||
|
||
<p> Note certains ont fait ceci pour configurer Apache
|
||
<verb>
|
||
<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>
|
||
</verb>
|
||
Actuellement, le répertoire html, contient un fichier .htaccess
|
||
qui contient le nécessaire pour que les variables php soient
|
||
correctes (voir <ref id="htaccess" name="configuration de .htaccess">).
|
||
|
||
<p>
|
||
Apache se démarre avec apachectl start
|
||
</p>
|
||
<p>
|
||
Remarque : Pour plus d'information, voir le manuel d'Apache.
|
||
|
||
</sect1>
|
||
</sect>
|
||
|
||
|
||
<sect>PHP
|
||
<sect1>Installation de PHP 4.3.1
|
||
<p>
|
||
Il doit être compilé le dernier !!!
|
||
Si vous décidez de le compiler vous-même, les
|
||
options suivantes fonctionnent
|
||
<tscreen><verb>
|
||
./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
|
||
</verb></tscreen>
|
||
|
||
le répertoire /software/httpd-2.0.44 est le répertoire ou vous installer
|
||
les sources d'apache
|
||
</p>
|
||
</sect1>
|
||
|
||
<sect1>Configuration de PHP : Fichier php.ini
|
||
<P>
|
||
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
|
||
<verb>
|
||
|
||
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"
|
||
</verb>
|
||
</p>
|
||
<sect1> configuration de .htaccess <label id="htaccess">
|
||
<p>Dans le cas où vous ne pouvez pas changer le fichier php.ini, il faut
|
||
simplement modifier ls fichier PHPCOMPTA/html/.htaccess qui contient.
|
||
|
||
<verb>
|
||
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
|
||
</verb>
|
||
Note:Normalement, vous ne devez pas changer ce fichier.
|
||
|
||
|
||
</sect1>
|
||
</sect>
|
||
<sect>Installation de PhpCompta
|
||
<sect1>Première installation
|
||
<p>
|
||
On suppose que postgresql est installé correctement
|
||
|
||
<p>Etape
|
||
<itemize>
|
||
<item> Se connecter en tant que postgres et taper les commandes
|
||
<verb>
|
||
createuser -h localhost -d -P postgres phpcompta
|
||
createdb -h localhost -O phpcompta phpcompta
|
||
</verb>
|
||
|
||
<item>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)
|
||
<item>Eventuellement changer dans constant.php votre domaine (voir manuel : Domaine)
|
||
<item>
|
||
Vous devez vous connecter sur http://votre_server/admin/setup.php
|
||
</itemize>
|
||
</sect1>
|
||
<sect1>Mise à jour
|
||
<p>Etape
|
||
<itemize>
|
||
<item> Faite un backup de toutes vos bases de données (cf pg_dumpall)
|
||
<item>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)
|
||
<item>
|
||
Vous devez connecter sur http://votre_server/admin/setup.php
|
||
</itemize>
|
||
</sect1>
|
||
</sect>
|
||
<sect>Conclusion
|
||
<p>
|
||
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.
|
||
|
||
<p>
|
||
IMPORTANT Vous devez effacer le répertoire html/admin après installation ou mise
|
||
à jour !!!!
|
||
</p>
|
||
</sect>
|
||
|
||
|
||
</article>
|