Les technologies suivantes sont nécessaires :
Le système a été testé sur :
... mais peut théoriquement fonctionner sur d'autres systèmes.
Certains paquets doivent être installés sur Linux en plus de PHP : php5-mysql pour le lien avec la base de données, php5-xsl (ou php-xml pour CentOS) pour les transformations de documents XML, php5-gd pour le traitement des images, et php5-curl qui est utilisé pour l'authentification sur le forum.
Le fichier suivant contient tout PAELLOS (WebJaxe + serveur), avec le code source :
Avec PHP5, les extensions de PHP php_xsl et php_gd2 doivent être activées, mais php_domxml doit être désactivé (c'est une extension pour PHP4).
Le dossier de WebJaxe peut être placé où on le souhaite dans le site web. La racine du site correspond souvent à un dossier appelé htdocs, dans lequel on peut placer le dossier webjaxe.
L'utilisateur PHP doit pouvoir accéder en écriture aux répertoires site_config, contribXML, sites, historique, poubelle et tmp. Il faut s'assurer que les permissions sont correctes avant de lancer WebJaxe pour la première fois.
Ouvrir la page suivante avec un navigateur :
http://[votre_site_web]/[répertoire_de_WebJaxe]/index.php
Si votre serveur web fonctionne sur un autre port que le port par défaut (80), il faut bien sûr remplacer http://[votre_site_web] par http://[votre_site_web]:[numéro de port].
Pour créer la base de données de WebJaxe, il faut indiquer le login et le mot de passe de l'administrateur de la base de données (souvent 'root' / '' ou 'root' / 'root' par défaut). La base de données créée est nommée webjaxe par défaut.
Il faut ensuite entrer les informations pour créer le compte de l'administrateur WebJaxe, qui sera le premier utilisateur du site.
La gestion du mail est utilisée pour vous alerter quand un nouveau utilisateur est inscrit, vous avez 3 options:
Ceci fait, il suffit de cliquer sur le bouton "Créer la base de données" pour terminer l'initialisation de WebJaxe.
Pour utiliser les équations avec la syntaxe TeX dans le langage XPAGES, il faut aussi configurer un petit serveur supplémentaire. En effet, l'applet Jaxe et son plugin pour XPAGES ne contiennent pas de processeur TeX (ce serait trop lourd !). Le plugin fait donc appel à un serveur, en envoyant le texte d'une équation à laquelle le serveur répond par l'image correspondante. Ce serveur se trouve déjà dans le dossier serveurtex de WebJaxe, mais il nécessite l'installation des programmes latex, dvipng et ImageMagick. Il faut aussi modifier le fichier config/XPAGES/XPAGES_config.xml à la main pour indiquer le serveur à utiliser (rechercher "tex.php" pour le retrouver). La valeur par défaut correspond à un serveur qui n'est pas forcément disponible. Les chemins vers les commandes convert et tex2png peuvent si nécessaire être modifiés dans tex.php. Il faut aussi s'assurer que l'utilisateur PHP puisse écrire dans serveurtex/CACHE.
Les informations sur l'accès à la base de données sont enregistrées dans un fichier site_config.xml, situé dans le répertoire site_config. Ce répertoire est protégé pour le serveur web Apache avec un fichier .htaccess. Ceci interdit la lecture du fichier site_config.xml directement depuis le web, tout en permettant son utilisation par WebJaxe.
Cette protection ne fonctionne qu'avec le serveur web Apache, et seulement si les .htaccess sont autorisés (cela se fait avec l'instruction AllowOverride dans httpd.conf). Si vous utilisez un autre serveur web, comme par exemple IIS, il vous faudra protéger le répertoire site_config d'une autre manière, par exemple en éditant ses propriétés et en interdisant sa lecture. La façon de faire est malheureusement différente d'un serveur à l'autre.
On peut aussi ajouter un .htaccess dans les autres répertoires pour contrôler l'accès en lecture.
Pour éviter d'avoir à gérer à la fois des utilisateurs Apache et des utilisateurs WebJaxe pour contrôler l'accès aux sites, on peut utiliser une redirection vers le script PHP lecture_fichier.php, avec l'extension Mod_rewrite d'Apache. Par exemple, il suffit de mettre le code suivant dans un .htaccess dans les dossiers contribXML et sites pour s'assurer que seuls les utilisateurs WebJaxe autorisés puissent accéder aux fichiers XML et aux sites générés avec WebJaxe :
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)$ ../php/partie_utilisateur/lecture_fichier.php?fichier=%{REQUEST_URI} </IfModule>
Ce code redirige les requêtes en lecture de tous les fichiers du répertoire vers le script lecture_fichier.php, qui ne renvoie le contenu des fichiers que pour les utilisateurs autorisés (qui doivent être connectés sur WebJaxe).
Si un gestionnaire de sécurité est activé (c'est par exemple le cas par défaut avec Ubuntu 9), il faut autoriser l'application web à faire des connexions avec mySQL en local, ainsi que lire les fichiers du site web, utiliser les fichiers de l'indexation pour les recherches sur le site, et utiliser certaines classes : créer un fichier tomcat6/conf/policy.d/paellos.policy, avec (en modifiant "NOMSITE", "serveur.smtp", "/var/www" et ".../index_lucene" si nécessaire) :
grant codeBase "file:${catalina.base}/webapps/NOMSITE/-" { permission java.net.SocketPermission "localhost:3306", "connect,resolve"; // acces a la base de donnees SQL permission java.net.SocketPermission "smtp.exemple.fr:25", "connect,resolve"; // envoi de mails permission java.io.FilePermission "/var/www/webjaxe/-", "read"; // lecture des fichiers de WebJaxe permission java.io.FilePermission "/var/www/public", "read"; // generation du site public permission java.io.FilePermission "/var/www/public/-", "read,write,delete"; // generation du site public permission java.io.FilePermission "${catalina.base}/webapps/NOMSITE/WEB-INF/sites", "read"; // sites de formation permission java.io.FilePermission "${catalina.base}/webapps/NOMSITE/WEB-INF/sites/-", "read,write,delete"; // sites de formation permission java.io.FilePermission "${catalina.base}/webapps/NOMSITE/WEB-INF/index_lucene/-", "read,write,delete"; // fichiers de l'indexation permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.compiler"; // compilation des jsp permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.compiler.*"; // compilation des jsp };
# remarque: avec Apache 2, ne pas utiliser AddModule, et remplacer httpd par apache2 dans les chemins AddModule mod_jk.c <IfModule mod_jk.c> JKLogFile /var/log/httpd/mod_jk.log JKWorkersFile /etc/httpd/workers.properties JKMount /NOMSITE/* PAELLOS </IfModule>
et en ajoutant le fichier workers.properties à côté (s'il existe déjà, il faut le combiner).
Dans chaque Virtualhost (typiquement les fichiers dans sites-enabled), il faut aussi ajouter:
<IfModule mod_jk.c> JkMountCopy On </IfModule>
Côté Tomcat, il faut un connecteur correspondant pour écouter les requêtes venant de Tomcat, comme décrit dans le fichier exemple_pour_tomcat_6_de_server.xml inclu dans PAELLOS.
mysql -u root -p > GRANT ALL ON NOMSITE.* TO adminPAELLOS@localhost IDENTIFIED BY "mon_mot_de_passe_a_changer"; > quit (le mot de passe doit être celui de ServletProperties)
Pour commencer l'utilisation du site, l'administrateur doit s'inscrire comme décrit dans la documentation de l'administration.
Les fonctionnalités de forum et de chat sont facultatives. La forum de discussion suggéré avec PAELLOS est phpBB (un plugin permet l'authentification automatique sur le forum phpBB avec la base de données de PAELLOS).
Le module mChat pour phpBB a été testé, mais d'autres solutions sont possibles. mChat a été traduit en français, mais la traduction étant à refaire à chaque nouvelle version, il est possible que la traduction en français ne soit plus disponible avec la dernière version. Ce n'est cependant pas difficile à traduire.