Installation sur un serveur GNU/Linux Ubuntu : Différence entre versions
(→Passenger (mod_rails)) |
|||
(23 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 7 : | Ligne 7 : | ||
Pour information, notre solution s'appuie sur une [http://fr.wikipedia.org/wiki/Architecture_trois_tiers Architecture 3 tiers]. | Pour information, notre solution s'appuie sur une [http://fr.wikipedia.org/wiki/Architecture_trois_tiers Architecture 3 tiers]. | ||
+ | [[Fichier:Archi_3tiers.png|center|Architecture 3 tiers]] | ||
== Prérequis == | == Prérequis == | ||
Ligne 23 : | Ligne 24 : | ||
* Ruby 1.9.3 ; | * Ruby 1.9.3 ; | ||
* Rails 3.2.18 ; | * Rails 3.2.18 ; | ||
− | * Serveur PostgreSQL | + | * Serveur PostgreSQL 9.3 ; |
== Installation == | == Installation == | ||
Ligne 31 : | Ligne 32 : | ||
Avant d'installer quoique ce soit, assurez-vous que votre système soit à jour :<br /> | Avant d'installer quoique ce soit, assurez-vous que votre système soit à jour :<br /> | ||
− | <code># apt-get update</code> | + | <code># apt-get update</code><br /> |
+ | <code># apt-get install git</code> | ||
Ligne 46 : | Ligne 48 : | ||
<br /> | <br /> | ||
<code># apt-get install postgresql postgresql-contrib</code><br /> | <code># apt-get install postgresql postgresql-contrib</code><br /> | ||
+ | <br /> | ||
+ | Initialiser le moteur de base de données (avec le bon encoding)<br /> | ||
+ | <code> pg_dropcluster --stop 9.3 main</code><br /> | ||
+ | <code> pg_createcluster --start -e UTF-8 9.3 main</code><br /> | ||
<br /> | <br /> | ||
Initialiser le mot de passe administrateur de PostgreSQL :<br /> | Initialiser le mot de passe administrateur de PostgreSQL :<br /> | ||
Ligne 52 : | Ligne 58 : | ||
<code>postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'MyGreatPassword' ;</code><br /> | <code>postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'MyGreatPassword' ;</code><br /> | ||
<code>postgres=# \q</code><br /> | <code>postgres=# \q</code><br /> | ||
− | + | ||
<br /> | <br /> | ||
Le nouveau mot de passe administrateur (postgres) est donc "MyGreatPassword". | Le nouveau mot de passe administrateur (postgres) est donc "MyGreatPassword". | ||
Ligne 58 : | Ligne 64 : | ||
<code># vi /etc/postgresql/9.3/main/pg_hba.conf</code><br /> | <code># vi /etc/postgresql/9.3/main/pg_hba.conf</code><br /> | ||
− | <code>local all | + | <code>local all postgres password</code><br /> |
<code># service postgresql restart</code><br /> | <code># service postgresql restart</code><br /> | ||
Ligne 94 : | Ligne 100 : | ||
Attention à bien copier le code de configuration du serveur apache !<br /> | Attention à bien copier le code de configuration du serveur apache !<br /> | ||
Dans mon exemple : <br /> | Dans mon exemple : <br /> | ||
− | <code>LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so/code><br /> | + | <code>LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so</code><br /> |
<code><IfModule mod_passenger.c></code><br /> | <code><IfModule mod_passenger.c></code><br /> | ||
<code>PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.53</code><br /> | <code>PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.53</code><br /> | ||
Ligne 106 : | Ligne 112 : | ||
<code># cd webapps/</code><br /> | <code># cd webapps/</code><br /> | ||
<code># git clone https://github.com/SIGIRE/CoRM.git</code><br /> | <code># git clone https://github.com/SIGIRE/CoRM.git</code><br /> | ||
− | |||
<code># cd CoRM/</code><br /> | <code># cd CoRM/</code><br /> | ||
Ligne 113 : | Ligne 118 : | ||
Ajouter les lignes suivantes au fichier de configuration du serveur web. | Ajouter les lignes suivantes au fichier de configuration du serveur web. | ||
− | <code># vi /etc/ | + | <code># vi /etc/apache2/apache2.conf</code><br /> |
− | <code>LoadModule passenger_module / | + | <code>LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so</code><br /> |
<code><IfModule mod_passenger.c></code><br /> | <code><IfModule mod_passenger.c></code><br /> | ||
− | <code>PassengerRoot / | + | <code>PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.53</code><br /> |
− | <code>PassengerDefaultRuby /usr | + | <code>PassengerDefaultRuby /usr/bin/ruby1.9.1</code><br /> |
<code></IfModule></code><br /> | <code></IfModule></code><br /> | ||
==== VHOST ==== | ==== VHOST ==== | ||
− | <code># vi /etc/ | + | <code># vi /etc/apache2/sites-available/my_CoRM_Apps.conf</code><br /> |
− | <code><VirtualHost 192.168. | + | <code><VirtualHost 192.168.0.63:80></code><br /> |
<code> ServerName www.domain.tld</code><br /> | <code> ServerName www.domain.tld</code><br /> | ||
<code> # !!! Be sure to point DocumentRoot to 'public'!</code><br /> | <code> # !!! Be sure to point DocumentRoot to 'public'!</code><br /> | ||
Ligne 132 : | Ligne 137 : | ||
<code> # MultiViews must be turned off.</code><br /> | <code> # MultiViews must be turned off.</code><br /> | ||
<code> Options -MultiViews</code><br /> | <code> Options -MultiViews</code><br /> | ||
+ | <code> Require all granted</code><br /> | ||
<code> </Directory></code><br /> | <code> </Directory></code><br /> | ||
<code></code><br /> | <code></code><br /> | ||
Ligne 138 : | Ligne 144 : | ||
<code># Activation de la compression</code><br /> | <code># Activation de la compression</code><br /> | ||
<code>SetOutputFilter DEFLATE</code><br /> | <code>SetOutputFilter DEFLATE</code><br /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<code></code><br /> | <code></code><br /> | ||
<code></VirtualHost></code><br /> | <code></VirtualHost></code><br /> | ||
+ | |||
+ | Activation du Vhost :<br /> | ||
+ | <code>a2ensite my_CoRM_Apps.conf</code><br /> | ||
+ | <code>service apache2 restart</code><br /> | ||
=== Base de données === | === Base de données === | ||
Pour des questions de simplicité, nous utilisons l'utilisateur administrateur afin de créer la connexion avec la base de données. En environnement de production, il est préférable de créer un utilisateur dédié avec des droits uniquement sur sa base. | Pour des questions de simplicité, nous utilisons l'utilisateur administrateur afin de créer la connexion avec la base de données. En environnement de production, il est préférable de créer un utilisateur dédié avec des droits uniquement sur sa base. | ||
− | <code># cd CoRM/config</code><br /> | + | <code># cd /webapps/CoRM/config</code><br /> |
<code># cp database.yml.example database.yml</code><br /> | <code># cp database.yml.example database.yml</code><br /> | ||
Ligne 187 : | Ligne 190 : | ||
Pour des questions de sécurité, vous devez modifier les deux valeurs ci-dessus. | Pour des questions de sécurité, vous devez modifier les deux valeurs ci-dessus. | ||
+ | |||
+ | === Fichier de paramètres === | ||
+ | |||
+ | <code># cp CORM.json.example CORM.json</code><br /> | ||
+ | <code># vi CORM.json</code><br /> | ||
+ | <code> | ||
+ | <br /> | ||
+ | { | ||
+ | "protocol": "http", | ||
+ | "host": "localhost", | ||
+ | "mail": { | ||
+ | "type": ":smtp", | ||
+ | "host": "localhost", | ||
+ | "port": 25, | ||
+ | "from": "no_reply@corm.fr" | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Remplacez les valeurs correspondant à votre configuration ("host" : le nom de votre serveur, "protocol" : "http" ou "https", "from" : l'adresse e-mail servant à expédier les messages). | ||
== Initialisation de l'application == | == Initialisation de l'application == | ||
Ligne 193 : | Ligne 216 : | ||
<code># rake db:setup RAILS_ENV=production</code><br /> | <code># rake db:setup RAILS_ENV=production</code><br /> | ||
<code># bundle exec rake assets:precompile:all RAILS_ENV=production</code><br /> | <code># bundle exec rake assets:precompile:all RAILS_ENV=production</code><br /> | ||
− | <code># service | + | <code># chown www-data:www-data /webapps/CoRM/ -R</code><br /> |
+ | <code># service apache2 restart</code><br /> | ||
== Premier lancement == | == Premier lancement == | ||
Ligne 201 : | Ligne 225 : | ||
== Configuration de l'application == | == Configuration de l'application == | ||
=== Création du compte Administrateur === | === Création du compte Administrateur === | ||
− | + | Un compte administrateur existe déjà : '''admin@domain.tld''' avec comme mot de passe '''password'''.<br /> | |
+ | Si ce n'est pas le cas, pointez votre navigateur à l'adresse suivante : http://192.168.1.55/user/new | ||
Vous pourrez alors configurer le compte administrateur de l'application.<br /> | Vous pourrez alors configurer le compte administrateur de l'application.<br /> | ||
Attention, le mot de passe doit contenir au moins 6 caractères ! | Attention, le mot de passe doit contenir au moins 6 caractères ! | ||
Ligne 215 : | Ligne 240 : | ||
[[Fichier:Install_CoRM_User.PNG|center|thumb|400px|Compte User]] | [[Fichier:Install_CoRM_User.PNG|center|thumb|400px|Compte User]] | ||
− | Puis affecter leur rôle | + | Puis affecter leur rôle adéquat. |
[[Fichier:CoRM_Roles.PNG|center|thumb|400px|Utilisateurs créés et rôles disponibles]] | [[Fichier:CoRM_Roles.PNG|center|thumb|400px|Utilisateurs créés et rôles disponibles]] | ||
Ligne 229 : | Ligne 254 : | ||
== Félicitation== | == Félicitation== | ||
− | Bravo, votre application est à présent configurée | + | Bravo, votre application est à présent configurée !<br /> |
La procédure d'installation est donc terminée. | La procédure d'installation est donc terminée. |
Version actuelle en date du 26 août 2015 à 16:10
Cette procédure montre pas à pas comment installer la solution CoRM sur un serveur GNU/Linux Ubuntu.
Sommaire
Introduction
Il est recommandé d'utiliser un serveur dédié afin d'installer CoRM. Cependant, si vous savez ce que vous faites, ce n'est nullement obligatoire.
Pour information, notre solution s'appuie sur une Architecture 3 tiers.
Prérequis
Vous devez connaitre les commandes de base d'un système GNU/Linux.
Les prérequis afin d'installation la solution CoRM sont les suivants.
Matériel
- CPU : au moins 1 cœur ;
- Architecture CPU : 64 bits ;
- Mémoire vive : au moins 1Go ;
- Espace disque : au moins 15Go ;
Logiciel
- Système d'exploitation GNU/Linux [http://fr.wikipedia.org/wiki/Ubuntu Ubuntu 14.04 LTS (de préférence fraichement installé) ;
- Apache 2.2 ;
- Ruby 1.9.3 ;
- Rails 3.2.18 ;
- Serveur PostgreSQL 9.3 ;
Installation
L'installation du système d'exploitation n'est pas détaillée ici.
Cependant, vous trouverez de nombreux guides d'installation sur Internet.
Avant d'installer quoique ce soit, assurez-vous que votre système soit à jour :
# apt-get update
# apt-get install git
Serveur Web Apache
# apt-get install apache2
À partir de ce moment, vous pouvez faire pointer votre navigateur préféré à l'adresse de votre serveur GNU/Linux.
Serveur PostgreSQL
# apt-get install postgresql postgresql-contrib
Initialiser le moteur de base de données (avec le bon encoding)
pg_dropcluster --stop 9.3 main
pg_createcluster --start -e UTF-8 9.3 main
Initialiser le mot de passe administrateur de PostgreSQL :
# su - postgres
-bash-4.1$ psql
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'MyGreatPassword' ;
postgres=# \q
Le nouveau mot de passe administrateur (postgres) est donc "MyGreatPassword".
# vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres password
# service postgresql restart
Language Ruby
# apt-get install ruby ruby-dev make
Vérification :
# ruby -v
ruby 1.9.3p484 (2013-11-22 revision 43786) [arm-linux-eabihf]
Framework Ruby-on-Rails
# gem update
# gem install --no-rdoc --no-ri rails -v 3.2.18
Pour vérifier si tout a fonctionné :
# rails -v
Rails 3.2.18
Passenger (mod_rails)
Passenger sert de "passerelle" entre le serveur Apache et l'application Rails...
Pré-requis :
# apt-get install openssl libssl-dev apache2-dev curl libcurl4-openssl-dev
# gem install passenger
# passenger-install-apache2-module
> (*) Ruby
( ) Python
( ) Node.js
( ) Meteor
Attention à bien copier le code de configuration du serveur apache !
Dans mon exemple :
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.53
PassengerDefaultRuby /usr/bin/ruby1.9.1
</IfModule>
Récupération du code source
# cd /
# mkdir webapps
# cd webapps/
# git clone https://github.com/SIGIRE/CoRM.git
# cd CoRM/
Configuration du socle logiciel
Serveur Web
Ajouter les lignes suivantes au fichier de configuration du serveur web.
# vi /etc/apache2/apache2.conf
LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.53
PassengerDefaultRuby /usr/bin/ruby1.9.1
</IfModule>
VHOST
# vi /etc/apache2/sites-available/my_CoRM_Apps.conf
<VirtualHost 192.168.0.63:80>
ServerName www.domain.tld
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /webapps/CoRM/public
<Directory /webapps/CoRM/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
Require all granted
</Directory>
RailsEnv production
# Activation de la compression
SetOutputFilter DEFLATE
</VirtualHost>
Activation du Vhost :
a2ensite my_CoRM_Apps.conf
service apache2 restart
Base de données
Pour des questions de simplicité, nous utilisons l'utilisateur administrateur afin de créer la connexion avec la base de données. En environnement de production, il est préférable de créer un utilisateur dédié avec des droits uniquement sur sa base.
# cd /webapps/CoRM/config
# cp database.yml.example database.yml
# vi database.yml
development:
adapter: postgresql
encoding: unicode
database: db_corm_dev
pool: 5
username: postgres
password: MyGreatPassword
test:
adapter: postgresql
encoding: unicode
database: db_corm_test
pool: 5
username: postgres
password: MyGreatPassword
production:
adapter: postgresql
encoding: unicode
database: db_corm_prod
pool: 5
username: postgres
password: MyGreatPassword
Fichier de sécurité
# cp application.yml.default application.yml
# vi application.yml
CORM_SECRET_TOKEN:
64a4aa0d52e1611fe17027ad78e5b55a1495fc2770b2fdb2e570eea6fc2c2c031f7de0e07ea4d2a8fce30237c696d92072ec7c94b7020a19bc52ba1734c09743
DEVISE_SECRET_KEY:
48af28f68a5a821b2e0c9f404130d8c566d47d43883c3460108137110013af4993ddc79f73f66e49c28ff866c329ffbe05aa7239f2b5d840c2b81471691ad9dc
Pour des questions de sécurité, vous devez modifier les deux valeurs ci-dessus.
Fichier de paramètres
# cp CORM.json.example CORM.json
# vi CORM.json
{ "protocol": "http", "host": "localhost", "mail": { "type": ":smtp", "host": "localhost", "port": 25, "from": "no_reply@corm.fr" } }
Remplacez les valeurs correspondant à votre configuration ("host" : le nom de votre serveur, "protocol" : "http" ou "https", "from" : l'adresse e-mail servant à expédier les messages).
Initialisation de l'application
# cd /webapps/CoRM
# bundle install
# rake db:setup RAILS_ENV=production
# bundle exec rake assets:precompile:all RAILS_ENV=production
# chown www-data:www-data /webapps/CoRM/ -R
# service apache2 restart
Premier lancement
À ce stade vous devez visualiser cette page si vous pointez votre navigateur sur votre serveur.
Configuration de l'application
Création du compte Administrateur
Un compte administrateur existe déjà : admin@domain.tld avec comme mot de passe password.
Si ce n'est pas le cas, pointez votre navigateur à l'adresse suivante : http://192.168.1.55/user/new
Vous pourrez alors configurer le compte administrateur de l'application.
Attention, le mot de passe doit contenir au moins 6 caractères !
Remarque : le compte administrateur est à utiliser uniquement pour les tâches d'administration.
Création des comptes Utilisateurs
Une fois votre compte administrateur créé, il faut bien entendu créer les comptes propres à vos utilisateurs : Menu Paramètres --> Administration --> Configuration --> Utilisateurs.
Remarque : Seul l'Administrateur peut créer un utilisateur.
Puis affecter leur rôle adéquat.
Configuration générale
Votre application est presque prête.
Il vous reste à personnaliser le logo d'accueil et éventuellement un serveur de messagerie POP afin d'activer la fonctionnalité "mail-to-event".
Menu Paramètres --> Administration --> Configuration --> Configuration de CoRM
Enfin ultime configuration : le modèle des devis. Menu Paramètres --> Administration --> Configuration --> Modèles devis.
Félicitation
Bravo, votre application est à présent configurée !
La procédure d'installation est donc terminée.