StuRa:Server/Redmine

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
Achtung

Dieser Artikel ist ein exemplarischer Artikel.

Es handelt sich hierbei nicht um die Instanz Redmine als AUS vom StuRa. Dazu dienen die Artikel:

Installation

Randbedingungen

OS
FreeNAS 9.3
Paketverwaltung
freebsd-man:pkgng

Vorbereitung der Installation

pauschales Aktualisieren
pkg update; pkg upgrade -y
zsh installieren und in zsh wechseln
pkg install -y zsh; zsh

tatsächliche Installation

Lokalisation prüfen und setzen
(optional) kann sich angeschaut werden welche Werte (für die Einstellungen) gesetzt sind
locale
(optional) kann sich angeschaut werden welche Werte (für die Einstellungen) gesetzt werden können
locale -a
Setzen der Werte für deutsche Lokalisation (de_DE)
Insbesondere für die Programmiersprache Ruby soll das wichtig sein. Das gilt insbesondere, wenn Ruby selbst kompiliert wird.
export LANG=de_DE.UTF-8
export LC_ALL=de_DE.UTF-8
Installieren von benötigten Paketen
Siehe auch
Installieren von Redmine
pkg install -y redmine
Der Client für MySQL wird standardmäßig mit installiert. Demnach ist davon auszugehen, dass MySQL als Standard vorgesehen ist.
Installieren von MySQL
pkg install -y mysql56-server
Einrichten von MySQL
echo 'mysql_enable="YES"' >> /etc/rc.conf
service mysql-server start
Starting mysql.
mysql_install_db --basedir /usr/local
Das Auswahl des Verzeichnisses /usr/local ist wohl üblich, könnte aber vielleicht auch anders gewählt werden.
mysqladmin -u root password
New password: 
Confirm new password:
mysql_secure_installation
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.6.25 Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database redmine character set utf8;
Query OK, 1 row affected (0,00 sec)

mysql> create user 'redmine'@'localhost' identified by 'redmine';
Query OK, 0 rows affected (0,01 sec)

mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
Query OK, 0 rows affected (0,00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0,00 sec)

mysql> quit;
Bye
Einrichten von Redmine
echo 'redmine_enable="YES"' >> /etc/rc.conf
cd /usr/local/www/redmine
Erstellen der Datei zur Konfiguration für die Datenbank für Redmine
(optionales) Kopieren des beispielhaften Datei zur Konfiguration
cp /usr/local/www/redmine/config/database.yml.example /usr/local/www/redmine/config/database.yml
$EDITOR /usr/local/www/redmine/config/database.yml
Beispielsweise bei password muss das Passwort für die Datenbank eingetragen werden und nicht redmine.
production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: redmine
  encoding: utf8
bundle install
rake generate_session_store
Note: The rake task generate_session_store has been deprecated, please use the replacement version generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] de
====================================
Default configuration data loaded.
mkdir tmp tmp/pdf public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
cd public
cp dispatch.fcgi.example dispatch.fcgi
pw useradd redmine -d /usr/local/www/redmine
chown -R redmine:redmine /usr/local/www/redmine
installieren der Funktionalität passenger für Ruby
pkg install -y rubygem-passenger
Apache wird standardmäßig mit installiert. Demnach ist davon auszugehen, dass Apache als Standard vorgesehen ist.
Apache (hier 2.4) einrichten
echo 'apache24_enable="YES"' >> /etc/rc.conf
$EDITOR /usr/local/etc/apache24/httpd.conf

   LoadModule passenger_module /usr/local/lib/ruby/gems/2.1/gems/passenger-5.0.14/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/2.1/gems/passenger-5.0.14
   PassengerRuby /usr/local/bin/ruby21

service apache24 start
pkg install -y ap24-mod_fastcgi
[preparing module `fastcgi' in /usr/local/etc/apache24/httpd.conf]
$EDITOR /usr/local/etc/apache24/httpd.conf

LoadModule fastcgi_module     libexec/apache24/mod_fastcgi.so
$EDITOR /usr/local/etc/apache24/httpd.conf

#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
#User www
#Group www
User redmine
Group redmine

ServerName localhost:80
#ServerName www.example.com:80

#<Directory />
#    AllowOverride none
#    Require all denied
#</Directory>

#DocumentRoot "/usr/local/www/apache24/data"
DocumentRoot "/usr/local/www/redmine/public"
ErrorLog "/usr/local/www/redmine/log/redmine.example.com-error.log"
CustomLog "/usr/local/www/redmine/log/redmine.example.com-access.log" combined

<Directory "/usr/local/www/redmine/public">
        Options -MultiViews +FollowSymLinks +ExecCGI
        AllowOverride All
        Order Allow,Deny
        Allow from all
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ dispatch.fcgi
</Directory>
#
#<Directory "/usr/local/www/apache24/data">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
#    Options Indexes FollowSymLinks
#
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
#    AllowOverride None
#
    #
    # Controls who can get stuff from this server.
    #
#    Require all granted
#</Directory>

LoadModule passenger_module /usr/local/lib/ruby/gems/2.1/gems/passenger-5.0.14/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/2.1/gems/passenger-5.0.14
   PassengerRuby /usr/local/bin/ruby21
LoadModule fastcgi_module     libexec/apache24/mod_fastcgi.so

<IfModule fastcgi_module>
    AddHandler fastcgi-script .fcgi
    FastCgiConfig -idle-timeout 600 -restart -pass-header Authorization
</IfModule>

service apache24 restart
Erreichbarkeit per http
// prüfen
Testweise Anmelden mit
Mitgliedsname
admin
Kennwort
admin

alternative Komponenten für die Installation

nginx

nginx statt Apache als web server

PostgreSQL

PostgreSQL statt MySQL als database

Alternative nginx + PostgreSQL
Achtung!
Dieser Abschnitt ist nicht vollständig.
Dieser Abschnitte ist nicht getestet.
  • nginx als Alternative zu apache24
Installieren von nginx
pkg install nginx
echo 'nginx_enable="YES"' >> /etc/rc.conf
pkg install rubygem-passenger
passenger-config --root
Installieren von PostgreSQL
pkg install rubygem-pg
  • client für PostgreSQL sollte bereits installiert sein.
    pkg info | grep postgresql
postgresql93-client-9.3.9
  • pkg install postgresql93-server
Einrichten von PostgreSQL
echo 'postgresql_enable="YES"' >> /etc/rc.conf
Wenn es sich um eine Jail handelt, so muss für PostgreSQL SysV IPC erlaubt sein. Bei FreeNAS muss einfach bei der Jail ,allow.sysvipc=true ergänzend eingetragen werden.
service postgresql initdb
service postgresql start
su pgsql

createdb redminedb
exit

passwd pgsql
Exemplarisch wird nachfolgend davon ausgegangen, dass das Passwort redmine-passwd verwendet wurde.
production:
  adapter: postgresql
  database: redminedb
  host: localhost
  username: pgsql
  password: "redmine-passwd"
  encoding: utf8
echo '/usr/local/www/redmine/log/production.log 644 3 3000 * J' >> /etc/newsyslog.conf