Installation

Cette page vous explique comment installer Project Web Manager en utilisant le WAR disponible dans les téléchargements.

Pour faire fonctionner l'application il vous faudra impérativement deux choses:
  • Une base donnée (MySQL ou MariaDB uniquement pour le moment)
  • Un serveur d'application Java, comme Tomcat 7.x ou un autre qui supporte la version 3 de la norme Servlet
Vous pourrez compléter l'installation avec un serveur web (Apache ou IIS) afin d'obtenir de meilleurs performances.

L'application étant en J2EE elle fonctionnera sous Windows ou Unix.

Mise à jour

Si vous passez d'une version de PWM à une autre, lisez plutôt cette documentation.

La base de données

Pour le moment, seul MySQL et MariaDB sont supportés. Le projet devrait fonctionner sous d'autre base mais il fait usage de spécificités MySQL dans ses requêtes.

  • Téléchargez la base données MySQL ou MariaDB
  • Installez la en suivant les recommandations propres à votre environnement (Windows ou Unix)
  • Pensez à indiquer un login et un mot de passe root sur votre base de données
  • Démarrez votre serveur de base de données (dépend de votre environnement)
  • Préparation de la base de données (les commandes sont les mêmes pour MySQL ou MariaDB) :
    • Connectez-vous à la base via une console en tapant la commande :
      mysql -u root -p
      pressez entrée, où root est le login de votre utilisateur ayant les droits root sur la base MySQL (celui que vous avez définit lors de l'installation).
    • MySQL vous demandera le mot de passe de l'utilisateur root.
    • Tout en étant connecté en root, créez une base de données en tapant la commande suivante :
      create database IF NOT EXISTS project_m CHARACTER SET=UTF8;
      pressez entrée afin d'exécuter la requête.
    • Utilisez la commande suivante afin d'ajouter un nouvel utilisateur à votre base de données :
      CREATE USER pwmroot IDENTIFIED BY 'votreMotDePasse';
      pressez entrée afin d'exécuter la requête.
      votreMotDePasse sera le mot de passe secret de l'utilisateur (à vous de le choisir, ne l'oubliez pas nous en aurons besoin plus tard).
    • Donnez à l'utilisateur pwmroot tous les droits sur la base project_m en utilisant la requête suivante :
      GRANT ALL PRIVILEGES ON project_m.* TO 'pwmroot'@'localhost' IDENTIFIED BY 'votreMotDePasse';FLUSH PRIVILEGES;
      pressez entrée afin d'exécuter la requête.
      Les lignes précédentes ne donnent accès que si l'utilisateur se connecte à partir de l'ordinateur qui héberge la base de données. Vous pouvez compléter si vous le souhaiter
    • Quitter votre connexion en tant que root, et reconnectez-vous en tant que pwmroot :
      exit
      pressez entrée afin d'exécuter la requête
      mysql -u pwmroot -p
      pressez entrée et indiquez le mot de passe de l'utilisateur pwmroot.
    • Tout en étant connecté, lancez la commande suivante afin de créer l'ensemble des tables et index nécessaires à Project Web Manager :
      source path/mysql-create.sql
      path est le chemin où se trouve le fichier mysql-create.sql (ex: c:/toto/titi), pressez entrée afin d'exécuter la requête.
      Remarque Il est possible que vous deviez préciser la base cible avant de lancer la commande, si c'est le cas, tapez simplement :
      USE project_m;
      Attention quel que soit votre environnement, utilisez '/' (et PAS '\') comme délimiteur de répertoire, il ne faut pas qu'il y est d'espace dans le chemin.
    • Quitter votre connexion :
      exit
      pressez entrée afin d'exécuter la requête

La base de données est en place, afin que les utilisateurs puissent ajouter des fichiers supérieurs à 2Mg, nous devons modifier le fichier de configuration du serveur MySQL.

Remarquez que dans PWM, la taille de chaque pièce jointe ne doit pas dépasser 2Mg et la somme de toutes les pièces jointes pour une mise à jour ou une création est de 16Mg.

  • Arrêtez votre serveur MySQL
  • Trouvez l'emplacement de votre fichier de configuration (il se nomme myxxxxx.ini sous Windows ou myxxxx.cfg ou myxxxx.cnf sous Unix). Notez que xxxx peut être vide ou porter le nom de votre choix.
  • Editez le fichier.
  • Ajoutez ou modifiez la section [mysqld]
    max_allowed_packet=20M
  • Ajoutez ou modifiez la section [mysqldump]
    max_allowed_packet=20M
  • Sauvegardez le fichier et redémarrez votre serveur MySQL.

Vous pouvez compléter les sections MySQL en fonction des optimisations qui vous intéresses.

N'oubliez pas de redémarrez votre serveur MySQL.

Le serveur d'Application

Comme toute application J2EE, vous aurez besoin d'un serveur d'application Java. Dans notre cas, il est obligatoire que ce dernier support la version 3.0 de la norme servlet (regardez la documentation de votre serveur).

Voici comment configurer un serveur Tomcat 7.x

  • Téléchargez Tomcat (v7.x minimum) (prenez la version adaptée à votre système)
  • Dé-zippez ou installez le fichier que vous avez téléchargé.
  • Si vous le souhaitez, vous pouvez compléter l'installation avec la librairie APR de Tomcat (http://tomcat.apache.org/native-doc/index.html)
  • Arrêtez votre serveur Tomcat et copiez l'un des fichiers suivants (en fonction de votre base de données) dans le répertoire Tomcat/lib :
    • MySQL : mysql-connector-java-5.x.y-bin.jar téléchargeable ici Prenez la version Platform Independent.
    • MariaDB : mariadb-java-client-1.x.x.jar téléchargeable ici Prenez le fichier JAR.

L'application à proprement parler

Avant de pouvoir utiliser l'application vous devrez :
  • indiquer les informations relatives à la base de données
  • configurer le service de messagerie Spring
  • configurer le service de fichier temporaire Spring
  • configurer le service d'authentification de gestion de domaine Spring
  • configurer les logs

Concernant la base de données :
  • Ouvrez le fichier WAR via un utilitaire gérant les Zip/Tar (comme par exemple 7-Zip pour Windows)
  • Editez le fichier se trouvant dans le dossier META-INF et portant le nom context.xml
  • Modifiez dans le fichier le login et le password d'accès à la base de données
  • Utilisez ceux que vous avez rentré lors de la création de l'utilisateur pwmroot:
    ...
    username="pwmroot"
    password="votreMotDePasse"
    ... />
  • Si votre base est de type MySQL :
    ...
    driverClassName="com.mysql.jdbc.Driver"
    ... />
  • Si votre base est de type MariaDB :
    ...
    driverClassName="org.mariadb.jdbc.Driver"
    ... />
  • Sauvegardez vos modifications

Concernant le service de messagerie Spring :
  • Ouvrez le fichier WAR via un utilitaire gérant les Zip/Tar (comme par exemple 7-Zip pour Windows)
  • Editez le fichier se trouvant dans le dossier WEB-INF\classes\spring et portant le nom mailBusinessServiceContext.xml
  • Si la machine qui héberge le serveur d'application a le droit de faire du mail forwarding, vous n'avez rien à modifier. Sinon vous pouvez préciser :
    • serverName représente le nom du serveur de messagerie, son IP ou son nom DNS
    • login représente le login nécessaire pour envoyer des mails (si votre serveur de messagerie en a besoin)
    • password représente le mot de passe nécessaire pour envoyer des mails (si votre serveur de messagerie en a besoin)
    • port représente le numéro de port du serveur de messagerie
    • ssl indiquez true si votre serveur de messagerie est en SSL
    • id un nom de référence qui permet de lier les services entre eux. Vous pouvez créer plusieurs services de messageries si vous le souhaitez.
    <bean class="pwm.bs.mail.JavaMailService" id="Your-IMailService" ...>
     <property name="serverName" value="localhost" />
     <property name="forbidenDomain">
     <array>
      <value>1</value>
     </array>
     </property>
    </bean>

    Un autre exemple :
    <bean class="pwm.bs.mail.JavaMailService" id="Your-IMailService-2" ...>
     <property name="serverName" value="smtp.mydomain.com" />
     <property name="login" value="toto@mydomain.com" />
     <property name="password" value="titi" />
     <property name="port" value="587" />
     <property name="ssl" value="true" />
    </bean>
  • Sauvegardez vos modifications
  • En même temps, vous pouvez modifier le service Spring IUserMailService en modifiant la valeur de la propiété fromEmail. Cette dernière représente l'adresse mail from qui sera dans tous les emails envoyés par PWM.
    <bean id="IUserMailService" ... >
     <property name="mailService" ref="Your-IMailService" />
    ...
     <property name="fromEmail" value="admin@mydomain.com"" />
    ...
    </bean>

    Remarquez la valeur de la propriété mailService qui pointe sur votre service mail déclaré précédemment.

Concernant le service de fichier temporaire Spring :
  • Ouvrez le fichier WAR via un utilitaire gérant les Zip/Tar (comme par exemple 7-Zip pour Windows)
  • Editez le fichier se trouvant dans le dossier WEB-INF\classes\spring et portant le nom technicalServiceContext.xml
  • Vous devrez y indiquer un répertoire où le processus Tomcat aura les droits de lectures et d'écritures. Des fichiers temporaires seront placés dans ce répertoire.
    <bean id="IFileService" ...>
     <property name="directory" value="c:/temp/" />
    </bean>
  • Sauvegardez vos modifications

Concernant le service d'authentification de gestion de domaine Spring :
  • Ouvrez le fichier WAR via un utilitaire gérant les Zip/Tar (comme par exemple 7-Zip pour Windows)
  • Editez le fichier se trouvant dans le dossier WEB-INF\classes\spring et portant le nom technicalServiceContext.xml
  • Vous devrez choisir un login et un mot de passe pour la console du super utilisateur. Ce dernier est responsable de la gestion des licences et la créatioin des domaines. Vous pourrez aussi spécifier une langues (fr pour français or en pour anglais).
    <bean id="IAdminAuthenticationService" ...>
     <property name="login" value="toto" />
     <property name="password" value="titi" />
     <property name="locale" value="en" />
    </bean>
  • Sauvegardez vos modifications. Vous pouvez choisir le login et mot de passe de votre choix mais vous ne pouvez pas utiliser de champs vides.

Concernant la configuration du log :
  • Ouvrez le fichier WAR via un utilitaire gérant les Zip/Tar (comme par exemple 7-Zip pour Windows)
  • Editez le fichier se trouvant dans le dossier WEB-INF\classes\ et portant le nom log4j.properties
  • Vous devrez modifier au moins le chemin du fichier de log :
    ...
    log4j.appender.localFile.File=c:/toto/titi.log
    ...
  • Sauvegardez vos modifications. Vous pouvez compléter en modifiant la configuration des mails (ou la retirer).

Démarrer l'application

Maintenant que tout est en place nous allons lancer l'application.

Arrêtez votre serveur d'application.

Copiez simplement le fichier WAR dans le répertoire dédié aux applications Web (sous Tomcat c'est le répertoire webapps).

Démarrez votre serveur d'application.

Regardez les logs du serveur d'application, si tout se passe bien, rendez-vous sur la console du super administrateur : http://localhost:8080/pwm/adminLogon (localhost ainsi que le port peuvent être différent en fonction de votre configuration)

Utilisez le login et le mot de passe que vous avez indiquez dans le fichier technicalServiceContext.xml.

Cliquez sur la clef dorée (en haut à gauche de votre écran).

Cela vous amènera sur un écran de création de domaine. Vous devrez préciser l'identité du premier des adminitrateurs du nouveau domaine ainsi que les détails relatifs à la licence. Un mail sera automatiquement envoyé au nouvel administrateur lui indiquant ses identifiants.

Quittez la console du super administrateur (utilisez l'icône représenté par une prise électrique).

Consultez vos fichiers de log, si tout va bien, connectez-vous sur l'application : http://localhost:8080/pwm/logon