Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
computing:network_system:installation_d_un_serveur_redmine [2014/10/10 16:50] gdo [Passenger] |
computing:network_system:installation_d_un_serveur_redmine [2014/10/14 14:42] (Version actuelle) gdo [Apache] |
||
---|---|---|---|
Ligne 14: | Ligne 14: | ||
* curl sera utilisé lors de l'installation pour transférer des données depuis internet | * curl sera utilisé lors de l'installation pour transférer des données depuis internet | ||
- | Redmine est basé sur Ruby on Rails qui est un framework Web. Ruby on Rails a également un certain nombre de dépendances qu'il faut combler mais que nous ne détaillerons pas ici : | + | Redmine est basé sur Ruby On Rails qui est un framework Web. Ruby On Rails a également un certain nombre de dépendances qu'il faut combler mais que nous ne détaillerons pas ici : |
- | <code>sudo aptitude install gawk libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev \ | + | <code>sudo apt-get install gawk libreadline6-dev zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev \ |
autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev libmagickwand-dev</code> | autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev libmagickwand-dev</code> | ||
- | Apache, le serveur Web, a besoin d'un module pour exécuter des applications Ruby on Rails comme Redmine. Il faut donc aussi installer les dépendances de module : | + | Apache, le serveur Web, a besoin d'un module pour exécuter des applications Ruby On Rails comme Redmine. Il faut donc aussi installer les dépendances de ce module : |
- | <code>sudo aptitude install libcurl4-gnutls-dev apache2-threaded-dev libapr1-dev libaprutil1-dev | + | <code>sudo apt-get install libcurl4-gnutls-dev apache2-threaded-dev libapr1-dev libaprutil1-dev</code> |
- | sudo su - redmine</code> | + | |
====== Installation ====== | ====== Installation ====== | ||
Ligne 29: | Ligne 28: | ||
--shell /bin/bash \ | --shell /bin/bash \ | ||
--gecos 'redmine' \ | --gecos 'redmine' \ | ||
- | --group sudo \ | + | --gid `grep "sudo" /etc/group|cut -d: -f3`\ |
--home /opt/redmine \ | --home /opt/redmine \ | ||
redmine</code> | redmine</code> | ||
- | |||
===== En tant qu'utilisateur redmine ===== | ===== En tant qu'utilisateur redmine ===== | ||
Ligne 43: | Ligne 41: | ||
<code>curl -L https://get.rvm.io | bash -s stable | <code>curl -L https://get.rvm.io | bash -s stable | ||
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bashrc | echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bashrc | ||
- | bash ~/.bashrc</code> | + | . ~/.bashrc</code> |
Nous n'aurons pas besoin de générer la documentation des composants Ruby donc désactivons cette génération par défaut : | Nous n'aurons pas besoin de générer la documentation des composants Ruby donc désactivons cette génération par défaut : | ||
<code>echo "gem: --no-rdoc --no-ri" >> ~/.gemrc</code> | <code>echo "gem: --no-rdoc --no-ri" >> ~/.gemrc</code> | ||
- | Installons maintenant Ruby à sa dernière version stable : | + | Installons maintenant Ruby et Rails à leur dernière version stable : |
- | <code>rvm get stable</code> | + | <code>rvm get stable --ruby --rails</code> |
Une fois installé, Ruby nous fournit un outil permettant de gérer ses composants à la manière de package appelés Gems. Cet outil nommé RubyGems est utilisé via la commande gem. Installons donc notre première Gem, bundler, qui va permettre de rechercher et d'installer les Gems nécessaires à un projet : | Une fois installé, Ruby nous fournit un outil permettant de gérer ses composants à la manière de package appelés Gems. Cet outil nommé RubyGems est utilisé via la commande gem. Installons donc notre première Gem, bundler, qui va permettre de rechercher et d'installer les Gems nécessaires à un projet : | ||
<note important>Les Gems d'un projet sont spécifiées dans le fichier Gemfile du projet.</note> | <note important>Les Gems d'un projet sont spécifiées dans le fichier Gemfile du projet.</note> | ||
<code>gem install bundler</code> | <code>gem install bundler</code> | ||
- | |||
==== Redmine ==== | ==== Redmine ==== | ||
Ligne 60: | Ligne 57: | ||
<code>wget http://www.redmine.org/releases/redmine-2.5.2.tar.gz | <code>wget http://www.redmine.org/releases/redmine-2.5.2.tar.gz | ||
tar xzf redmine-2.5.2.tar.gz | tar xzf redmine-2.5.2.tar.gz | ||
- | ln -s redmine redmine-2.5.2</code> | + | ln -s redmine-2.5.2 redmine</code> |
Rentrons dans le répertoire fraîchement extrait et préparons la configuration de la base de données en nous basant sur le fichier d'exemple fourni. | Rentrons dans le répertoire fraîchement extrait et préparons la configuration de la base de données en nous basant sur le fichier d'exemple fourni. | ||
Ligne 69: | Ligne 66: | ||
<code>production: | <code>production: | ||
adapter: sqlite3 | adapter: sqlite3 | ||
- | database: db/redmineEurogiciel.sqlite3</code> | + | database: db/redmineGeonobot.sqlite3</code> |
Nous avons installé bundler précédemment, il est maintenant temps de l'utiliser pour installer toutes les Gems requises par notre Redmine : | Nous avons installé bundler précédemment, il est maintenant temps de l'utiliser pour installer toutes les Gems requises par notre Redmine : | ||
Ligne 107: | Ligne 104: | ||
<code>LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so</code> | <code>LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.45/buildout/apache2/mod_passenger.so</code> | ||
- | Il reste à configurer notre Redmine dans Apache via le fichier **/etc/apache2/sites-available/redmine.conf** : | + | Il reste à configurer notre Redmine dans Apache via le fichier **/etc/apache2/sites-available/redmine.conf**. Vous noterez que nous forçons l'utilisation du HTTPS pour sécuriser les connexions : |
<code><VirtualHost *:80> | <code><VirtualHost *:80> | ||
ServerName redmineServer | ServerName redmineServer | ||
DocumentRoot /opt/redmine/redmine/public | DocumentRoot /opt/redmine/redmine/public | ||
+ | |||
+ | RewriteEngine on | ||
+ | RewriteCond %{SERVER_PORT} !^443$ | ||
+ | RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=permanent] | ||
+ | <Directory /opt/redmine/redmine/public> | ||
+ | Require all granted | ||
+ | Options -MultiViews | ||
+ | </Directory> | ||
+ | </VirtualHost> | ||
+ | |||
+ | <VirtualHost *:443> | ||
+ | ServerName redmineServer | ||
+ | DocumentRoot /opt/redmine/redmine/public | ||
+ | |||
+ | SSLEngine on | ||
+ | SSLCertificateFile /etc/apache2/ssl/redmine.crt | ||
+ | SSLCertificateKeyFile /etc/apache2/ssl/redmine.key | ||
+ | |||
<Directory /opt/redmine/redmine/public> | <Directory /opt/redmine/redmine/public> | ||
Require all granted | Require all granted | ||
Ligne 116: | Ligne 131: | ||
</Directory> | </Directory> | ||
</VirtualHost></code> | </VirtualHost></code> | ||
+ | |||
+ | Comme nous utilisons HTTPS il faut générer les certificats SSL permettant d'encrypter les communications avec le serveur : | ||
+ | <code>sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ | ||
+ | -keyout /etc/apache2/ssl/redmine.key -out /etc/apache2/ssl/redmine.crt</code> | ||
Il ne reste plus qu'à désactiver le site par défaut fourni avec Apache et le remplacer par notre Redmine : | Il ne reste plus qu'à désactiver le site par défaut fourni avec Apache et le remplacer par notre Redmine : | ||
Ligne 121: | Ligne 140: | ||
sudo a2ensite redmine</code> | sudo a2ensite redmine</code> | ||
- | Sans oublier d'activer le module Passenger que nous avons configuré précédemment : | + | Sans oublier d'activer le module Passenger que nous avons configuré précédemment, ainsi que le module ssl pour la connexion sécurisée et le module rewrite pour la redirection d'url HTTP vers HTTPS : |
- | <code>sudo a2enmod passenger</code> | + | <code>sudo a2enmod passenger rewrite ssl</code> |
La configuration d'Apache étant terminée, rechargeons le pour appliquer les changements : | La configuration d'Apache étant terminée, rechargeons le pour appliquer les changements : | ||
- | <code>sudo service apache2 reload</code> | + | <code>sudo service apache2 restart</code> |
- | Notre serveur Redmine est désormais installé et devrait être accessible en HTTP. En imaginant que notre serveur se nomme **myredmineserver.home**, vous devriez y accéder via l'URL [[http://myredmineserver.home]] | + | Notre serveur Redmine est désormais installé et devrait être accessible en HTTP. En imaginant que notre serveur se nomme **myredmineserver.home**, vous devriez y accéder via l'URL [[http://myredmineserver.home]] qui vous redirigera vers [[https://myredmineserver.home]] |