Installation de ProWhy 1.0 sous Linux

Nouvelle version :

Pour installer la dernière version de ProWhy, c'est ici : Installation de ProWhy sous Linux

ProWhy doit être installé sur un serveur.
C'est une application web développée avec le framework Ruby On Rails qui peut être installée sur n'importe quel serveur Linux. L'installation sur serveur Windows est également possible mais non documentée.
La documentation complète d'installation sous Linux est disponible sur ce site.
L'utilisateur n'a rien à installer sur sa machine et peut utiliser n'importe quel système d'exploitation (windows, linux, ios, android etc).
Il lui faut seulement un navigateur récent et une connexion au serveur. L'application est optimisée pour Mozilla Firefox, mais peut également être utilisée depuis IE, Chrome, Safari, etc.

Méthode alternative :

Nous mettons à votre disposition une machine virtuelle Debian/ProWhy installée et configurée afin de permettre le test et/ou l'utilisation de l'application ProWhy sans avoir à réaliser l'installation complète du serveur. Vous pouvez ainsi installer le serveur ProWhy sur une machine Windows, Linux, Mac OSX ou Solaris
Téléchargement et documentation : VM Debian / ProWhy

En cas de difficultés avec l'installation, vous pouvez poser vos questions dans le forum :
Installation et configuration

Installation testée sous Ubuntu 12.04 / 13.04 et Debian wheezy

1. Installation de Ruby.

Installations nécessaires pour rvm, ruby, rails, etc :
$ sudo apt-get update
$ sudo apt-get install git-core curl zlib1g-dev build-essential libreadline-dev libxslt-dev libxslt1-dev libxml2 libxml2-dev openssl libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libc6-dev ncurses-dev automake libtool bison subversion python

1.1 Installation avec rvm (Ruby Versions Manager).

