Ein einfaches „apt-get install redmine“ reicht nicht mehr, um eine aktuelle Redmine-Installation auf Ubuntu zu installieren. Aus diesem Grund dokumentiere ich hier, wie ich bei mir Redmine installiert habe.
Orientiert an dieser Anleitung poste ich hier meine Arbeitsschritte:
Prequisits / Voraussetzungen für Redmine schaffen
Apache installieren
apt-get install --no-install-recommends apache2 libapache2-mod-passenger logrotate ssl-cert
Ruby, git und andere Redmine-Abhängigkeiten installieren:
apt-get install --no-install-recommends git ruby ruby-dev ruby-rmagick rake make gcc libmysqlclient-dev patch
Quelltext von RUBY mittels git herunterladen
Apache installieren
cd /var/www git clone https://github.com/redmine/redmine
Anschließend wird das redmine-repository geklont:
Anschließend wechselt ihr in das redmine-Verzeichnis und wechselt den Branch auf den aktuellen Stable:
cd redmine git checkout 3.1-stable
Als nächstes bedienen wir uns dem offiziellen „Ruby Paketsystem“, um die Abhängigkeiten für Ruby downzuloaden. Achtet darauf, bei dem Befehl die HTTPS-Verbindung zur Paketquelle anzugeben!
Dafür müssen wir als erstes die Paketquelle in eine Datei schreiben mit dem Befehl:
cat << EOF >> /etc/gemrc
In die Datei schreibt ihr die folgenden Zeilen:
:sources: - https://rubygems.org EOF
Anschließend wechselt ihr in das Verzeichnis /var/www/redmine und installiert die Pakete „bundler“ und „nokogiri“
cd /var/www/redmine gem install --no-ri --no-rdoc bundler nokogiri hash -r
An dieser Stelle weiche ich von der oben genannten englischen Anleitung ab und gebe meinen externen MySQL-Server an, indem ich die Config kopiere und editiere:
cd config sudo cp database.yml.example database.yml sudo vim database.yml
Kopiert noch diese Zeilen in die database.yml:
# Clean up the environment unset REDMINE_PASSWORD
Nutze Bundler zum installieren erforderlicher gems und deaktiviere nicht genutzte:
cd /var/www/redmine bundle install --without development test postgresql sqlite rmagick
Konfiguration
Um eine MySQL-Datenbank anzulegen, verbindet Euch mit dem MySQL-Server Eurer Wahl oder legt einen lokalen mittelt apt-get install mysql-server an.
Mit den folgenden Befehlen legt ihr eine mysql-Datenbank mit einem zufääligen Passwort an:
REDMINE_PASSWORD=$(openssl rand -base64 33) mysql -e "CREATE DATABASE redmine CHARACTER SET utf8;" mysql -e "CREATE USER 'redmine'@'localhost' IDENTIFIED BY '$REDMINE_PASSWORD';" mysql -e "GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';"
Redmine
Als nächstes legt ihr einen User „redmine“ an:
adduser --quiet --system --group --gecos 'Passenger user for redmine' --shell /usr/sbin/nologin --home /nonexistent --no-create-home redmine
Korrigiert die Berechtigung für die Konfigurationsdatei:
touch /var/www/redmine/config/database.yml chmod 640 /var/www/redmine/config/database.yml chgrp redmine /var/www/redmine/config/database.yml
Als nächstes legt eine configuration.yml an und füllt sie mit den nachstehenden Inhalten:
touch /var/www/redmine/config/configuration.yml chmod 640 /var/www/redmine/config/configuration.yml chgrp redmine /var/www/redmine/config/configuration.yml cat << EOF > /var/www/redmine/config/database.yml
production: adapter: mysql2 database: redmine # XXX: Unix sockets are faster than loopback connections #host: 127.0.0.1 socket: /var/run/mysqld/mysqld.sock username: redmine password: "$REDMINE_PASSWORD" encoding: utf8 EOF
Solltet ihr an dieser Stelle Berechtigungsprobleme erhalten, versucht es nochmal mit sudo -i.
Als nächstes bereitet ihr die Datenbank vor inklusive Beispieldaten:
# Re-run Bundler to automatically install the right DB adapter now that database.yml is populated cd /var/www/redmine sudo bundle install --without development test postgresql sqlite rmagick # Generate a secret token and protect it sudo rake generate_secret_token sudo chmod 0640 config/initializers/secret_token.rb sudo chgrp redmine config/initializers/secret_token.rb sudo RAILS_ENV=production rake db:migrate sudo RAILS_ENV=production REDMINE_LANG=en rake redmine:load_default_data # Encrypt SCM and LDAP passwords sudo RAILS_ENV=production rake db:encrypt
Bereite ein paar Verzeichnisse vor:
cd /var/www/redmine mkdir -p tmp tmp/pdf public/plugin_assets sudo chown -R redmine: files log tmp public/plugin_assets sudo chmod -R 0755 public/plugin_assets sudo chmod -R 0750 files log tmp # can contain sensitive data sudo find files log tmp public/plugin_assets -type f -exec chmod -x {} +
Konfiguriere die LOG-Rotation, damit die Log-Dateien nicht das Dateisystem vollschreiben:
sudo -i cat << EOF > /etc/logrotate.d/redmine /var/www/redmine/log/*.log { daily missingok rotate 7 compress notifempty copytruncate } EOF exit
Apache Konfiguration
Ich werde als Aufruf-URL ein https://host/pm konfigurieren. Dafür ergänze ich in der configuration.yml folgende Zeilen:
# Configuration of the autologin cookie. # autologin_cookie_name: the name of the cookie (default: autologin) # autologin_cookie_path: the cookie path (default: /) # autologin_cookie_secure: true sets the cookie secure flag (default: false) autologin_cookie_name: autologin_cookie_path: "/pm" autologin_cookie_secure: true
Anschließend lege ich einen symbolischen Link an:
ln -s public pm
Optional könnt ihr ungenutzte Module entfernen:
a2dismod access_compat alias authz_groupfile autoindex cgid deflate dir env filter negotiation status > /dev/null
Konfiguriert die SSL-Konfiguration des Apache
cat << EOF > /etc/apache2/sites-available/pm.svc.sdeziel.info-ssl.conf <VirtualHost _default_:443> ServerName EUER_SERVERNAME ServerAdmin webmaster@EUREDOMAIN.DE ErrorLog /var/log/apache2/redmine-error.log CustomLog /var/log/apache2/redmine.log combined SSLEngine On SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key # Passenger user PassengerUser redmine # XXX: If NOT using a sub-URI #DocumentRoot /var/www/redmine/public # XXX: If using a sub-URI (/pm) DocumentRoot /var/www/redmine/pm RailsBaseURI /pm PassengerAppRoot /var/www/redmine </VirtualHost> EOF
Den nachfolgenden Schritt in der Anleitung kann ich nicht nachvollziehen, habe ihn aber dennoch durchgeführt:
„Tweak Passenger performance:“
cat << EOF > /etc/apache2/conf-available/zz-passenger-performance.conf # Passenger tuning PassengerMaxPoolSize 2 PassengerMinInstances 1 # XXX: Pick one of those PassengerPreStart #PassengerPreStart https://pm.svc.sdeziel.info/ #PassengerPreStart https://pm.svc.sdeziel.info/pm PassengerMaxRequests 5000 PassengerUploadBufferDir /tmp/ # Breaks compatibility with mod_autoindex and mod_rewrite PassengerHighPerformance on # Do not reveal too much about the server ServerTokens Prod ServerSignature Off
Es empfiehlt sich, nur HTTPS-Verbindungen zuzulassen:
sudo a2dissite default 000-default default-ssl sudo a2ensite EUER_SERVERNAME.info-ssl sudo a2enmod ssl passenger sudo a2enconf zz-passenger-performance sudo apache2ctl -S && service apache2 restart
Hallo. Ein Klasse tut.
Jedoch habe ich ein paar Probleme bei der Installation. Bin Neuling auf dem Gebiet. Ich wollte redmine local hosten. Schaffe es aber nicht.
Wäre es möglich ein kleines tut über YouTube zu machen. Anhand einer vm mit frischem ubuntu14.04.
Hallo Micha,
freut mich dass es Dir gefallen hat. Ubuntu 14.04 wird leider nicht mehr supported – aus diesem Grund macht es keinen großen Sinn mehr damit anzufangen und Redmine darauf neu zu installieren geschweige denn dafür ein Tutorial zu machen.
In mittlerer Zukunft (in den nächsten 4-5 Monaten) muss ich unser Redmine von Ubuntu 14.04 auf 16.04 migrieren – da ich vermute dass das nicht ganz einfach wird, werde ich es vermutlich neu installieren und dann die Daten hinein migrieren. Wenn ich dann herausgefunden habe, wie das geht, mache ich dazu gerne ein Tutorial…
Viele Grüße
Matthias