Installer Redmine sur Debian avec RVM ne fonctionne pas

De Analyse Développement Hacking
Sauter à la navigation Sauter à la recherche
Naviguer dans ce wiki : Accueil du wiki - Objectifs - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
Consulter le site : Accueil du site - Annuaire - Blog - Forum - Outils - Utilisateur     Consulter le Redmine : Accueil du Redmine

Sommaire

Installer Redmine sur Debian avec RVM ne fonctionne pas

Introduction

Les tutoriels sur cette page n'ont pas pu être rendu fonctionnel / pleinement fonctionnels.
Consulter le premier tutoriel rédigé sur l'installation de Redmine depuis les dépôts de Debian : Installer Redmine sur Debian.
Entre temps, j'ai pu réaliser une installation détaillée de Redmine avec RVM : Installer Redmine sur Debian avec RVM.

Installation - Installation de Redmine avec SVN

Prérequis

Tutoriel utilisé

Ko.png Installation de Redmine avec SVN : https://www.kimengumi.fr/2017/04/installation-de-redmine/

Créer un domaine fictif dans le cas d'un test sur une machine locale

# Le domaine fictif permettra de consulter Redmine localement depuis le navigateur.
# Ouvrir le fichier /etc/hosts en tant que root.
su
nano /etc/hosts
# Ajouter la deuxième ligne.
127.0.0.1       localhost
127.0.0.1       redmine.un-domaine-local.fr

Paquets prérequis

En root :
su
# apt-get update && apt-get upgrade
# apt-get remove ruby
# apt-get install apache2 apache2-dev curl dirmngr git imagemagick libapr1-dev libaprutil1-dev libcurl4-openssl-dev libmagickwand-dev libmariadbclient-dev mariadb-server subversion vim-nox zsh

Installation

Installation