Recommandé (rvm permet l'installation et la gestion de plusieurs versions de Ruby sur la même machine).
Cette installation permettra une évolution simplifiée vers les versions futures de ProWhy.

Il est préférable d'effectuer l'installation rvm sans les droits d'administrateur, rvm sera installé pour l'utilisateur courant.
Si vous souhaitez que l'installation rvm soit accessible pour tous les utilisateurs, vous devez ajouter sudo devant "bash" et ajouter la commande rvmsudo devant les chargements de gems.

Installation de rvm (=> informations dans https://rvm.io/rvm/install)
  • Si besoin, importer la clé :
    $ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
    Si la ligne précédente ne fonctionne pas, lancer :
    $ curl -sSL https://rvm.io/mpapis.asc | gpg --import -
  • Chargement et installation de rvm
    $ \curl -sSL https://get.rvm.io | bash -s stable
  • Ajouter dans le fichier .bashrc :
    export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
    

    Attention : si l'installation a été effectuée en root, remplacer "$HOME/.rvm" par "/usr/local/rvm" 
    

    Et exécuter :
    $ source ~/.bashrc

Installation de ruby 1.8.7

  • Configuration du proxy
    Si vous utilisez un proxy, il est possible que ruby ne se charge pas, auquel cas vous devez configurer le proxy dans git avec les commandes suivantes :
    $ export http_proxy=http://user:pass@proxyhost:proxyport
    $ git config --global http.proxy http://user:pass@proxyhost:proxyport
  • Chargement et installation de ruby :
    $ (rvmsudo) rvm install 1.8.7-head
    $ rvm use 1.8.7
    $ rvm --default use 1.8
  • En cas de problème avec rvm install 1.8.7-head :
    $ rvm requirements
    Si besoin installer les composants nécessaires, et relancer la commande.
Attention : pour lancer une application rvm en sudo, utiliser rvmsudo

1.2 Installation sans rvm.

Installer Ruby 1.8.7 et Rubygems
$ sudo apt-get install ruby1.8 rdoc libopenssl-ruby ruby1.8-dev rubygems

2. Installation de Rails.

Dans les commandes gem suivantes, ajouter sudo ou rvmsudo si nécessaire.

Installation de rails 2.3.18
$ gem install rails -v 2.3.18 --no-ri --no-rdoc

3. Installation de MySql.

$ sudo apt-get install mysql-client mysql-server
$ sudo apt-get install libmysql-ruby libmysqlclient-dev
$ (rvmsudo) gem install mysql --no-ri --no-rdoc

Attention, sur Ubuntu >= 14.04, le paquet libmysql-ruby est remplacé par ruby-mysql
Faire les installation suivantes :
$ sudo apt-get install mysql-client mysql-server 
$ sudo apt-get install libmysqlclient-dev
$ sudo apt-get install ruby-mysql
$ gem install mysql --no-ri --no-rdoc

4. Installation de RMagick.

$ sudo apt-get install graphicsmagick-libmagick-dev-compat
$ sudo apt-get install libmagickcore-dev libmagickwand-dev
$ gem install rmagick -v '2.13.2' --no-ri --no-rdoc

5. Chargement et test de l'application.

5.1 Chargement avec svn (subversion).

  • Si subversion n'est pas installé :
    $ sudo apt-get install subversion
  • Créer un répertoire prowhy et charger l'application
    $ mkdir prowhy
    $ svn checkout http://www.prowhy.org/svn/prowhy/stable/prowhy-1.0 prowhy

5.2 Installation des composants nécessaires à l'application (gems).

dans le répertoire de l'application (prowhy)
$ rake gems:install

Si erreur : 
rake aborted! 
no such file to load -- rdoc/task 

Installer rdoc :
$ gem install rdoc
et relancer la commande :
$ rake gems:install 

Si erreur :
rake aborted! 
undefined method `source_index' for Gem:Module 

Faire la mise à jour de RubyGem :
$ gem update --system 1.8.25

Et relancer la commande :
$ rake gems:install

5.3. Installation de wkhtmltopdf.

Installer une version ≥ 0.12.0

Pour Debian wheezy 64bits :
$ wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-wheezy-amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-amd64.deb

Pour Debian wheezy 32bits :
$ wget http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
$ sudo dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-i386.deb

Pour les autres distributions, installer une version ≥ 0.12.0 depuis la page :
http://wkhtmltopdf.org/downloads.html

Si vous ne trouvez pas votre distribution, des exécutables 32 et 64 bits sont disponibles dans la page de l'archive 0.12.0 à l'adresse suivante :
http://sourceforge.net/projects/wkhtmltopdf/files/archive/0.12.0/

Tester :
$ wkhtmltopdf http://www.google.com output.pdf
=> ouvrir le fichier output.pdf

5.4 Mise en place de la BDD.

Dans le répertoire de l'application (prowhy)
  • Éditer le fichier config/database.yml :
    - si besoin, modifier les noms des bases de données en mode développement et production
    - modifier le mot de passe d'accès à mysql
  • Création de la database :
    $ rake db:create
  • Création des tables :
    $ rake db:migrate
  • Insertion des données :
    $ rake db:fixtures:load

Tester l'application : dans le répertoire de l'application (prowhy)
$ ruby ./script/server
Accéder à l'application depuis un navigateur à l'adresse localhost:3000

Accéder à l'application avec un des logins suivants :
  • Administrateur
    login : admin
    passwd : admin
    
  • Utilisateur
    login : user1
    passwd : user1
    

6. Déploiement avec Apache en mode production.

Installer Apache2

$ sudo apt-get install apache2

Installer le module passenger pour Apache

$ gem install passenger -v 4.0.58 --no-rdoc --no-ri

Attention : il semblerai qu'il y ai des problèmes de fonctionnement avec les versions récentes de passenger aussi ne pas oublier de mettre la version 4.0.58

$ rvmsudo passenger-install-apache2-module

Cette commande vérifie de nombreuses dépendances.
Si besoin, effectuer les installations demandées et relancer passenger-install-apache2-module

L'installateur vous indique les chemins du module passenger à reporter dans la création du module ci-dessous.

Chargement du module passenger dans Apache

Créer 2 fichiers passenger.load et passenger.conf dans /etc/apache2/mods-available (adapter les chemins en fonction de votre configuration)

passenger.load :

LoadModule passenger_module /home/prowhy/.rvm/gems/ruby-1.8.7-head/gems/passenger-4.0.55/buildout/apache2/mod_passenger.so

passenger.conf

<IfModule mod_passenger.c>
     PassengerRoot /home/prowhy/.rvm/gems/ruby-1.8.7-head/gems/ruby-1.8.7-head/gems/passenger-4.0.55
     PassengerDefaultRuby /home/prowhy/.rvm/gems/ruby-1.8.7-head/gems/ruby-1.8.7-head/wrappers/ruby
</IfModule>

Activer le module passenger pour Apache :
$ sudo a2enmod passenger

Création de l'utilisateur "passenger" et droits d'accès

$ sudo useradd --system passenger

Ajoutez votre utilisateur courant dans le groupe passenger afin d'avoir toujours les droits pour effectuer des modifications et les mises à jour de l'application (l'information n'est prise en compte par le système qu'après redémarrage):
$ sudo usermod -a -G passenger USER_NAME

Ajouter l'information dans la configuration de Passenger (dans apache2/mods-availables/passenger.conf) :

PassengerDefaultUser passenger

Attribuer les droits d'accès pour l'utilisateur passenger :
Attention : l'application doit pouvoir écrire dans les répertoires et sous répertoires de public/pdf, public/docs et public/images/indicateurs
(adaptez le chemin en fonction de votre installation)
$ sudo chown passenger:passenger ~/prowhy/config/environment.rb
$ sudo chmod 664 ~/prowhy/config/environment.rb
$ sudo chown -R passenger:passenger ~/prowhy/public
$ sudo chmod -R 775 ~/prowhy/public

Création du lien vers le dossier public de l'application (dans /var/www par exemple)

$ sudo ln -s ~/prowhy/public /var/www/prowhy

Paramétrage : passage de ProWhy en mode production

  • Éditer le fichier config/environment.rb et dé-commenter la ligne :
    ENV['RAILS_ENV'] ||= 'production'
  • Création de la database production :
    $ rake db:create RAILS_ENV=production
    $ rake db:migrate RAILS_ENV=production
    $ rake db:fixtures:load RAILS_ENV=production

Configuration du Virtual Host Apache en mode production

Dans cet exemple, nous conservons la configuration par défaut d'Apache, et nous ajoutons notre configuration de prowhy telle que l'accès à l'application soit réalisé avec :
http://adresse_du_serveur/prowhy

  • Créer le fichier /etc/apache2/sites-available/prowhy_vhost :
    <Location /prowhy> 
        # mode production :
        RailsEnv production 
    
        # Si plusieurs versions de Ruby ont été installées avec rvm, cette ligne permet de définir
        # le chemin de la version à utiliser, si elle est différente de la configuration de Passenger.
        # Dans ce cas, décommenter la ligne suivante et mettre le chemin relatif à votre installation
        # PassengerRuby /home/prowhy/.rvm/gems/ruby-1.8.7-head/wrappers/ruby     
    
        RackBaseURI /prowhy 
        Options -MultiViews 
    </Location>
    
  • Activer le site prowhy dans Apache :
    $ sudo a2ensite prowhy_vhost
  • Relancer le serveur Apache
    $ sudo service apache2 restart

Vous pouvez désormais accéder à l'application prowhy :
http://adresse_du_serveur/prowhy

Login : admin
Passwd : admin

Also available in: PDF HTML TXT