Articles
Installer SP
Sur debian
1. Installer opensp de debian
apt-get install opensp
2. Patcher le script d'initialisation d'apache2 /usr/sbin/apache2ctl.
--- /usr/sbin/apache2ctl.orig 2008-04-08 21:36:50.000000000 -0400 +++ /usr/sbin/apache2ctl 2008-04-08 21:36:14.000000000 -0400 @@ -77,6 +77,10 @@ case $ARGV in start|stop|restart|graceful|graceful-stop) + export SP_CHARSET_FIXED=NO + export SP_ENCODING=UTF-8 + export SP_BCTF=UTF-8 + export LC_ALL=fr_CA.UTF-8 $HTTPD -k $ARGV ERROR=$? ;;
3. Modifier les constantes SGML_LIBRARY et PROGRAM_ONSGMLS.
define('PROGRAM_ONSGMLS','/usr/bin/onsgmls'); define('SGML_LIBRARY', dirname(__FILE__).'/htdocs/sgml-lib');
4. Créer un répertoire temporaire
mkdir /tmp/checkphp chmod g+w /tmp/checkphp chgrp www-data /tmp/checkphp
Sur redhat/fedora
Installation de openSP 1.5
wget http://download.sourceforge.net/openjade/OpenSP-1.5.tar.gz tar xzvf OpenSP-1.5.tar.gz cd OpenSP-1.5 ./configure
Patcher le fichier include/RangeMax.cxx pour inclure la librairie des constantes: #include "constant.h"
Attention!! Attention!!! Pour avoir les messages en français il faut faire:
- Aller dans le répertoire po/ (cd po/)
- Personnellement j'ai convertit le fichier fr.po en UTF-8 (iconv, msgconv) et ensuite je l'ai compressé avec msgfmt -c fr.gmo fr.po
- Éditer le fichier Makefile (vi Makefile)
- Rechercher la ligne Catalogs et ajouter fr.gmo pour avoir ceci: CATALOGS = fr.gmo
- Revenir en ligne de commande et configurer la variable LANG à fr_CA ( export LANG=fr_CA )
- Et compiler...
make make check make install cd ..
- S'assurer qu'Apache peut lire les langues et variables nécessaires à la bonne exécution de onsgmls. Avec RedHat, le fichier /etc/sysconfig/httpd est exécuté avant de démarrer apache (httpd). Dans ce fichier (avec droit +x) j'ai:
#!/bin/sh export SP_CHARSET_FIXED=NO export SP_ENCODING=UTF-8 export SP_BCTF=UTF-8 export LC_ALL=fr_CA.UTF-8
Catalogue DTD
Il faut configurer la constante SGML_LIBRARY dans le fichier class.Validator.php vers le bon chemin. Présentement, j'ai la ligne:
define('SGML_LIBRARY', '/usr/local/validator/htdocs/sgml-lib');
Fichiers temporaires
J'envoie les fichiers temporaires vers le répertoire: /tmp/checkphp/ (accessible par apache).
Le répertoire des fichiers temporaires est configuré aussi dans une constante, dans le fichier class.Validator.php
define('CHECKPHP_TMPPATH', '/tmp/checkphp/');
Modules
Je vous conseille de désactiver mes trois modules personnels (MODULE_ENCODE, MODULE_CHECKLIST et MODULE_SAVE) en modifiant le 1 (vrai) pour un 0 (faux) dans le fichier check.php.
Encodage
Mon linux est en UTF-8, la page est en UTF-8, mes messages d'erreurs traduits (.po de opensp) sont aussi en UTF-8.
Vous devez avoir le support de la commande iconv() dans votre configuration PHP.