Toujours en root :
# ln -s /etc/mysql/debian.cnf /root/.my.cnf
# cd /opt/
# git clone https://github.com/kimengumi/kclie.git
# kclie/configure
# /opt/kclie/sbin/mysql_create_local_user redmine
( Créer un mot de passe - redmine - ne pas créer de home. )
# curl -sSL https://rvm.io/mpapis.asc | gpg --import -
# curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
# curl -sSL https://get.rvm.io | bash -s stable --rails ### (Downloading https://github.com/rvm/rvm/archive/1.29.7.tar.gz)
# source /usr/local/rvm/scripts/rvm
# Valable pour la branche Redmine 3.4 et 4.0
# rvm install 2.4
# rvm --default use ruby-2.4
# useradd -s /bin/false -mg www-data redmine
# usermod -aG rvm redmine
# usermod -aG rvm www-data
# mkdir /opt/redmine
# chown redmine:www-data /opt/redmine
Copier le contenu du fichier .my.cnf précédent. cat /root/.my.cnf
# sudo -u redmine zsh
$ cd 
$ vim .my.cnf
Coller le contenu.
Échappe :wq!
Ne passe pas en simple utilisateur, je repasse root avec exit !
$ mysql -e 'CREATE DATABASE redmine_production CHARACTER SET utf8;'
S’il s'agit d’une instance à restaurer ou d’une migration d’après un backup :
$ mysql redmine_production < /tmp/backup.sql
# sudo -u redmine zsh
Utilisation d’une branche stable de Redmine :
Se rendre sur https://svn.redmine.org/redmine/branches/, puis aller sur la dernière branche stable en date.
$ svn co https://svn.redmine.org/redmine/branches/3.4-stable /opt/redmine
Accepter la clé de façon permanente.
Préparer la configuration de la base de données :
$ cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
$ vim /opt/redmine/config/database.yml
Compléter le paragraphe production comme suit :
production:
adapter: mysql2
database: redmine_production
host: localhost
username: redmine
password: « XXXXXXX » (Celui du fichier .my.cnf précédent.) ( Apparemment aucun mot de passe n'est renseigné dans ce fichier, avec utilisateur root sans mot de passe. )
encoding: utf8

Installer les dépendances

Si on perd le bon chemin avec l'utilisateur, exit, et relancer sudo -u redmine zsh
$ cd /opt/redmine
$ gem install bundler
$ gem install rmagick
$ bundle install --without development test
### Bogue
gem install bundler -v '~>1.9.0'
rvm all do gem uninstall bundler
Supprimer la version 2.0.1 qui n'est pas dans la plage des versions compatibles.
Relancer l'installation précédent : bundle install --without development test
$ bundle exec rake generate_secret_token
S’il s’agit d’une nouvelle installation :
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production bundle exec rake redmine:load_default_data
S’il s’agit d’une restauration d’une ancienne instance archivée :
$ mysql redmine_production < /chemin-vers-votre-dump.sql
$ RAILS_ENV=production bundle exec rake db:migrate
Suite commune :
$ RAILS_ENV=production bundle exec rake redmine:plugins:migrate 
$ RAILS_ENV=production bundle exec rake tmp:cache:clear tmp:sessions:clear 
$ gem install passenger
$ exit
# zsh
# passenger-install-apache2-module
Je prend le choix 1.
A la fin de l’installation, le script affiche à l’écran la configuration Apache à mettre en place :
LoadModule passenger(…)
<IfModule mod_passenger(…)
(…)
</IfModu(…)
Dans une deuxième console en root :
# vim /etc/apache2/mods-available/passenger.load
Coller la la configuration pour apache de la première console.
# D'après l'installeur il ne faut pas avoir la ligne Loadmodule ...
# Mais, par la suite, Apache ne redémarrera pas, sans cette ligne. Donc, on laisse tout le code proposé.
Fermez la 2° console.
Puis appuyiez « enter » sur la première console pour terminer l’installation de passenger.

Configurer Apache2

En root :
# mkdir /var/www/default
# touch /var/www/default/index.html
# echo "User-Agent: *\nDisallow: /" > /var/www/default/robots.txt
# vim /etc/apache2/sites-available/0000-dummy-default.conf
Insérer le contenu suivant :
ServerName default
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory ~ " \.svn ">
Order allow,deny
Require all denied
</Directory>
<Directory ~ " \.git ">
Order allow,deny
Require all denied
</Directory>
<VirtualHost _default_:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/default
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/default
ErrorLog /var/log/apache2/error-ssl.log
LogLevel warn
CustomLog /var/log/apache2/access-ssl.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch " \.(cgi|shtml|phtml|php)$ ">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch " MSIE [2-6] " nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
BrowserMatch " MSIE [17-9] " ssl-unclean-shutdown
</VirtualHost>
</IfModule>

Configurer son domaine

# vim /etc/apache2/sites-available/redmine.conf
Insérer le contenu suivant :
<VirtualHost *:80>
ServerName redmine.un-domaine-local.fr
# Redirect permanent / https://redmine.un-domaine-local.fr/
</VirtualHost> 

<VirtualHost *:443>
ServerName redmine.un-domaine-local.fr

LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined

DocumentRoot /opt/redmine/public
# La ligne suivante est proposée car PassengerResolveSymlinksInDocumentRoot n'est pas reconnu.
PassengerAppRoot /opt/redmine/redmine
<Directory /opt/redmine/public>
SetEnv HTTPS 1
RailsBaseURI /redmine
RailsEnv production
# Cette ligne est en erreur.
# PassengerResolveSymlinksInDocumentRoot on
# Proposition de la remplacer par PassengerAppRoot /opt/redmine/redmine
PassengerUser redmine
PassengerGroup www-data

AllowOverride all
Options -MultiViews

Require all granted
</Directory>
</VirtualHost>
# a2enmod ssl passenger
# a2dissite 000-default
# a2ensite 0000-dummy-default redmine
# service apache2 restart
Je dois commenter cette ligne, dans le fichier de configuration de redmine.conf pour permettre à Apache2 de redémarrer.
# PassengerResolveSymlinksInDocumentRoot on

Conclusion

Finalement, rien ne s'affiche.
Dans le doute, j'ai constaté que le fichier /etc/hosts depuis root n'avait pas été renseigné avec mon domaine fictif local.
J'ajoute la ligne pour le domaine fictif local dans /etc/hosts en tant que root.
J'arrive alors sur une page 403 quand je renseigne le domaine dans le navigateur.

Installation : Installation et mise à jour de Redmine

Prérequis

Tutoriel utilisé

Ko.png Installation et mise à jour de Redmine : https://medium.com/@philippe_andreas/installation-et-mise-%C3%A0-jour-de-redmine-21f2340d2b8a
Ce tutoriel devrait être adapté à mon besoin : Installer et mettre à jour Redmine. Rendre Redmine accessible depuis un sous domaine.
Ce tutoriel devrait parfaitement convenir suite aux retours sur expériences obtenues après avoir pratiqué les deux autres installations.

Créer un domaine fictif dans le cas d'un test sur une machine locale

# Le domaine fictif permettra de consulter Redmine localement depuis le navigateur.
# Ouvrir le fichier /etc/hosts en tant que root.
su
nano /etc/hosts
# Ajouter la deuxième ligne.
127.0.0.1       localhost
127.0.0.1       redmine.un-domaine-local.fr

Installation

Installer Apache2

sudo apt install apache2

Utilisateur Redmine

########################################################################################################################################
# Créer un utilisateur système                                                                                                         #
#                                                                                                                                      #
# sudo adduser --home /opt/redmine --shell /bin/bash --gecos 'Redmine application' redmine                                             #
# sudo usermod -aG sudo redmine                                                                                                             #
#                                                                                                                                      #
# Switch to the new redmine user:                                                                                                      #
# sudo su - redmine                                                                                                                    #
########################################################################################################################################

Ruby et RVM

# Installer cURL.
sudo apt install curl
# Importe la clé de RVM.
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
# Installer dirmngr pour importer la clé.
## sudo apt install dirmngr
## gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# Installer ruby :
curl -sSL https://get.rvm.io | bash -s stable --ruby 
## --rubyPassenger ##
# Le message suivant est affiché :
# No binary rubies available for: debian/9/x86_64/ruby-2.6.0.
# Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
# Pour commencer à utiliser RVM, exécuter les commandes suivantes :
source ~/.rvm/scripts/rvm
# Exemple.
# Installer une autre version de ruby.
# rvm install 2.4.5
# Définir la version de ruby a installer.
# rvm use 2.4.5
# Connaître la version de ruby qui est utilisée.
rvm --default use ruby
# Va afficher :
Using /opt/redmine/.rvm/gems/ruby-2.6.0
# Vérifier la version de ruby :
ruby --version
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]

Passenger

Passenger est un serveur d’application qui permet de faire tourner des applications Ruby avec Apache, via le module mod_passenger.
# Installer les dépendances pour pouvoir installer passenger-install-apache2-module
sudo apt install libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev
# Installer Passenger avec ruby gem.
gem install passenger
# Installer le module passenger pour Apache2.
# Sélection 1 pour installer. Entrée.
## Sélectionner uniquement ruby avec ! flèche du bas puis la barre espace.
# Nouvelle tentative je laisse les valeurs par défaut, ruby et python.
passenger-install-apache2-module
# A la fin de l’installation du module pour Apache2, les instructions de configuration à ajouter à la configuration d’Apache sont affichés.
# Ouvrir un nouveau terminal pour mettre en place le fichier du VirtualHost et pour activer le site.
# Appuyer sur entrée pour finaliser cette étape pour passer à la suite.

LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /opt/redmine/.rvm/gems/ruby-2.6.0/gems/passenger-6.0.2
  PassengerDefaultRuby /opt/redmine/.rvm/gems/ruby-2.6.0/wrappers/ruby
</IfModule>

MariaDB

# Installer MariaDB.
sudo apt install mariadb-server
sudo /etc/init.d/mysql start

Redmine

# Identifier la version courante de Redmine : http://www.redmine.org/projects/redmine/wiki/RedmineInstall
# La version qui va être installée : 4.0.2
# Les actions sudo ne sont plus n"cessaires avec l'utilisateur redmine.
# Créer un nouveau dossier /opt/redmineXX où XX correspond à la version téléchargée.
sudo mkdir /opt/redmine/redmine4.0.2
# Télécharger et dézipper le package d’installation.
cd /opt/redmine/redmine4.0.2
sudo wget http://www.redmine.org/releases/redmine-4.0.2.zip
sudo unzip redmine-4.0.2.zip
sudo mv redmine-4.0.2/* .
sudo rm -rf redmine-4.0.2
# L'archive peut éventuellement être conservée.
# sudo rm -rf redmine-4.0.2.zip

Créer la base de données et son utilisateur

# La encore, nommer la base de données en ajoutant la version de Redmine concernée, ici, la version 4_0_2.
sudo mysql -u root -p
CREATE DATABASE redmine4_0_2 CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'BDD_password';
GRANT ALL PRIVILEGES ON redmine4_0_2.* TO 'redmine'@'localhost';
EXIT;
# Copier le fichier config/database.yml.example vers config/database.yml
cd /opt/redmine/redmine4.0.2/config
sudo cp database.yml.example database.yml
sudo nano database.yml
# Éditer les paramètres d’accès à la base de données.
production:
  adapter: mysql2
  database: redmine4_0_2
  host: localhost
  username: redmine
  password: BDD_password
  # encoding: utf8
# Revenir au dossier de Redmine.
cd ..

Installer bundler et installer les dépendances

# Fonctionne avec utilisateur redmine.
gem install bundler
# La commande passe maintenant grâce à l'utilisateur système redmine.
bundle install --without development test
# La fameuse erreur sur le gem mysql2.
An error occurred while installing mysql2 (0.5.2), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/'` succeeds before bundling.
# Installer le paquet suivant pour pouvoir installer le gem mysql2.
sudo apt install libmariadbclient-dev
# Installer le gem mysql2.
gem install mysql2 -v '0.5.2'
# Il manque encore rmagick.
sudo apt-get install libmagickwand-dev
gem install rmagick -v '2.16.0'
# Et on recommence ...
bundle install --without development test
# Voilà ! Le bundle a fini son installation.
Bundle complete! 26 Gemfile dependencies, 58 gems now installed.
Gems in the groups development and test were not installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

Générer le token d’encodage

bundle exec rake generate_secret_token
# Erreur :
Could not find gem 'rails (= 5.2.2)' in any of the gem sources listed in your Gemfile.
Run `bundle install` to install missing gems.
# Installer et relancer.
bundle install
bundle exec rake generate_secret_token

Créer la structure de la base de données

RAILS_ENV=production bundle exec rake db:migrate

Insérer la configuration de base

RAILS_ENV=production bundle exec rake redmine:load_default_data
fr entrée.

Configuration Apache

Comme indiqué au début de ce tutoriel, éditer la configuration du serveur web pour charger mod_passenger, indiquer la version de Ruby à utiliser, et donner les variables d’environnement de Rails.
# Ajouter les lignes suivantes dans le fichier httpd.conf ou dans le fichier de configuration d’un VirtualHost.
# Pour choisir d'ajouter la configuration directement à Apache2.
sudo nano /etc/apache2/httpd.conf
# Pour choisir d'ajouter la configuration dans un fichier VirtualHost.
sudo nano /etc/apache2/sites-available/redmine.un-domaine-local.fr.conf
# Exemple de configuration du VirtualHost :
<VirtualHost redmine.un-domaine-local.fr:80>
  # Name virtual host à adapter.
  ServerName redmine.un-domaine-local.fr
  DocumentRoot /opt/redmine/redmine4.0.2/public
  # Chemin vers mod_passenger
  # LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.3/gems/passenger-5.1.1/buildout/apache2/mod_passenger.so
  LoadModule passenger_module /opt/redmine/.rvm/gems/ruby-2.6.0/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
  # Configuration mod_passenger
  <IfModule mod_passenger.c>
    # Exemple du tutoriel.
    # PassengerRoot /usr/local/rvm/gems/ruby-2.3.3/gems/passenger-5.1.1
    # Mon rendu :
    PassengerRoot /opt/redmine/.rvm/gems/ruby-2.6.0/gems/passenger-6.0.2
    # Exemple du tutoriel.
    # PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.3/wrappers/ruby
    # Mon rendu :
    PassengerDefaultRuby /opt/redmine/.rvm/gems/ruby-2.6.0/wrappers/ruby
    # Exemple du tutoriel.
    # PassengerDefaultUser apache
    # Mon rendu :
    PassengerDefaultUser www-data
  </IfModule>
RailsEnv production
RailsBaseURI /redmine
# Configuration du dossier ou Redmine a été installé.
<Directory /opt/redmine/redmine4.0.2/public>
  Options Indexes ExecCGI FollowSymLinks
  AllowOverride All
  Options -MultiViews
  Order allow,deny
  Allow from all
</Directory>
</VirtualHost>
# Manque dans le tutoriel d'origine :
Activer le site pour un VirtualHost :
sudo a2ensite redmine.un-domaine-local.fr

Droits du système de fichiers

# Le compte utilisateur (système) qui fait tourner l’application doit avoir les permissions d’écriture sur les répertoire suivants à l’intérieur du dossier /opt/redmine/redmine4.0.2 :
files
log 
tmp
tmp/pdf 
public/plugin_assets
# Appliquer le propriétaire et les droits.
cd /opt/redmine/redmine4.0.2/
sudo mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets

Redémarrer Apache2

/etc/init.d/apache2 restart

Consulter le site

localhost affiche la page de Apache2.
redmine.un-domaine-local.fr affiche une page erreur 403.
access.log
Malgré avoir fait l'installation avec l'utilisateur système "redmine" je n'arrive toujours pas à accéder au front end.
[authz_core:error] [pid 25977:tid 140190895015680] [client 127.0.0.1:39080] AH01630: client denied by server configuration: /opt/redmine/redmine4.0.2/public/

Installtion : HOW TO INSTALL REDMINE ON UBUNTU 16.04

Prérequis

Tutoriel utilisé

Ok.png HOW TO INSTALL REDMINE ON UBUNTU 16.04 : https://blog.here-host.com/install-redmine-ubuntu-16-04/
Ce tutoriel m'a permis d'installer la bonne version du bundle.
Ce tutoriel m'a permis, durant l'installation, d'identifier pourquoi la gem mysql2 ne s'installait pas.
J'ai pu identifier le paquet a utiliser pour installer la gem mysql2 et faire fonctionner Redmine avec RVM.
Ce tutoriel ne correspond pas pleinement à mes attentes du fait de l'utilisation du serveur PUMA qui rend Redmine accessible depuis le port 9000.
Je préfèrerais rendre Redmine accessible via un sous domaine.

Installer les paquets prérequis

sudo apt install curl subversion libmagickcore-dev libmagickwand-dev imagemagick g++ zlib1g-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgmp-dev libgdbm-dev libncurses5-dev automake libtool bison pkg-config libffi-dev libgmp-dev libreadline6-dev libssl-dev

Installation

Installer MySQL

sudo apt install mariadb-server
# Sécuriser.
sudo mysql_secure_installation
# Entrée / Y / Mot de passe x2
# Créer base de données pour Redmine.
sudo mysql -uroot -p
CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'redmine_bdd_passwd';
FLUSH PRIVILEGES;
\q

Créer un utilisateur système

sudo adduser --home /opt/redmine --shell /bin/bash --gecos 'Redmine application' redmine
usermod -aG sudo redmine
Switch to the new redmine user:
sudo su - redmine

Installer ruby avec RVM

# Importe la clé.
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
# Installer dirmngr pour importer la clé.
sudo apt install dirmngr
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# Installer ruby :
curl -sSL https://get.rvm.io | bash -s stable --ruby
# Le message suivant est affiché :
# No binary rubies available for: debian/9/x86_64/ruby-2.6.0.
# Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
# Pour commencer à utiliser RVM, exécuter les commandes suivantes :
source ~/.rvm/scripts/rvm
# Connaître la version de ruby qui est utilisée.
rvm --default use ruby
# Va afficher :
Using /home/uservps/.rvm/gems/ruby-2.6.0
# Vérifier la version de ruby :
ruby --version
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]

Installer Redmine

cd && svn co http://svn.redmine.org/redmine/branches/3.4-stable redmine
mkdir -p ./redmine/tmp/pids ./redmine/public/plugin_assets
# Configure database settings:
cp ./redmine/config/configuration.yml.example ./redmine/config/configuration.yml
cp ./redmine/config/database.yml.example ./redmine/config/database.yml
# Open the database.yml file and update username/password
nano ./redmine/config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redmine_bdd_passwd"
  encoding: utf8

Installer les gems

cd /opt/redmine/redmine
echo "gem 'puma'" >> Gemfile.local
echo "gem: --no-ri --no-rdoc" >> ~/.gemrc 
gem install bundler
bundle install --without development test postgresql sqlite
# Toujours ce message qui empêche l'installation :
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Bundler could not find compatible versions for gem "bundler":
 In Gemfile:
   bundler (>= 1.5.0, < 2.0.0)

 Current Bundler version:
   bundler (2.0.1)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

Could not find gem 'bundler (>= 1.5.0, < 2.0.0)' in any of the relevant sources:
 the local ruby installation
# Supprimer toutes les gems.
rvm all do gem uninstall bundler
# Supprimer des gems en fonction de leur version.
rvm 2.0.1 do gem uninstall bundler
# Installer sa propre version des gems.
gem install bundler -v '~>1.9.0'
# Relancer l'installation
bundle install --without development test postgresql sqlite
# Cette fois c'est bon, le gem bundler 2.0.1 une fois retiré et remplacé par la version 1.9.0 permet d'avancer l'installation.
# On en arrive au problème rencontré sur la Debian en production, le gem mysql2 ne s'installe pas.
Erreur sur gem mysql2
bundle install --without development test postgresql sqlite
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
Using rake 12.3.2
Fetching i18n 0.7.0
Installing i18n 0.7.0
Using minitest 5.11.3
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching tzinfo 1.2.5
Installing tzinfo 1.2.5
Fetching activesupport 4.2.11.1
Installing activesupport 4.2.11.1
Fetching builder 3.2.3
Installing builder 3.2.3
Fetching erubis 2.7.0
Installing erubis 2.7.0
Fetching mini_portile2 2.3.0
Installing mini_portile2 2.3.0
Fetching nokogiri 1.8.5
Installing nokogiri 1.8.5 with native extensions
Fetching rails-deprecated_sanitizer 1.0.3
Installing rails-deprecated_sanitizer 1.0.3
Fetching rails-dom-testing 1.0.9
Installing rails-dom-testing 1.0.9
Fetching crass 1.0.4
Installing crass 1.0.4
Fetching loofah 2.2.3
Installing loofah 2.2.3
Fetching rails-html-sanitizer 1.0.4
Installing rails-html-sanitizer 1.0.4
Fetching actionview 4.2.11.1
Installing actionview 4.2.11.1
Fetching rack 1.6.11
Installing rack 1.6.11
Fetching rack-test 0.6.3
Installing rack-test 0.6.3
Fetching actionpack 4.2.11.1
Installing actionpack 4.2.11.1
Fetching globalid 0.4.2
Installing globalid 0.4.2
Fetching activejob 4.2.11.1
Installing activejob 4.2.11.1
Fetching mime-types-data 3.2018.0812
Installing mime-types-data 3.2018.0812
Fetching mime-types 3.2.2
Installing mime-types 3.2.2
Fetching mail 2.6.6
Installing mail 2.6.6
Fetching actionmailer 4.2.11.1
Installing actionmailer 4.2.11.1
Fetching actionpack-xml_parser 1.0.2
Installing actionpack-xml_parser 1.0.2
Fetching activemodel 4.2.11.1
Installing activemodel 4.2.11.1
Fetching arel 6.0.4
Installing arel 6.0.4
Fetching activerecord 4.2.11.1
Installing activerecord 4.2.11.1
Fetching public_suffix 3.0.3
Installing public_suffix 3.0.3
Fetching addressable 2.6.0
Installing addressable 2.6.0
Using bundler 1.17.2
Fetching coderay 1.1.2
Installing coderay 1.1.2
Fetching concurrent-ruby 1.1.5
Installing concurrent-ruby 1.1.5
Fetching css_parser 1.7.0
Installing css_parser 1.7.0
Fetching htmlentities 4.3.4
Installing htmlentities 4.3.4
Fetching thor 0.20.3
Installing thor 0.20.3
Fetching railties 4.2.11.1
Installing railties 4.2.11.1
Fetching jquery-rails 3.1.5
Installing jquery-rails 3.1.5
Fetching mimemagic 0.3.3
Installing mimemagic 0.3.3
Fetching mysql2 0.4.10
Installing mysql2 0.4.10 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

   current directory: /opt/redmine/.rvm/gems/ruby-2.6.0/gems/mysql2-0.4.10/ext/mysql2
/opt/redmine/.rvm/rubies/ruby-2.6.0/bin/ruby -I /opt/redmine/.rvm/rubies/ruby-2.6.0/lib/ruby/2.6.0 -r ./siteconf20190325-12934-1yn4tas.rb extconf.rb
checking for rb_absint_size()... yes
checking for rb_absint_singlebit_p()... yes
checking for ruby/thread.h... yes
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... yes
checking for rb_hash_dup()... yes
checking for rb_intern3()... yes
checking for rb_big_cmp()... yes
checking for mysql_query() in -lmysqlclient... no
-----
mysql client is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', and try again.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/opt/redmine/.rvm/rubies/ruby-2.6.0/bin/$(RUBY_BASE_NAME)
	--with-mysql-dir
	--without-mysql-dir
	--with-mysql-include
	--without-mysql-include=${mysql-dir}/include
	--with-mysql-lib
	--without-mysql-lib=${mysql-dir}/lib
	--with-mysql-config
	--without-mysql-config
	--with-mysql-dir
	--without-mysql-dir
	--with-mysql-include
	--without-mysql-include=${mysql-dir}/include
	--with-mysql-lib
	--without-mysql-lib=${mysql-dir}/lib
	--with-mysqlclientlib
	--without-mysqlclientlib 

To see why this extension failed to compile, please check the mkmf.log which can be found here:

 /opt/redmine/.rvm/gems/ruby-2.6.0/extensions/x86_64-linux/2.6.0/mysql2-0.4.10/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /opt/redmine/.rvm/gems/ruby-2.6.0/gems/mysql2-0.4.10 for inspection.
Results logged to /opt/redmine/.rvm/gems/ruby-2.6.0/extensions/x86_64-linux/2.6.0/mysql2-0.4.10/gem_make.out

An error occurred while installing mysql2 (0.4.10), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
 mysql2
# Impossible d'installer le paquet : mysql client is missing. You may need to 'apt-get install libmysqlclient-dev'
# E: Le paquet « libmysqlclient-dev » n'a pas de version susceptible d'être installée
Installer default-libmysqlclient-dev pour remplacer libmysqlclient-dev
# Le paquet équivalent pour mariadb devrait être libmariadbclient-dev.
sudo apt install default-libmysqlclient-dev
# Installer alors le gem de mysql2 pour vérifier si ça passe.
sudo su - redmine
gem install mysql2 -v '~>0.4.10'
# Oui, l'installation du gem mysql2 est fonctionnelle !
# Relancer l'installation de l'étape qui ne passait pas :
bundle install --without development test postgresql sqlite
# Toutes les gems sont maintenant installées.

Préparer la base de données

rake generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production REDMINE_LANG=en rake redmine:load_default_data

PUMA CONFIGURATION

Create a new configuration file as follows:
nano ~/redmine/config/puma.rb
#!/usr/bin/env puma
application_path = '/opt/redmine/redmine'
directory application_path
environment 'production'
daemonize true
pidfile "#{application_path}/tmp/pids/puma.pid"
state_path "#{application_path}/tmp/pids/puma.state"
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
bind "tcp://0.0.0.0:9000"

Start the puma server

Start the puma server using the following command :
cd /opt/redmine/redmine/ && bundle exec puma --config config/puma.rb
The output should be similar to the following:
Puma starting in single mode...
* Version 3.11.3 (ruby 2.4.1-p111), codename: Love Song
* Min threads: 0, max threads: 16
* Environment: production
* Daemonizing...
Finally your can start your browser and access your new Redmine installation at: http://IP_ADDRESS:9000
You have successfully installed Redmine on your Ubuntu. For more information about Redmine, please refer to the Redmine website.

Installation : 30 minutes to Redmine 3.4, an express installation guide

Prérequis

Tutoriel utilisé

Ko.png 30 minutes to Redmine 3.4, an express installation guide : https://martin-denizet.com/30-minutes-to-redmine-3-4-an-express-installation-guide/
Ce tutoriel correspond à mes attentes car il rend Redmine accessible depuis un sous domaine, et, il traite de la façon d'intégrer GIT ou un nouveau template.
Ce tutoriel n'a pas pu être rendu fonctionnel lors de mes premiers essais, n'arrivant pas a identifier l'erreur de version du bundle et pourquoi la gem mysql2 ne s'installait pas.
J'ai pu identifier dans le second tutoriel comment changer la version du bundle qui bloquait l'avancement de l'installation.
Ensuite, j'ai pu identifier le paquet permettant l'installation de la gem mysql2.
Ce tutoriel est peut être limité en information dans sa façon de procéder pour la mise à jour de Redmine.
Je vais voir à suivre l'installation du premier des tutoriels présenté sur cette page du wiki pour obtenir une installation pratique et fonctionnelle adaptée à mes besoins.

RAM et swap

Vous aurez besoin d'un minimum de 1 Go de RAM pour compiler durant l'installation, il est préférable d'avoir plus de 1,5 Go de RAM.
Si vous faites face à une erreur de compilation en raison d'une insuffisance de mémoire, vous pouvez créer un fichier d'échange swap pour pouvoir compiler normalement.

Donner les droits sudo à l'utilisateur qui va installer les dépendances

su
usermod -a -G sudo mon_utilisateur
exit
# Redémarrer la machine pour appliquer la prise en compte des droits sudo pour l'utilisateur.

Installer les paquets prérequis

sudo apt-get -y install subversion mariadb-server libmariadbclient-dev apache2 apache2-dev libapr1-dev libaprutil1-dev libcurl4-gnutls-dev libmagickwand-dev imagemagick build-essential dirmngr curl

Créer un domaine fictif dans le cas d'un test sur une machine locale

# Le domaine fictif permettra de consulter Redmine localement depuis le navigateur.
# Ouvrir le fichier /etc/hosts en tant que root.
su
nano /etc/hosts
# Ajouter la deuxième ligne.
127.0.0.1       localhost
127.0.0.1       redmine.domaine.com

Installation

Installer RVM et Ruby

# Consulter les instructions détaillées officielles pour ne pas exécuter un script depuis internet pour plus de sécurité : https://rvm.io/rvm/security
# Télécharger la clé RVM.
curl -sSL https://rvm.io/mpapis.asc | gpg --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -
# Tho I note that Redmine 3.4 is not officially compatible with Ruby 2.6.x.
# J'ai tenté l'installation avec RVM 2.4 et 2.6 mais je n'arrive pas à afficher Redmine. Peut être un simple couak à cause de droits mal placés, ou alors, un problème de versions.
# Je tente en diminuant la version de ruby, pour 2.2 avec Redmine 3.4.
# La version 2.2 ne m'aide pas d'avantage au final.
# Télécharger le script d'installation de RVM pour installer la dernière version de Ruby.
curl -sSL https://get.rvm.io | bash -s stable --ruby=2.2
# Le mot de passe sudo est demander pour aboutir l'installation.
# Commencer à utiliser RVM.
# Il est nécessaire de lancer cette commande pour utiliser RVM.
# source /usr/local/rvm/scripts/rvm # Commande qui ne fonctionne plus. Utiliser le path utilisateur alors, mais pourquoi ?
source /home/uservps/.rvm/scripts/rvm
# Lister les versions de binary disponibles :
rvm list remote
# Affiche :
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.5]
[ruby-]2.5[.3]
[ruby-]2.6[.0]
ruby-head

Installer la dernière version de Redmine

# Installer la dernière version de la branche 3.4 de Redmine. Actuellement, il s'agit de la version 3.4.9.
# J'ai tenté l'installation de la version 4 avec RVM 2.6 mais je n'arrive pas à afficher Redmine. 403 Forbidden.
# Je ne passe pas directement à la branche 4, pour me permettre de mettre à jour mon Redmine qui est en version 3.4.6 et je retente avec RVM 2.2.
# Un utilisateur système redmine pourrait être utilisé ici ?!?.
cd /opt/
sudo mkdir redmine
cd redmine/
# L'adresse URL peut être remplacée par la dernière version de Redmine proposée sur le dépôt SVN.
sudo svn co http://svn.redmine.org/redmine/branches/3.4-stable current
cd current/
sudo mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R www-data:www-data files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets
sudo mkdir -p /opt/redmine/repos/svn /opt/redmine/repos/git
sudo chown -R www-data:www-data /opt/redmine/repos
sudo cp config/configuration.yml.example config/configuration.yml
sudo cp config/database.yml.example config/database.yml

Fixer pour UTF8MB4

# Le tutoriel utilisé pour retranscrire cette installation évoque le problème suivant :
# Il existe un problème de migration à l'aide de utf8mb4 qui nécessite un correctif
# Consulter le tutoriel d'origine : https://martin-denizet.com/30-minutes-to-redmine-3-4-an-express-installation-guide/
# Créer le fichier suivant :
sudo nano /opt/redmine/current/config/initializers/ar_innodb_row_format.rb
# Ajouter le contenu suivant :
ActiveSupport.on_load :active_record do
   module ActiveRecord::ConnectionAdapters
       class AbstractMysqlAdapter
           def create_table_with_innodb_row_format(table_name, options = {})
               table_options = options.reverse_merge(:options => 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC')
               create_table_without_innodb_row_format(table_name, table_options) do |td|
                   yield td if block_given?
               end
           end
           alias_method_chain :create_table, :innodb_row_format
       end
   end
end
# Modifier la configuration de MariaDB :
sudo su
echo "[mysqld]" > /etc/mysql/mariadb.conf.d/60-innodb-utf8-mb4.cnf
echo "innodb_large_prefix             = 1" >> /etc/mysql/mariadb.conf.d/60-innodb-utf8-mb4.cnf
echo "innodb_file_format              = barracuda" >> /etc/mysql/mariadb.conf.d/60-innodb-utf8-mb4.cnf
echo "innodb_file_per_table           = 1" >> /etc/mysql/mariadb.conf.d/60-innodb-utf8-mb4.cnf
exit
# Redémarrer le service mysqld.
systemctl restart mysqld.service

Créer la base de données

# Se connecter en tant que root à la base de données.
sudo mysql -uroot
# Noter que 'mon_password' doit être remplacé par un mot de passe fort ! Par exemple : LrsBeAns.NC-B0
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'mon_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
EXIT;

Configurer la connexion à la base de données

# Éditer la configuration de la base de données.
# Ne pas oublier de renseigner le mot de passe 'mon_password'.
sudo nano config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "mon_password"
  encoding: utf8
# Conserver l'indentation, toutes les lignes sauf la première sont indentées de 2 espaces.
# Les tabulations cassent les fichiers YAML.

Installer bundler et passenger

# C'est maintenant que la RAM et le fichier de swap vont être fortement sollicités.
# Installer les gems.
gem install bundler passenger

# Va afficher :
Fetching bundler-2.0.1.gem
Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Installing ri documentation for bundler-2.0.1
Done installing documentation for bundler after 2 seconds
Fetching passenger-6.0.2.gem
Fetching rack-2.0.6.gem
Successfully installed rack-2.0.6
Building native extensions. This could take a while...
Successfully installed passenger-6.0.2
Parsing documentation for rack-2.0.6
Installing ri documentation for rack-2.0.6
Parsing documentation for passenger-6.0.2
Installing ri documentation for passenger-6.0.2
Done installing documentation for rack, passenger after 38 seconds
3 gems installed
# Compiler le module passenger pour Apache2 nécessite que les gems soient installées.
passenger-install-apache2-module --auto --languages ruby
# Une alerte est affichée que demande d'ajouter le code suivant dans /etc/apache2/apache2.conf
sudo nano /etc/apache2/apache2.conf
# Ajouter :
### LoadModule passenger_module /home/uservps/.rvm/gems/ruby-2.6.2/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
    PassengerRoot /home/uservps/.rvm/gems/ruby-2.6.2/gems/passenger-6.0.2
    PassengerDefaultRuby /home/uservps/.rvm/gems/ruby-2.6.2/wrappers/ruby
</IfModule>
# Ajouter la configuration suivante dans passenger.conf
passenger-install-apache2-module --snippet > /etc/apache2/conf-available/passenger.conf
# Affiche une erreur de permission :
bash: /etc/apache2/conf-available/passenger.conf: Permission non accordée 
# Changer le propriétaire du fichier temporairement.
cd /etc/apache2/conf-available/
sudo touch passenger.conf 
sudo chown uservps:uservps passenger.conf 
cd /opt/redmine/current
passenger-install-apache2-module --snippet > /etc/apache2/conf-available/passenger.conf
cd /etc/apache2/conf-available/
sudo chown root:root passenger.conf
# Relancer :
passenger-install-apache2-module --auto --languages ruby
# Activer passenger.
sudo a2enconf passenger
# Appliquer la prise en compte de passenger.
sudo systemctl reload apache2

Laisser le bundle installer les dépendances de Redmine

cd /opt/redmine/current
bundle install --without development test
# Affiche :
There was an error while trying to write to `/opt/redmine/current/.bundle/config`. It is likely that you need to grant write permissions for that path.
# Le dossier .bundle n'existe pas.
sudo mkdir .bundle
sudo chmod -R 755 /opt/redmine/current/.bundle/
cd .bundle/
sudo touch config
sudo chmod -R 755 /opt/redmine/current/.bundle/config
cd ..
sudo chown -R uservps:uservps /opt/redmine/current/.bundle/
cd /opt/redmine/current
sudo touch Gemfile.lock
sudo chown uservps:uservps Gemfile.lock
# Faut t'il redonner le fichier à root:root ? Pour l'instant je ne le fais pas.
bundle install --without development test
# Un nouveau message d'erreur est affiché :
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.

############################
# Inutile #
# Si je tente d'installer les gems :
gem install bundler
bundler could not find compatible versions for gem "bundler":
 In Gemfile:
   bundler (>= 1.5.0, < 2.0.0)

 Current Bundler version:
   bundler (2.0.1)
This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?

Could not find gem 'bundler (>= 1.5.0, < 2.0.0)' in any of the relevant sources:
 the local ruby installation
# Supprimer toutes les gems.
rvm all do gem uninstall bundler
# Installer sa propre version des gems.
gem install bundler -v '~>1.9.0'
# Relancer l'installation.
bundle install --without development test
############################
# Bundle complete! 32 Gemfile dependencies, 55 gems now installed.
# Gems in the groups development and test were not installed.
# Use `bundle info [gemname]` to see where a bundled gem is installed.

Installer les dépendances de Redmine

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
ou
rake db:migrate RAILS_ENV=production
sudo touch /opt/redmine/current/log/production.log
sudo chown uservps:uservps /opt/redmine/current/log/production.log
RAILS_ENV=production bundle exec rake redmine:load_default_data

Configuration du VirtualHost

nano /etc/apache2/sites-available/redmine.conf
ServerName redmine.domaine.com
<VirtualHost *:80>
   ServerAdmin admin@domain.com
   ServerName redmine.domaine.com
   DocumentRoot /opt/redmine/current/public/
   ## Passenger Configuration
   ## Details at http://www . modrails . com/documentation/Users%20guide%20Apache.html
   PassengerMinInstances 2
   PassengerMaxPoolSize 6
   RailsBaseURI /
   PassengerAppRoot /opt/redmine/current
   # Speeds up spawn time tremendously -- if your app is compatible.
   # RMagick seems to be incompatible with smart spawning
   RailsSpawnMethod smart
   # Keep the application instances alive longer. Default is 300 (seconds)
   PassengerPoolIdleTime 1000
   # Keep the spawners alive, which speeds up spawning a new Application
   # listener after a period of inactivity at the expense of memory.
   RailsAppSpawnerIdleTime 3600
   # Additionally keep a copy of the Rails framework in memory. If you're
   # using multiple apps on the same version of Rails, this will speed up
   # the creation of new RailsAppSpawners. This isn't necessary if you're
   # only running one or 2 applications, or if your applications use
   # different versions of Rails.
   PassengerMaxPreloaderIdleTime 0
   # Just in case you're leaking memory, restart a listener
   # after processing 500 requests
   PassengerMaxRequests 500
   # only check for restart.txt et al up to once every 5 seconds,
   # instead of once per processed request
   PassengerStatThrottleRate 5
   # If user switching support is enabled, then Phusion Passenger will by default run the web application as the owner if the file config/environment.rb (for Rails apps) or config.ru (for Rack apps). This option allows you to override that behavior and explicitly set a user to run the web application as, regardless of the ownership of environment.rb/config.ru.
   PassengerUser www-data
   PassengerGroup www-data
   # By default, Phusion Passenger does not start any application instances until said web application is first accessed. The result is that the first visitor of said web application might experience a small delay as Phusion Passenger is starting the web application on demand. If that is undesirable, then this directive can be used to pre-started application instances during Apache startup.
   PassengerPreStart http://localhost
   <Directory /opt/redmine/current/public/>
      Options FollowSymLinks
      Require all granted
   </Directory>
   AddOutputFilter DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css
   BrowserMatch ^Mozilla/4 gzip-only-text/html
   BrowserMatch ^Mozilla/4.0[678] no-gzip
   BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
   ErrorLog ${APACHE_LOG_DIR}/redmine.error.log
   LogLevel warn
   CustomLog ${APACHE_LOG_DIR}/redmine.access.log combined
   ServerSignature Off
</VirtualHost>

Permissions et redémarrer Apache2

sudo chown -R www-data:www-data /opt/redmine/current/log /opt/redmine/current/Gemfile.lock
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2dissite 000-default
sudo a2ensite redmine
sudo systemctl restart apache2.service
Erreur : Forbidden.
http://redmine.domaine.com/
J'ai alors tenté de passer tout le dossier /opt/redmine/current pour www-data, hormis le .bundle que je laisse à l'utilisateur courant.
Pas de changement. Forbidden.
J'étais ici en Ruby 3.6 et Redmine 4.0.

Bibliographie

2018

Ko.png How To Install Ruby on Debian 9 : https://linuxize.com/post/how-to-install-ruby-on-debian-9/
Ko.png How to Install Ruby on Rails on Debian 9 Stretch Linux : https://linuxconfig.org/how-to-install-ruby-on-rails-on-debian-9-stretch-linux

2017

Ok-ko.png (Ne concerne pas Redmine directement) - Install Ruby On Rails On Debian 9 / Ubuntu 16.04 : https://www.itzgeek.com/how-tos/linux/debian/install-ruby-rails-debian-9-debian-8.html

2016

Ko.png How To Install Ruby on Rails with RVM on Debian 8 : https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rvm-on-debian-8

2014

Ko.png Step by step Redmine installation : https://blog.singuerinc.com/redmine/apache/pusion/passenger/mysql/rvm/ruby/2014/01/23/code-day-023-full-redmine-installation-step-by-step/

2013

Ko.png How To Install Ruby on Rails on an Debian 7.0 (Wheezy) VPS using RVM : https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-an-debian-7-0-wheezy-vps-using-rvm

2011

Ko.png Installer RVM et Rails sur Ubuntu : https://cplusn.com/2011/12/installer-rvm-sur-ubuntu/

NAVIGATION

PARTICIPER ET PARTAGER

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur ce wiki sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.
Consulter le miroir du wiki depuis Planet Hoster : Le miroir du wiki version du 12 Juillet 2019.