Temat: instalacja Redmine--->?
Witam,
ja wdrażam to w następujący sposób:
instaluje ruby w wersji Enterprise, instalacja składa się z 2 magicznych komend:
http://www.rubyenterpriseedition.com/download.html
problemów być nie powinno żadnych, ja instaluje zawsze w /opt/rubyee , pozniej /opt/rubyee/bin dodaje do zmiennej path, żeby przesłonić zainstalowaną wersję ruby. (przed instalacja wersji enterprise, wymagane jest posiadanie interpretera ruby)
następnie doinstalowuje "unicorna" (szybki i czadowy serwer http)
gem install unicorn
następnie
http://www.redmine.org/wiki/redmine/RedmineInstall dość dokładny opis, nie ma w nim żadnych nieścisłości, całość sprowadza się do wydania 4 komend.
redmine zainstalowany np w /opt/redmine
Dalej robimy plik /opt/redmine/app.ru (rackowy plik do startowania aplikacji)
-- ciach
worker_processes 4
working_directory "/opt/redmine"
listen 9292, :tcp_nopush => true
timeout 10
pid "/tmp/redmine.pid"
preload_app true
GC.respond_to?(:copy_on_write_friendly=) and
GC.copy_on_write_friendly = true
before_fork do |server, worker|
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
if old_pid != server.pid
begin
sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
Process.kill(sig, File.read(old_pid).to_i)
rescue Errno::ENOENT, Errno::ESRCH
end
end
sleep 1
end
after_fork do |server, worker|
server.listen(addr, :tries => -1, :delay => 5, :tcp_nopush => true)
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
-- ciach
aplikacje startujemy za pomocą polecenia:
unicorn_rails -D -E production -c /opt/redmine/app.ru
dostajemy 4 procesy redmina pracujące na portach od 9293 do 9296 z załadowaną do pamięci aplikacją.
ostatnim krokiem jest zrobienie jakiegoś proxy na porcie powiedzmy 80, które bedzie load balancować requesty do każdej z odpalonych instancji.
dla przykładu w lighttpd wyglądać to będzie tak:
--ciach
$HTTP["host"] == "redmine.domena.pl" {
proxy.server = ( "/" => ( ( "host" => "127.0.0.1", "port" => 9293 ),
( "host" => "127.0.0.1", "port" => 9294 ),
( "host" => "127.0.0.1", "port" => 9295 ),
( "host" => "127.0.0.1", "port" => 9296 ) ) )
}
--ciach
Ten sposób deployu jest bardzo efektywny i sprawdzony produkcyjnie. jeśli potrzebujesz więcej informacji, to pisz na prv.