La procédure suivante à pour but l’installation de Redmine sur un nouveau système (par exemple une VM dédiée à Redmine).
L’instance est accessible en HTTPS (avec utilisation d’un certificat autosigné, mais celui-ci peux être adapté au besoin).
Un vhost par défaut est également créé afin de sécuriser l’installation et éviter tout duplicate content.
en root :
# apt-get update && apt-get upgrade # apt-get remove ruby # apt-get install apache2 apache2-dev curl imagemagick libapr1-dev libaprutil1-dev libcurl4-openssl-dev libmagickwand-dev libmysqlclient-dev mysql-client mysql-server vim-nox zsh
# 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
Garder les infos du fichier .my.cnf affiché à l’écran pour utilisation ultérieur.
# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 # curl -sSL https://get.rvm.io | bash -s stable --rails # rvm install 2.3.4 # rvm --default use ruby-2.3.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
# sudo -u redmine zsh
$ cd $ vim .my.cnf
Coller le contenu du fichier .my.cnf précédent
$ mysql -e 'CREATE DATABASE redmine_production CHARACTER SET utf8;'
S’il sagit d’une instance à restaurer ou d’une migration d’après un backup :
$ mysql redmine_production < /tmp/backup.sql
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.
Récupérer la branche (exemple) dans /opt/redmine :
$ svn co https://svn.redmine.org/redmine/branches/3.3-stable /opt/redmine
Préparer la configuration :
$ 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)
encoding: utf8
Installer les dépendances :
$ cd /opt/redmine $ gem install bundler $ gem install rmagick $ 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
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.
Fermez la 2° console.
Puis appuyiez « enter » sur la première console pour terminer l’installation de passenger.
Configuration Apache :
# 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>
# vim /etc/apache2/sites-available/redmine.conf
Insérer le contenu suivant :
<VirtualHost *:80>
ServerName votre.nom.de.domaine
Redirect permanent / https://votre.nom.de.domaine/
</VirtualHost>
<VirtualHost *:443>
ServerName votre.nom.de.domaine
LogLevel warn
ErrorLog /var/log/apache2/redmine_error
CustomLog /var/log/apache2/redmine_access combined
DocumentRoot /opt/redmine/public
<Directory /opt/redmine/public>
SetEnv HTTPS 1
RailsBaseURI /redmine
RailsEnv production
PassengerResolveSymlinksInDocumentRoot on
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
Voilà votre instance Redmine est disponible sur https://votre.nom.de.domaine/ !