Okamžitě k problémům: bundle se neinstaluje s MariaDB 10, přeinstaloval jsem 5.5
Před instalací MariaDB 5.5 je třeba smazat vše z /var/lib/mysql
# yum install epel-release # yum install unzip patch ruby freetds-devel ImageMagick-c++-devel mariadb-devel gcc ruby-devel rubygem-json rubygem-psych libyaml
Poté stáhneme Redmine 3.3.0 a rozbalíme ho do vhodné složky.
# wget http://www.redmine.org/releases/redmine-3.3.0.zip # unzip redmine-3.3.0.zip
Přesuneme soubory do jednoho z určených adresářů pro webové aplikace a vytvoříme konfiguraci pro připojení k databázi:
# 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
Vytvoříme v databázi:
# 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
Vrátíme se do adresáře s aplikací a nainstalujeme bundler a ostatní gemy.
# 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. ...
Dále podle návodu je třeba vygenerovat tajný klíč, provést migraci a naplnit databázi ukázkovými daty. Při instalaci doporučuji rovnou vybrat ruský jazyk
# 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.
Zkontrolujeme, zda se všechny komponenty nainstalovaly a zda bude aplikace fungovat. K tomu můžeme použít webový server webrick, který je součástí gemu rails.
# 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
Můžeme se připojit na uvedenou adresu a uvidíme hlavní stránku Redmine.
Dále vytvoření konfigurace pro nový 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
A zkusíme spustit
# bundle exec unicorn_rails -E production -c config/unicorn.rb -D # ps aux | grep unicorn
Nyní je třeba spřátelit unicorn s nginx:
# 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
}
}
Zkontrolujeme konfiguraci a aplikujeme pravidla
# 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
Zadáme http://redmine.domain.com.ua
