Redmine est gestionnaire de projet logiciel écrit en Ruby et basé sur Ruby on Rails (RoR). Cet article montre un exemple d'installation d'une application RoR avec intégration dans Apache.
# aptitude install ruby rdoc ri libopenssl-ruby
Il faut aussi certains packages ruby tiers, pour le support PostgreSQL par exemple. Il s'agit de “RubyGems”, qu'on peut comparer à Pear pour PHP ou les modules Perl provenant du CPAN.
# aptitude install rubygems
Ce package fourni la base de pour obtenir et gérer les gems, surtout avec la commande /usr/bin/gem
.
On va ensuite installer le gem de rake
, il s'agit de l'équivalent de la commande make pour Ruby:
# gem install rake Successfully installed rake-0.8.7 1 gem installed Installing ri documentation for rake-0.8.7... Installing RDoc documentation for rake-0.8.7... # gem list *** LOCAL GEMS *** rake (0.8.7)
Voir l'article détaillé. On va ajouter mod_proxy
# a2enmod Your choices are: ... ... proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite ... Which module(s) do you want to enable (wildcards ok)? proxy_http Considering dependency proxy for proxy_http: Enabling module proxy. Enabling module proxy_http. Run '/etc/init.d/apache2 restart' to activate new configuration! # /etc/init.d/apache2 restart Restarting web server: apache2 ... waiting .
Vhost: /etc/apache2/sites-available/redmine.example.org
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName redmine.example.org DocumentRoot /var/www/example.org/redmine/public <Directory /var/www/example.org/redmine/public> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/example.org/redmine_error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/example.org/redmine_access.log combined Alias /images /var/www/example.org/redmine/public/images Alias /stylesheets /var/www/example.org/redmine/public/stylesheets Alias /javascripts /var/www/example.org/redmine/public/javascripts <Proxy *> Order deny,allow Allow from all </Proxy> # ProxyPreserveHost on ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000 ProxyPass /images ! ProxyPass /stylesheets ! ProxyPass /javascripts ! </VirtualHost>
Voir l'article détaillé. On va ajouter le gem pour que Ruby, et par extension Redmine puisse parler avec PostgreSQL. On va la compiler, il faut donc ajouter les versions -dev
de certains paquets:
# aptitude install ruby-dev libpq-dev
On peut alors ajouter le gem pg
:
# gem install pg Building native extensions. This could take a while... Successfully installed pg-0.8.0 1 gem installed Installing ri documentation for pg-0.8.0... Installing RDoc documentation for pg-0.8.0...
On créé ensuite, un utilisateur et une base dédiée pour Redmine :
# su - postgres $ createuser -SDRlIPE redmine --> Entrer un mot de passe $ createdb -E UTF8 -O redmine redmine
# aptitude install mongrel
# useradd -d /var/www -g www-data -N -r -s /bin/false mongrel
: passer le rc-script en mode Debian à partir de skeleton
#!/bin/sh APP_ROOT=/var/www/example.org/redmine DB=production PORT=3000 USER=mongrel GROUP=www-data case $1 in start) mongrel_rails start -e $DB -p $PORT -a localhost -P $APP_ROOT/log/mongrel_${PORT}.pid -c $APP_ROOT --user $USER --group $GROUP -d rc=$? ;; stop) mongrel_rails stop -c $APP_ROOT -P $APP_ROOT/log/mongrel_${PORT}.pid rc=$? ;; restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` {start|stop|restart}" exit 1 ;; esac exit $rc
config logrotate
# gem install -v=2.3.5 rails # cd /var/www/example.com/redmine # svn co http://redmine.rubyforge.org/svn/branches/0.9-stable . # cd config # cp database.yml.example database.yml -> Editer database.yml # rake generate_session_store # RAILS_ENV=production rake db:migrate # RAILS_ENV=production rake redmine:load_default_data (in /var/www/example.com/redmine) Select language: bg, bs, ca, cs, da, de, el, en, es, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sv, th, tr, uk, vi, zh, zh-TW [en] en ==================================== Default configuration data loaded.
mkdir tmp public/plugin_assets sudo chgrp -R www-data files log tmp public/plugin_assets sudo chmod -R g+w files log tmp public/plugin_assets