Redmine - jak zacząć - odświeżone
Opis instalacji Redmine 2.3 na Cent OS 6.4 - zaktualizowana wersja wcześniejszego opisu.
Podstawy
Redmine do działania wymaga serwera Apache i bazy danych (np. MySQL) oraz najczęściej jest używany wraz z jakimś systemem kontroli wersji, zakładam, że to SVN. Na świeżym systemie trzeba doinstalować pakiety:
yum install httpd mysql-server subversion
Subversion (lub Mercurial) będzie także potrzeby do ściągnięcia źródeł Redmine'a.
Ruby
Wbrew temu co napisali zainstalowałem ruby z paczki (wersja prawie ta sama 1.8.7.358 a 1.8.7.352):
yum install ruby
doinstalowały się zależności: compat-readline5 i ruby-libs.
Następny etap to instalacja rubygems w wersji 1.4.2. W paczce jest 1.3.7, ale dokumentacja ostrzega tylko przed wersją 1.5, no to instaluję
yum install rubygems
doinstalowały się zależności: ruby-irb i ruby-rdoc.
Teraz zaczyna się magia. Instaluję jakieś cuda nie wiadomo gdzie i jak. Łatwiej by było z pakietów, ale przykład nie chce się zainstalować - brakuje libev.
gem install passenger
oczywiście błąd:
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h
pewnie brakuje ruby-devel, i make , i gcc. Zainstalowałem:
yum install ruby-devel make gcc
teraz już poszło - nie wymagało gcc-c++.
Teraz powinno być
passenger-install-apache2-module
ale kreator grzecznie informuje, że pakiety devel są potrzebne, więc instaluję:
yum install gcc-c++ curl-devel openssl-devel zlib-devel \ httpd-devel apr-devel apr-util-devel
instalacja pakietów i instalacja (kompilacja) modułu chwilę trwa. Kreator pokazuje co trzeba dodać do konfiguracji serwera apache (będzie potrzebne później):
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19 PassengerRuby /usr/bin/ruby
i jak podłączyć przykładową aplikację w ruby:
Suppose you have a Rails application in /somewhere. Add a virtual host to your
Apache configuration file and set its DocumentRoot to /somewhere/public:
<VirtualHost *:80> ServerName www.yourhost.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /somewhere/public <Directory /somewhere/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost>
And that's it! You may also want to check the Users Guide for security and optimization tips, troubleshooting and other useful information:
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.18/doc/Users guide Apache.html
Instalacja i wstępna konfiguracja
Teraz ściągnąłem jak kazali:
cd /var/www svn co http://svn.redmine.org/redmine/branches/2.3-stable redmine-2.3 ln -s redmine-2.3 redmine
i zrobiłem link, żeby był w standardowej ścieżce i łatwo było zrobić aktualizację.
Dygresja: Do działania svn z serwerami pośredniczącymi (proxy) trzeba zmienić konfigurację (jest w pliku np.: ~/.subversion/servers). Ustawienie zmiennej http_proxy nic nie da.
Założyłem bazę i użytkownika (tu opis dla MySQL):
create database redmine character set utf8; create user 'redmine'@'localhost' identified by 'jakieshaslo'; grant all privileges on redmine.* to 'redmine'@'localhost';
Teraz dalej (oczywiście zamiast nano używam mcedit):
cd /var/www/redmine/config cp database.yml.example database.yml mcedit database.yml
zmieniłem tylko hasło w części production (i to spowodowało błąd później, najlepiej od razu ustawić też nazwę użytkownika).
Znowu magia:
cd /var/www/redmine gem install bundler
Zainstalował się bundler-1.3.4. Plik /var/www/redmine/Gemfile już był (automagicznie) więc uruchomiłem:
bundle install
ale zwraca błąd:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for libxml/parser.h... no ----- libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
no to zgodnie z sugestią uruchomiłem (potem były jeszcze inne)
yum install libxml2-devel libxslt-devel mysql-devel
chwile to trwało. Teraz wysypał się na:
Installing rmagick (2.13.2) Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for Ruby version >= 1.8.5... yes checking for gcc... yes checking for Magick-config... no Can't install RMagick 2.13.2. Can't find Magick-config in /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
no to doinstalowałem oczywiście
yum install ImageMagick-devel
i teraz poszło
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Konfiguracja właściwego Redmine'a
W pliku
/var/www/redmine/config/environment.rb
odkomentowałem linię
ENV['RAILS_ENV'] ||= 'production'
Magia (już się zaczynam przyzwyczajać):.
rake generate_secret_token
i jeszcze raz
RAILS_ENV=production rake db:migrate
tym razem pokazało błąd
rake aborted! Access denied for user 'root'@'localhost' (using password: YES) (See full trace by running task with --trace)
jak się okazało to błąd połączenia do bazy MySQL, poprawiłem nazwę użytkownika w pliku
config/database.yml
, bo przecież wcześniej zmieniłem tylko hasło ;-).
Pominąłem ładowanie domyślnych danych, bo było opcjonalne, ale i tak je załadowałem przy pierwszym zalogowaniu się. Można uruchomić:
RAILS_ENV=production rake redmine:load_default_data
Konfiguracja Apache.
Pozamieniałem nazwy skryptów CGI jak kazali:
cd /var/www/redmine/public cp dispatch.fcgi.example dispatch.fcgi
nadal nic nie działa.
Teraz wg. HowTo configure Apache to run Redmine. Najpierw włączyłem obsługę wielu domen dopisując
NameVirtualHost *:80
w pliku /etc/httpd/conf/httpd.conf. Utworzyłem plik /etc/httpd/conf.d/redmine.conf z zawartością (na podstawie wzoru podanego przez instalator wcześniej):
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19 PassengerRuby /usr/bin/ruby <VirtualHost *:80> ServerName redmine.mojadomena.pl ServerAdmin ja@mojadomena.pl DocumentRoot /var/www/redmine/public/ ErrorLog logs/redmine_error_log RailsEnv production <Directory /var/www/redmine/public/> Options Indexes ExecCGI FollowSymLinks Order allow,deny Allow from all AllowOverride all </Directory> </VirtualHost>
zmieniłem uprawnienia do plików
cd /var/www chown -R apache:apache redmine-2.3
jak widać zmieniam na katalogu gdzie są pliki, a nie na linku symbolicznym.
ale zamiast aplikacji wyświetlała mi się zawartość katalogu. Wskazówkę znalazłem w logach apache'a:
[error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog (/usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/agents/PassengerWatchdog): Permission denied (13)
oraz /var/log/audit/audit.log:
type=SYSCALL msg=audit(1364567881.023:309): arch=c000003e syscall=0 success=no exit=-13 a0=b a1=7fbc8a040000 a2=400 a3=22 items=0 ppid=1 pid=14356 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4 comm="PassengerHelper" exe="/usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/agents/apache2/PassengerHelperAgent" subj=unconfined_u:system_r:httpd_t:s0 key=(null)
zamiast wyłączyć SELinux lepiej go skonfigurować:
setenforce Permissive chcon -t httpd_t /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/agents/apache2/PassengerHelperAgent chcon -t httpd_t /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/agents/PassengerWatchdog setenforce Enforcing
Nadal nie chce działać - zamiast aplikacji wyświetlała mi się zawartość katalogu. Wskazówkę znalazłem w logach apache'a:
ERROR: Cannot create directory '/var/log/passenger-analytics': Permission denied (13)
rozwiązanie było proste:
mkdir /var/log/passenger-analytics
W końcu działa!
Zamiast puenty
Sprawdziłem magiczne instalatory:
which gem yum provides /usr/bin/gem
plik gem jest w pakiecie rubygems (rubygems-1.3.7-1.el6.noarch) i instaluje pakiety w
/usr/lib/ruby/gems/1.8/gems
teraz już nie jest tak magicznie.
Kommentare
Bitte melden Sie sich Logan oder registrieren Sie sich um kommentieren zu können.