Redmine ist eine Open-Source-Webanwendung für Projektmanagement und Problemverfolgung. Redmine basiert auf dem Ruby on Rails Framework, bietet plattform- und datenbankübergreifende Unterstützung und wird mit Übersetzungen für 42 Sprachen ausgeliefert. Die Software ermöglicht es Ihnen, mehrere Projekte zu verfolgen, sie integriert Nachrichten-, Dokumenten- und Dateiverwaltung und ein Support-Wiki pro Projekt. Benutzerkonten können anhand eines LDAP-Verzeichnisses authentifiziert werden, und Software von Drittanbietern kann über eine REST-API verbunden werden.
In diesem Tutorial installieren wir Redmine 3.2 mit Nginx als Webserver und MySQL als Datenbankserver auf einem CentOS 7-Betriebssystem (64 Bit).
Voraussetzung
- CentOS 7 - 64-Bit.
- Root-Rechte.
Schritt 1 - Installieren Sie die Redmine-Abhängigkeiten
Redmine hat viele Abhängigkeiten, die wir zuerst installieren werden. Melden Sie sich als Root-Benutzer bei Ihrem CentOS 7-Server an:
ssh [email protected]
Installieren Sie alle für Redmine erforderlichen Abhängigkeiten und die für Ruby und rvm erforderlichen Pakete mit dem yum-Befehl unten:
yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion
Die Installation fragt nach einem MySQL-Passwort. Geben Sie Ihr neues MySQL-Root-Passwort ein, wenn Sie dazu aufgefordert werden.
Schritt 2 – Ruby und RVM installieren
In diesem Schritt werden wir rvm (neueste Version) und ruby 2.2 installieren. Redmine 3.2 unterstützt die Ruby-Version 2.2. RVM (Ruby Version Manager) ist ein Befehlszeilentool, mit dem Sie mehrere Ruby-Umgebungen auf demselben Server installieren, verwalten und damit arbeiten können.
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5
Wenn die Installation abgeschlossen ist, müssen wir RVM neu laden und es zum automatischen Neuladen zur .bashrc-Datei hinzufügen:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc
Laden Sie die .bashrc-Datei neu und überprüfen Sie die Ruby- und RVM-Version.
source ~/.bashrc
ruby -v
rvm -v
Schritt 3 – Konfigurieren Sie die Datenbank für Redmine
In diesem Schritt installieren wir das mysql-server-Paket aus dem offiziellen MySQL-Repository.
Fügen Sie das Oracle MySQL-Repository hinzu und überprüfen Sie die Repository-Liste.
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist
um sicherzustellen, dass das MySQL-Server-Repository erfolgreich hinzugefügt wurde.
Installieren Sie den MySQL-Server mit diesem yum-Befehl.
yum install mysql-server
Wenn die Installation abgeschlossen ist, starten Sie den mysqld-Dienst und konfigurieren Sie das MySQL-Root-Passwort.
systemctl start mysqld
MySQL-Server wurde gestartet. Holen Sie sich jetzt das temporäre Root-Passwort für den MySQL-Server mit dem folgenden grep-Befehl:
grep 'temporary password' /var/log/mysqld.log
Sie sehen ein ähnliches Ergebnis wie dieses:
2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for [email protected]: />y.)uWui8j*
Wir wissen also, dass das Root-Passwort für den MySQL-Server lautet:/>y.)uWui8j*
Jetzt werden wir ein neues Root-Passwort für den MySQL-Server festlegen. Melden Sie sich mit dem Benutzer root und dem generierten Passwort bei der MySQL-Shell an:
mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*
Legen Sie mit der Mysql-Abfrage unten ein neues Root-Benutzerpasswort fest:
ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]!';
Erstellen Sie als Nächstes eine neue Datenbank namens „redmine“ und erstellen Sie einen neuen Benutzer „redmine“ mit dem Passwort „redmine“ (verwenden Sie hier ein sicheres Passwort auf Ihrem Server!). Gewähren Sie dem Benutzer dann alle Privilegien für die 'redmine'-Datenbank.
create database redmine;
create user [email protected] identified by '[email protected]!';
grant all privileges on redmine.* to [email protected] identified by '[email protected]!';
flush privileges;
exit
Datenbank und Benutzer wurden erstellt.
Schritt 4 – Phusion Passenger und Nginx installieren
Phusion Passenger ist ein Webanwendungsserver, der zusammen mit Apache und Nginx verwendet werden kann. Es unterstützt mehrere Sprachen:Ruby, Python und Nodejs. Es ist für uns einfach, schnell, kann mehr Datenverkehr verarbeiten und bietet Sicherheitsverbesserungen.
In diesem Kapitel installieren wir den Phusion Passenger und integrieren ihn in unseren nginx-Webserver. Installieren Sie Passenger mit dem Gem-Befehl unten und führen Sie dann den Befehl Passenger-nginx-module.
ausgem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
Der Befehl fragt Sie, welche Programmiersprache verwendet werden soll, wählen Sie Ruby und Python .
Sie werden nach der nginx-Installation gefragt; Wählen Sie "Ja:Nginx für mich herunterladen, kompilieren und installieren. (empfohlen) ".
Sie werden nach dem nginx-Installationsverzeichnis gefragt, verwenden Sie die Standardeinstellung '/opt/nginx/' , drücken Sie einfach "Enter ".
Schritt 5 – Nginx konfigurieren
Wechseln Sie nach Abschluss der nginx-Installation in das Installationsverzeichnis und bearbeiten Sie die Datei nginx.conf mit einem Editor.
cd /opt/nginx/
cd conf/
vim nginx.conf
Fügen Sie die Konfiguration unten in Zeile 24 ein:
include vhost/*.conf;
Speichern Sie die Datei und verlassen Sie den Editor.
Erstellen Sie ein neues „vhost“-Verzeichnis für die Konfiguration des virtuellen Hosts.
mkdir -p /opt/nginx/conf/vhost
Gehen Sie in das vhost-Verzeichnis und erstellen Sie die Redmine-Virtualhost-Konfiguration mit vim:
cd /opt/nginx/conf/vhost/
vim redmine.conf
Fügen Sie die Konfiguration des virtuellen Hosts unten ein:
server {
listen 80;
server_name www.redmine.me;
root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
Speichern Sie die Datei.
Ubuntu 16.04 verwendet systemd als Init-System. Als nächstes konfigurieren wir nginx für systemd. Gehen Sie in das systemd-Verzeichnis und erstellen Sie eine neue Dienstdatei mit dem Namen „nginx.service“.
cd /lib/systemd/system/
vim nginx.service
Fügen Sie das nginx-Skript für systemd unten ein:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Speichern und beenden.
Laden Sie den systemd-Dienst neu und versuchen Sie, nginx mit dem systemctl-Befehl zu starten:
systemctl daemon-reload
systemctl start nginx
Wenn Sie nginx überprüfen möchten, überprüfen Sie den offenen Port 80:
netstat -plntu | grep nginx
Das Ergebnis sollte so aussehen:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginx
Schritt 6 - Redmine installieren
Erstellen Sie ein neues Verzeichnis für die Redmine-Installation. Ich werde hier das Verzeichnis „/var/www/“ verwenden.
mkdir -p /var/www/
Gehen Sie in das Verzeichnis ‚/var/www/‘ und laden Sie Redmine mit dem svn-Befehl herunter:
cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine
Wechseln Sie in das Redmine-Verzeichnis und kopieren Sie die Konfigurationsdatei und die Datenbankkonfigurationsdatei:
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
Bearbeiten Sie die Datei database.yml mit vim:
vim config/database.yml
Geben Sie in der Produktionsabschnittszeile den Datenbanknamen, den Benutzer und das Passwort ein:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "[email protected]!"
encoding: utf8
Speichern Sie die Datei.
Erstellen Sie im Redmine-Verzeichnis einige neue Verzeichnisse und ändern Sie den Eigentümer in Benutzer und Gruppe niemand:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets
Installieren Sie die Bundler- und Gem-Abhängigkeiten für Redmine:
gem install bundler
bundle install --without development test
Generieren Sie das geheime Token und dann die Datenbank:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
Starten Sie nginx neu und besuchen Sie den Redmine-Domänennamen mit einem Webbrowser:
systemctl restart nginx
Besuchen Sie die Redmine-Installation, meine ist:www.redmine.co
Melden Sie sich auf der Admin-Seite an:www.redmine.co/login
Der Standardbenutzer und das Passwort sind „admin“.
Erstellen Sie ein neues Beispielprojekt.
Beispielprojektseite.
Die Installation von Redmine mit Nginx und MySQL auf CentOS 7 war erfolgreich.
Schlussfolgerung
Redmine ist eine webbasierte Anwendung für Projektmanagement und Problemverfolgung. Redmine ist plattformübergreifend, sodass wir es unter Windows, Linux oder Mac OS ausführen können. Redmine unterstützt viele Datenbanken wie MySQL, PostgreSQL, Microsoft SQL Server und SQLite. Redmine ist einfach zu installieren und zu konfigurieren, wir können Apache oder Nginx als Webserver verwenden. Redmine ist sehr leistungsfähig und hat viele Funktionen wie Mehrsprachenunterstützung, Dateiverwaltung, Wiki und eine REST-API. Redmine ist eine der besten kostenlosen Lösungen, wenn Sie Ihr eigenes Projektmanagement mit Problemverfolgung aufbauen möchten.