Redmine auf CentOS installieren und konfigurieren
Redmine ist ein kostenloses, quelloffenes, beliebtes Projektmanagement- und Problemverfolgungssystem. Es unterstützt PostgreSQL- und MariaDB-Datenbanken und basiert auf dem Ruby on Rails Framework. Es unterstützt Plugins von Drittanbietern, mit denen du mehrere Projekte, Wikis und Foren einrichten kannst. Es bietet eine Vielzahl von Funktionen, darunter E-Mail- und Feed-Benachrichtigungen, Unterstützung mehrerer Sprachen, rollenbasierte Zugriffskontrolle, Dateiverwaltung und vieles mehr.
In diesem Lernprogramm wird erklärt, wie du das Redmine-Projektmanagementsystem auf CentOS installierst.
Voraussetzungen
- Ein Server, auf dem CentOS 8 läuft.
- Ein Root-Passwort ist auf dem Server konfiguriert.
Erforderliche Abhängigkeiten installieren
Bevor du beginnst, musst du einige Abhängigkeiten auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:
dnf group install "Development Tools" dnf install zlib-devel curl-devel openssl-devel -y
Sobald alle Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.
MariaDB Datenbank installieren und konfigurieren
Redmine verwendet MariaDB als Datenbank-Backend. Deshalb musst du den MariaDB-Datenbankserver auf deinem Server installieren. Du kannst ihn mit dem folgenden Befehl installieren:
dnf install mariadb-server mariadb-devel -y
Sobald der MariaDB-Server installiert ist, starte den MariaDB-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start mariadb systemctl enable mariadb
Melde dich dann mit folgendem Befehl in der MariaDB-Shell an:
mysql
Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer für Redmine mit dem folgenden Befehl:
MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8mb4; MariaDB [(none)]> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';
Als Nächstes löschst du die Berechtigungen und verlässt MariaDB mit dem folgenden Befehl:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Ruby und Passenger installieren
Als Nächstes musst du Ruby und Passenger auf deinem System installieren.
Installiere und aktiviere zunächst das EPEL-Repositorium mit dem folgenden Befehl:
dnf install epel-release -y dnf config-manager --enable epel -y
Als Nächstes installierst du Ruby und Passenger mit dem folgenden Befehl:
dnf install mod_passenger passenger passenger-devel ruby ruby-devel -y
Sobald alle Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.
Redmine installieren
Zuerst musst du einen eigenen Benutzer für Redmine anlegen. Du kannst ihn mit dem folgenden Befehl erstellen:
useradd -m -U -r -d /opt/redmine redmine
Als Nächstes loggst du dich als Redmine-Benutzer ein und lädst die neueste Version von Redmine mit dem folgenden Befehl herunter:
su - redmine wget --no-check-certificate https://www.redmine.org/releases/redmine-4.2.1.zip
Sobald der Download abgeschlossen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:
unzip redmine-4.2.1.zip
Benenne dann das entpackte Verzeichnis mit folgendem Befehl um:
mv redmine-4.2.1 redmine
Wechsle dann in das Verzeichnis Redmine und kopiere die Konfigurationsdatei der Beispieldatenbank:
cd redmine cp config/database.yml.example config/database.yml
Als Nächstes bearbeitest du die Datenbankkonfigurationsdatei und legst deine Datenbankeinstellungen fest:
nano config/database.yml
Ändere die folgenden Zeilen, die zu deiner Datenbank passen:
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "password" encoding: utf8mb4
Speichere und schließe die Datei und installiere den Bundler mit dem folgenden Befehl:
gem install bundler --no-rdoc --no-ri
Als Nächstes installierst du andere Abhängigkeiten mit dem folgenden Befehl:
bundle install --without development test postgresql sqlite --path vendor/bundle
Als Nächstes generierst du ein geheimes Token mit dem folgenden Befehl:
bundle exec rake generate_secret_token
Als Nächstes generierst du die von der Anwendung benötigten Datenbankobjekte mit folgendem Befehl:
RAILS_ENV=production bundle exec rake db:migrate
Starte schließlich die Anwendung mit dem folgenden Befehl:
bundle exec rails server webrick -e production
Du solltest die folgende Ausgabe sehen:
/usr/bin/ruby: warning: shebang line ending with \r may cause problems => Booting WEBrick => Rails 5.2.5 application starting in production on http://0.0.0.0:3000 => Run `rails server -h` for more startup options [2021-06-24 00:40:15] INFO WEBrick 1.4.2 [2021-06-24 00:40:15] INFO ruby 2.5.5 (2019-03-15) [x86_64-linux] [2021-06-24 00:40:15] INFO WEBrick::HTTPServer#start: pid=43076 port=3000
Drücke STRG + C, um die Anwendung zu beenden.
Beende den Redmine-Benutzer mit dem folgenden Befehl:
exit
Erstelle eine Systemd-Dienstdatei für Redmine
Als Nächstes musst du eine Systemd-Dienstdatei erstellen, um die Redmine-Anwendung zu verwalten. Du kannst sie mit dem folgenden Befehl erstellen:
nano /usr/lib/systemd/system/redmine.service
Füge die folgenden Zeilen hinzu:
[Unit] Description=Redmine server After=syslog.target After=network.target [Service] Type=simple User=redmine Group=redmine ExecStart=/bin/ruby /opt/redmine/redmine/bin/rails server webrick -e production # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 [Install] WantedBy=multi-user.target
Speichere und schließe die Datei und lade den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Starte als Nächstes den Redmine-Dienst und aktiviere ihn so, dass er beim Neustart des Systems gestartet wird:
systemctl start redmine systemctl enable redmine
Überprüfe nun den Status von Redmine mit folgendem Befehl:
systemctl status redmine
Du solltest die folgende Ausgabe sehen:
? redmine.service - Redmine server Loaded: loaded (/usr/lib/systemd/system/redmine.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2021-06-24 04:26:51 EDT; 1min 37s ago Main PID: 44044 (ruby) Tasks: 3 (limit: 25014) Memory: 121.6M CGroup: /system.slice/redmine.service ??44044 /bin/ruby /opt/redmine/redmine/bin/rails server webrick -e production Jun 24 04:26:51 centos8 systemd[1]: Started Redmine server. Jun 24 04:26:52 centos8 ruby[44044]: /bin/ruby: warning: shebang line ending with \r may cause problems Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO WEBrick 1.4.2 Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO ruby 2.5.5 (2019-03-15) [x86_64-linux] Jun 24 04:26:56 centos8 ruby[44044]: [2021-06-24 04:26:56] INFO WEBrick::HTTPServer#start: pid=44044 port=3000
Zu diesem Zeitpunkt ist Redmine gestartet und lauscht auf Port 3000. Du kannst das mit dem folgenden Befehl überprüfen:
ss -antpl | grep 3000
Du solltest die folgende Ausgabe erhalten:
LISTEN 0 128 0.0.0.0:3000 0.0.0.0:* users:(("ruby",pid=44044,fd=9))
Nginx als Reverse Proxy für Redmine konfigurieren
Als Nächstes musst du Nginx als Reverse Proxy für Redmine installieren und konfigurieren. Installiere zunächst den Nginx-Server mit dem folgenden Befehl:
dnf install nginx -y
Als Nächstes erstellst du eine Konfigurationsdatei für den virtuellen Nginx-Host mit folgendem Befehl:
nano /etc/nginx/conf.d/redmine.conf
Füge die folgenden Zeilen hinzu:
upstream backend { server 127.0.0.1:3000; } server { listen 80; server_name redmine.example.com; access_log /var/log/nginx/redmine.example.com-access.log; error_log /var/log/nginx/redmine.example.com-error.log; location / { proxy_pass http://backend/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header X-Forward-Proto http; proxy_set_header X-Nginx-Proxy true; proxy_redirect off; } }
Speichere und schließe die Datei und überprüfe Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Du solltest die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starte als Nächstes den Nginx-Dienst und aktiviere ihn so, dass er beim Neustart des Systems startet:
systemctl start nginx systemctl enable nginx
Du kannst den Status von Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Du solltest die folgende Ausgabe erhalten:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Drop-In: /usr/lib/systemd/system/nginx.service.d ??php-fpm.conf Active: active (running) since Thu 2021-06-24 04:33:48 EDT; 25s ago Process: 45832 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 45830 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 45828 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 45833 (nginx) Tasks: 3 (limit: 25014) Memory: 5.3M CGroup: /system.slice/nginx.service ??45833 nginx: master process /usr/sbin/nginx ??45834 nginx: worker process ??45835 nginx: worker process Jun 24 04:33:48 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server... Jun 24 04:33:48 centos8 nginx[45830]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Jun 24 04:33:48 centos8 nginx[45830]: nginx: configuration file /etc/nginx/nginx.conf test is successful Jun 24 04:33:48 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Zugriff auf Redmine
Jetzt kannst du über die URL http://redmine.example.com auf die Redmine-Weboberfläche zugreifen . Du solltest die folgende Seite sehen:
Klicke auf die Schaltfläche Anmelden. Du solltest die Redmine-Anmeldeseite sehen:
Gib den Standardbenutzer und das Passwort admin ein und klicke dann auf die Schaltfläche Anmelden. Du wirst zur Seite „Passwort ändern“ weitergeleitet:
Lege dein neues Admin-Passwort fest und klicke auf die Schaltfläche Speichern, um die Änderungen zu speichern.
Fazit
Herzlichen Glückwunsch! Du hast Redmine erfolgreich auf CentOS 8 mit Nginx installiert. Jetzt kannst du Redmine in deiner Organisation nutzen und dein Projekt von einem zentralen Ort aus verwalten.