Redmine - jak zacząć
Ja zacząłem od ściągnięcia źródeł Redmine w bieżącej wersji i czytania opisu instalacji na CentOS.
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
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:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.18 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:
wget http://rubyforge.org/frs/download.php/75910/redmine-1.3.2.tar.gz
, na wszelki wypadek najświeższą wersję też:
wget http://rubyforge.org/frs/download.php/76589/redmine-2.1.4.tar.gz
i dalej wg. HOWTO rozpakowałem do /var/www:
cd /var/www tar -xzf ~/redmine-1.3.2.tar.gz ln -s redmine-1.3.2 redmine
i zrobiłem link, żeby był w standardowej ścieżce i łatwo było zrobić aktualizację.
Założyłem bazę i użytkownika:
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
potem wpisałem do nowego pliku /var/www/redmine/Gemfile:
# file: /var/www/redmine/Gemfile source "http://rubygems.org" gem "rake", "0.8.3" gem "rack", "1.1.0" gem "i18n", "0.4.2" gem "rubytree", "0.5.2", :require => "tree" gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay gem "mysql" gem "coderay", "~>0.9.7"
i uruchomiłem:
bundle install
ale zwraca błąd:
Gem::InstallError: hoe requires RubyGems version >= 1.4. Try 'gem update --system' to update RubyGems itself. An error occurred while installing hoe (3.3.1), and Bundler cannot continue. Make sure that `gem install hoe -v '3.3.1'` succeeds before bundling.
no to zgodnie z sugestią uruchomiłem
gem update --system
chwile to trwało. Teraz wysypał się na:
Installing mysql (2.9.0) with native extensions
no to doinstalowałem
yum install mysql-devel
i teraz poszło.
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ć):.
RAILS_ENV=production bundle exec rake generate_session_store
i jeszcze raz
RAILS_ENV=production bundle exec 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 bundle exec rake redmine:load_default_data
Testowe uruchomienie.
Domyślnie wbudowany serwer działa na porcie 3000. Trzeba go otworzyć na firewall'u:
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
Sam serwer uruchamia się tak:
cd /var/www/redmine ruby script/server webrick -e production
można się zalogować domyślnym użytkownikiem admin z hasłem admin.
Konfiguracja Apache.
Pozamieniałem nazwy skryptów CGI jak kazali:
cd /var/www/redmine/public cp dispatch.cgi.example dispatch.cgi cp dispatch.fcgi.example dispatch.fcgi cp dispatch.rb.example dispatch.rb
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ą:
<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>
skopiowałem pliki jak kazali (niepotrzebnie):
cd /var/www/redmine/public cp htaccess.fcgi.example .htaccess
i już było lepiej bo pojawił się w przeglądarce komunikat błędu
Application error Rails application failed to start properly
a w logu było
Rails Error: Unable to access log file. Please ensure that \ /var/www/redmine-1.3.2/log/production.log exists and is \ chmod 0666. The log level has been raised to WARN and \ the output directed to STDERR until the problem is fixed.
no to zmieniłem uprawnienia do plików
cd /var/www chown -R apache:apache redmine-1.3.2/
jak widać zmieniam na katalogu gdzie są pliki, a nie na linku symbolicznym.
Potem wycofałem się z uruchamiania przez FastCGI, nie po to instalowałem passenger'a - musiałem skasować plik .htaccess:
cd /var/www/redmine rm public/.htaccess
ale 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.