Redmine ist eines der beliebtesten Open-Source-Softwaretools für Projektmanagement und Problemverfolgung. Es ist plattform- und datenbankübergreifend und baut auf dem Ruby on Rails-Framework auf.
Redmine umfasst Unterstützung für mehrere Projekte, Wikis, Problemverfolgungssystem, Foren, Kalender, E-Mail-Benachrichtigungen und vieles mehr.
In diesem Tutorial behandeln wir die Schritte, die zum Installieren und Konfigurieren der neuesten Version von Redmine auf einem CentOS 7-Server mit MariaDB als Datenbank-Backend und Passenger + Nginx als Ruby-Anwendungsserver erforderlich sind.
Voraussetzungen #
Stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben, bevor Sie mit diesem Lernprogramm fortfahren:
- Domänenname, der auf die öffentliche IP Ihres Servers verweist. In diesem Tutorial verwenden wir
example.com
. - Als Benutzer mit sudo-Berechtigungen angemeldet.
Installieren Sie die zum Erstellen von Redmine und Ruby erforderlichen Pakete aus der Quelle:
sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool
sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-devel
sudo yum install mariadb-devel zlib libyaml-devel bzip2 iconv-devel ImageMagick ImageMagick-devel
Mysql-Datenbank wird erstellt #
Redmine unterstützt MySQL/MariaDB, Microsoft SQL Server, SQLite 3 und PostgreSQL. In diesem Tutorial verwenden wir MariaDB als Datenbank-Backend.
Wenn Sie MariaDB oder MySQL nicht auf Ihrem CentOS-Server installiert haben, können Sie es installieren, indem Sie diesen Anweisungen folgen.
Melden Sie sich bei der MySQL-Shell an, indem Sie den folgenden Befehl eingeben:
sudo mysql
Führen Sie in der MySQL-Shell die folgende SQL-Anweisung aus, um eine neue Datenbank zu erstellen:
CREATE DATABASE redmine CHARACTER SET utf8;
Erstellen Sie als Nächstes ein MySQL-Benutzerkonto und gewähren Sie Zugriff auf die Datenbank:
GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Stellen Sie sicher, dass Sie change-with-strong-password
ändern mit einem starken Passwort. Wenn Sie fertig sind, verlassen Sie die MySQL-Shell, indem Sie Folgendes eingeben:
EXIT;
Installieren von Passenger und Nginx #
Passenger ist ein schneller und leichtgewichtiger Webanwendungsserver für Ruby, Node.js und Python, der mit Apache und Nginx integriert werden kann. Wir werden Passenger als Nginx-Modul installieren.
Installieren Sie das EPEL-Repository und die erforderlichen Pakete:
sudo yum install epel-release yum-utils pygpgme
sudo yum-config-manager --enable epel
Aktivieren Sie das Phusionpassengerrepository:
sudo yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
Sobald das Repository aktiviert ist, aktualisieren Sie die Paketliste und installieren Sie sowohl Nginx als auch Passenger mit:
sudo yum install nginx passenger passenger-devel
Neuen Systembenutzer # erstellen
Erstellen Sie einen neuen Benutzer und eine neue Gruppe, die die Redmine-Instanz ausführen. Der Einfachheit halber nennen wir den Benutzer redmine
:
sudo useradd -m -U -r -d /opt/redmine redmine
Fügen Sie nginx
hinzu Benutzer in die neue Benutzergruppe und ändern Sie den /opt/redmine
Verzeichnisberechtigungen, damit Nginx darauf zugreifen kann:
sudo usermod -a -G redmine nginx
sudo chmod 750 /opt/redmine
Installieren von Ruby #
Die Version von Ruby in den CentOS-Repositorys ist ziemlich veraltet und wird von Redmine nicht unterstützt. Wir installieren Ruby mit RVM.
Wechseln Sie zum Benutzerredmine
indem Sie Folgendes eingeben:
sudo su - redmine
Importieren Sie die GPG-Schlüssel und installieren Sie RVM:
gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
Um mit der Verwendung von RVM zu beginnen, geben Sie rvm
ein Datei:
source /opt/redmine/.rvm/scripts/rvm
Jetzt können wir Ruby installieren, indem wir Folgendes ausführen:
Wenn Sie Ruby über Rbenv installieren möchten, lesen Sie diese Anleitung.rvm install 2.5
rvm --default use 2.5
Redmine auf CentOS installieren #
Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste stabile Version von Redmine Version 4.0.1.
Bevor Sie mit den nächsten Schritten fortfahren, sollten Sie auf der Redmine-Downloadseite nachsehen, ob eine neuere Version verfügbar ist.
Stellen Sie sicher, dass Sie die folgenden Schritte alsredmine
ausführen Benutzer. 1. Herunterladen von Redmine #
Laden Sie das Redmine-Archiv mit dem folgenden Curl-Befehl herunter:
curl -L http://www.redmine.org/releases/redmine-4.0.1.tar.gz -o redmine.tar.gz
Sobald der Download abgeschlossen ist, extrahieren Sie das Archiv:
tar -xvf redmine.tar.gz
2. Konfigurieren der Redmine-Datenbank #
Kopieren Sie die Konfigurationsdatei der Redmine-Beispieldatenbank:
cp /opt/redmine/redmine-4.0.1/config/database.yml.example /opt/redmine/redmine-4.0.1/config/database.yml
Öffnen Sie die Datei mit Ihrem Texteditor:
nano /opt/redmine/redmine-4.0.1/config/database.yml
Suchen Sie nach production
Abschnitt und geben Sie die MySQL-Datenbank und Benutzerinformationen ein, die wir zuvor erstellt haben:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8
Wenn Sie fertig sind, speichern Sie die Datei und beenden Sie den Editor.
3. Ruby-Abhängigkeiten installieren #
Navigieren Sie zu redmine-4.0.1
Verzeichnis und installieren Sie Bundler und andere Ruby-Abhängigkeiten:
cd ~/redmine-4.0.1
gem install bundler --no-rdoc --no-ri
bundle install --without development test postgresql sqlite
4. Generieren Sie Schlüssel und migrieren Sie die Datenbank #
Führen Sie den folgenden Befehl aus, um Schlüssel zu generieren und die Datenbank zu migrieren:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
Nginx konfigurieren #
Wechseln Sie zurück zu Ihrem sudo-Benutzer:
exit
Öffnen Sie Ihren Texteditor und erstellen Sie die folgende Nginx-Serverblockdatei:
sudo nano /etc/nginx/conf.d/example.com.conf
/etc/nginx/conf.d/example.com.confpassenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;
server {
listen 80;
server_name example.com www.example.com;
root /opt/redmine/redmine-4.0.1/public;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
Vergessen Sie nicht, example.com durch Ihre Redmine-Domain zu ersetzen. Führen Sie vor dem Neustart des Nginx-Dienstes einen Test durch, um sicherzustellen, dass keine Syntaxfehler vorliegen:
sudo nginx -t
Wenn es keine Fehler gibt, sollte die Ausgabe so aussehen:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie abschließend den Nginx-Dienst neu, indem Sie Folgendes eingeben:
sudo systemctl restart nginx
Nginx mit SSL konfigurieren #
Wenn Sie kein vertrauenswürdiges SSL-Zertifikat für Ihre Domain haben, können Sie ein kostenloses SSL-Zertifikat von Let’s Encrypt generieren, indem Sie diesen Anweisungen folgen.
Sobald das Zertifikat generiert ist, bearbeiten Sie die Domain-Nginx-Konfiguration wie folgt:
sudo nano /etc/nginx/conf.d/example.com.conf
/etc/nginx/conf.d/example.compassenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby;
passenger_instance_registry_dir /var/run/passenger-instreg;
# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /opt/redmine/redmine-4.0.1/public;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
Vergessen Sie nicht, example.com durch Ihre Redmine-Domain zu ersetzen und den richtigen Pfad zu den SSL-Zertifikatsdateien festzulegen. Alle HTTP-Anforderungen werden an HTTPS umgeleitet. Zugriff auf Redmine #
Öffnen Sie Ihren Browser, geben Sie Ihre Domain ein und vorausgesetzt, die Installation ist erfolgreich, wird ein Bildschirm ähnlich dem folgenden angezeigt:
Die Standard-Anmeldeinformationen für Redmine sind:
- Benutzername:admin
- Passwort:admin
Wenn Sie sich zum ersten Mal anmelden, werden Sie aufgefordert, das Passwort wie folgt zu ändern:
Sobald Sie das Passwort geändert haben, werden Sie zur Seite des Benutzerkontos weitergeleitet.