Installer Redmine sur Debian avec RVM ne fonctionne pas
Aller à la navigation
Aller à la recherche
Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
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é
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é
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é
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é
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 athttp://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
How To Install Ruby on Debian 9 : https://linuxize.com/post/how-to-install-ruby-on-debian-9/ 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
(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
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
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
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
Installer RVM et Rails sur Ubuntu : https://cplusn.com/2011/12/installer-rvm-sur-ubuntu/
NAVIGATION
PARTICIPER ET PARTAGERBienvenue sur le wiki de Amis SH. De nombreuses pages sont partagées sur ce wiki. Créer un compte utilisateur pour participer sur le wiki. Les pages présentées sur le wiki évoluent tous les jours. Certaines recherches sont peu abouties et incluent des erreurs. Utiliser la recherche interne du wiki pour trouver votre contenu. La page de discussion de Amis SH vous permet de poser vos questions. Consulter le site amis-sh.fr pour installer votre propre serveur web. Améliorer le contenu des pages avec vos retours depuis l'onglet discussion. Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique. Protéger votre système Linux ou Windows avec cette page dédiée à la sécurité. |
SOUTENIR CE WIKISoutenir 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 NUMERIQUEObtenir gratuitement de la monnaie numérique : Miner de la cryptomonnaie. |