Redmine FastCGI installieren

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

Redmine mit FastCGI installieren

Redmine ist ein Werkzeug zur Projektverwaltung - in erster Linie für Software-Entwicklungs-Projekte geeignet.

Redmine ist in Ruby mit dem Framework Ruby on Rails programmiert. Es steht unter der General Public License v2 (GPL).

Hier soll es als Beispiel dienen, wie man auf der Hostsharing-Infrastruktur Rails-Anwendungen betrieben kann.

Vorbereitungen

Download der aktuellen Redmine Version von RubyForge (zur Zeit Version 1.4.1)

 cd ~
 tar xfz /path/to/redmine-1.4.1-tgz
 cd ~/redmine-1.4.1

Auflösen der Abhängigkeiten

 export GEM_PATH=$( gem env gempath )
 export GEM_HOME=$HOME/.gem/ruby/1.8
 export RAILS_ENV=production
 gem install bundler

Konfiguration

Datenbank

Mit hsadmin habe ich den Postgres-User 'xyz00_redmine' (Passwort sei 'geheim') und die Datenbank 'xyz00_redmine' angelegt.

Die Datenbank konfigurieren ich wie folgt:

 cd ~/redmine-1.4.1/config/
 vi database.yml

mit folgendem Inhalt:

 production:
   adapter: postgresql
   database: xyz00_redmine
   host: localhost
   username: xyz00_redmine
   password: geheim

E-Mail, Dateiablage

 cd ~/redmine-1.4.1/config/
 vi configuration.yml

Wichtige Inhalte:

 default:
   email_delivery:
     delivery_method: :smtp
     smtp_settings:
       address: localhost
       port: 25
       domain: example.org
   attachments_storage_path: /home/pacs/xyz00/users/redmine/attach

Laden von Abhängigkeiten, Datenbankschema

Folgende Kommandos ausführen:

 cd ~/redmine-1.4.1
 ~/.gem/ruby/1.8/bin/bundle install --without development test
 ~/.gem/ruby/1.8/bin/bundle exec rake generate_session_store
 ~/.gem/ruby/1.8/bin/bundle exec rake db:migrate
 ~/.gem/ruby/1.8/bin/bundle exec rake redmine:load_default_data

Das Skript fragt einer Sprache für die Inhalte der Datenbank: je nach Wunsche 'de' oder 'en' wählen.

Konfiguration von FastCGI

Datei ~/doms/redmine.example.org/htdocs/.htaccess

 RewriteEngine On
 RewriteRule ^$ index.html [QSA]
 RewriteRule ^([^.]+)$ $1.html [QSA]
 RewriteCond %{REQUEST_FILENAME} !-f [OR]
 RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$
 RewriteRule ^(.*)$ /fastcgi-bin/dispatch.fcgi [QSA,L]

Datei ~/doms/redmine.example.org/fastcgi/dispatch.fcgi

 #!/usr/bin/env ruby
 require "/home/pacs/xyz00/users/meinuser/redmine-1.4.1/config/environment" 
 require 'fcgi_handler'
 RailsFCGIHandler.process!

FastCGI-Skript ausführbar machen:

 chmod 755 ~/doms/redmine.example.org/fastcgi/dispatch.fcgi


Am Anfang von ~/redmine-1.4.1/config/environment.rb füge ich ein:

 ENV['RAILS_ENV'] ||= 'production'
 ENV['GEM_PATH'] ||= '/home/pacs/xyz00/users/meinuser/.gem/ruby/1.8:/var/lib/gems/1.8'

Die Inhalte von ~/doms/redmine.example.org/public/ als webroot sichtbar machen:

 # Vorhandene Dateien sichern. (Alternativ in ~/redmine-1.4.1/public kopieren)
 mv ~/doms/redmine.example.org/htdocs ~/doms/redmine.example.org/htdocs.old
 ln -s ~/redmine-1.4.1/public ~/doms/redmine.example.org/htdocs

Konfiguration von SSL

Die Verzeichnisse ~/doms/redmine.example.org/fastcgi-ssl/ und ~/doms/redmine.example.org/htdocs-ssl/ werden analog zu bzw. anstelle von fastcgi und htdocs gefüllt.