Gleich vorab: Das Bundle lässt sich nicht mit MariaDB 10 installieren, daher habe ich Version 5.5 neu installiert.
Vor der Installation von MariaDB 5.5 müssen alle Daten im Verzeichnis /var/lib/mysql entfernt werden.
# yum install epel-release # yum install unzip patch ruby freetds-devel ImageMagick-c++-devel mariadb-devel gcc ruby-devel rubygem-json rubygem-psych libyaml
Anschließend laden wir Redmine 3.3.0 herunter und entpacken es in ein beliebiges Verzeichnis.
# wget http://www.redmine.org/releases/redmine-3.3.0.zip # unzip redmine-3.3.0.zip
Wir verschieben die Dateien in eines der für Webanwendungen vorgesehenen Verzeichnisse und erstellen die Konfiguration für die Datenbankverbindung:
# mv redmine-3.3.0 /var/www/redmine # cd /var/www/redmine/config # cp database.yml.example database.yml # vim database.yml
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "xxxxx" encoding: utf8
Wir erstellen in der Datenbank:
# mysql -p MariaDB [(none)]> CREATE DATABASE redmine CHARACTER SET utf8 COLLATE utf8_general_ci; MariaDB [(none)]> grant all privileges on redmine.* to redmine@localhost identified by 'xxxxx'; MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit
Wir kehren in das Anwendungsverzeichnis zurück und installieren bundler sowie die restlichen Gems.
# cd /var/www/redmine/
# gem install bundler # vim Gemfile gem 'unicorn' # export PATH='/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/.local/bin:/home/user/bin' # bundle install --without development test ... Bundle complete! 27 Gemfile dependencies, 46 gems now installed. ...
Weiterhin gemäß der Anleitung müssen wir einen geheimen Schlüssel generieren, die Migration durchführen und die Datenbank mit Demo-Daten füllen. Bei der Installation empfehle ich, sofort die russische Sprache auszuwählen.
# rake 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, es-PA, 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] ru ==================================== Default configuration data loaded.
Wir prüfen, ob alle Komponenten installiert wurden und ob die Anwendung funktioniert. Dazu können wir den mit dem Rails-Gem ausgelieferten Webserver Webrick verwenden.
# rails server webrick -e production -b 192.168.0.10 => Booting WEBrick => Rails 4.2.1 application starting in production on http://192.168.0.10:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2015-06-13 15:24:41] INFO WEBrick 1.3.1 [2015-06-13 15:24:41] INFO ruby 2.2.1 (2015-02-26) [x86_64-linux] [2015-06-13 15:24:41] INFO WEBrick::HTTPServer#start: pid=27426 port=3000
Man kann die angegebene Adresse aufrufen und die Hauptseite von Redmine sehen.
Anschließend erstellen wir die Konfiguration für das neue Gem.
# vim config/unicorn.rb
worker_processes 1 # Количество процессов: master + 1 дочерний
working_directory "/var/www/redmine/" # Домашний каталог redmine
preload_app true
timeout 30
listen "/var/www/redmine/tmp/sockets/unicorn.sock", :backlog => 64 #путь к unix сокету с которым будет работать nginx
pid "/var/www/redmine/tmp/pids/unicorn.pid" # Место хранения PID-файла
stderr_path "/war/www/redmine/log/unicorn.stderr.log" # файл логов для ошибок
stdout_path "/war/www/redmine/log/unicorn.stdout.log" # файл логов для вывода
before_fork do |server, worker|
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
Und versuchen, es zu starten.
# bundle exec unicorn_rails -E production -c config/unicorn.rb -D # ps aux | grep unicorn
Nun müssen wir Unicorn mit nginx verbinden:
# vim /etc/nginx/conf.d/redmine.conf
upstream redmine {
server unix:/var/www/redmine/tmp/sockets/unicorn.sock;
}
server {
listen 80;
server_name redmine.domain.com.ua;
client_max_body_size 200m;
root /var/www/redmine/;
location / {
try_files $uri @ruby;
}
location ~* \.(jpg|gif|png|js|css|ico)$ {
root /var/www/redmine/public;
expires 7d;
error_page 404 502 504 = @ruby;
}
location @ruby {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_read_timeout 300;
proxy_pass http://redmine; #upstream redmine
}
}
Wir prüfen die Konfiguration und wenden die Regeln an.
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # nginx -s reload
Wir rufen http://redmine.domain.com.ua auf.
