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.

Just my blog...

Mon Di Mi Do Fr Sa So
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
eZ Publish™ copyright © 1999-2025 eZ Systems AS