Instalacja Redmine with Apache, Ruby Enterprise, Phusion Passenger

Posted by Jerzy Seweryn on
[code lang="shell"]
wget http://rubyforge.org/frs/download.php/57098/ruby-enterprise_1.8.6-20090520_i386.deb
wget http://rubyforge.org/frs/download.php/56909/redmine-0.8.4.tar.gz

sudo apt-get install apache
sudo apt-get install build-essential apache2-prefork-dev libapr1-dev

sudo dpkg -i ruby-enterprise_1.8.6-20090520_i386.deb

sudo -i
export PATH=/opt/ruby-enterprise/bin:$PATH
passenger-install-apache2-module
[/code]
Tworzymy plik /etc/apache2/mods-available/passenger.load o treści:
[code lang="shell"]
LoadModule passenger_module /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so
[/code]
oraz /etc/apache2/mods-available/passenger.conf o treści:
[code lang="shell"]
PassengerRoot /opt/ruby-enterprise/lib/ruby/gems/1.8/gems/passenger-2.2.2
PassengerRuby /opt/ruby-enterprise/bin/ruby
[/code]
a potem aktywujemy stworzone moduły przez
[code lang="shell"]
sudo a2enmod passenger
[code]
Instalacja redmine
[code lang="shell"]
$ cd /apps
$ sudo tar xzvf ~/redmine-0.8.4.tar.gz
$ sudo ln -s redmine-0.8.4 redmine
$ sudo chown -R www-ruby.www-ruby redmine/public redmine/log redmine/config
[/code]
Tworzymy bazę danych i jej właściciela
[code lang="shell"]
$ sudo -u postgres createuser --no-superuser --no-createdb --no-createrole --pwprompt redmine $ sudo -u postgres createdb --encoding utf-8 --owner redmine redmine "Redmine"
[/code]
Weryfikujemy poprawność składni dat:
[code lang="shell"]
$ psql --user redmine redmine redmine=> SHOW DATESTYLE;
[/code]
i jeśli wyjdzie coś innego niż ISO, MDY, robimy:
[code lang="shell"]
redmine=> ALTER DATABASE "redmine" SET datestyle="ISO,MDY";
[/code]
W katalogu redmine/config edytujemy database.yml, które może wyglądać tak:
[code lang="shell"]
production: adapter: postgresql database: redmine host: localhost username: redmine password: hasloPodanePrzyCreateUser encoding: utf8
[code]
a także email.yml:
[code lang="shell"]
production: delivery_method: :smtp smtp_settings: address: firmowy.serwer.smtp port: 25 domain: nasza.firma.pl # authentication: :login # user_name: user_smtp # password: haslo_smtp
[/code]
Stworzenie lub upgrade bazy danych
Po prostu
[code lang="shell"]
$ cd /apps/redmine $ rake db:migrate RAILS_ENV="production"
[/code]
Jeżeli jest to nowa instalacja, odpalamy także:
[code lang="shell"]
$ rake redmine:load_default_data RAILS_ENV="production"
[/code]
Wersje Redmine nowsze niż 0.8.* (tj. w tej chwili trunk) wymagają też
[code lang="shell"]
$ rake config/initializers/session_store.rb
[/code]
Standardowo tworzymy /etc/apache2/sites-available/redmine, np.
[code lang="shell"]
NameVirtualHost *:9090

ServerName nasz.serwer:9090
ServerAdmin "[email protected]"
DocumentRoot /apps/redmine/public

ErrorLog /var/log/apache2/redmine-error.log
LogLevel info

[/code]
po czym aktywujemy wirtualny serwer przez
[code lang="shell"]
$ sudo a2ensite redmine
[/code]
Musimy też poprawić lub usunąć plik redmine/public/.htaccess! W domyślnej formie odpowiada on uruchamianiu aplikacji przez cgi lub FastCGI, działaniu w Phusion Passengerze znajdujące się tam dyrektywy Rewrite najzwyczajniej szkodzą (błędy 404 przy próbie używania aplikacji). Jeśli nie chcemy usuwać .htaccess, trzeba przynajmniej zakomentować - jak niżej - regułki
[code lang="shell"]
#RewriteRule ^$ index [QSA] #RewriteRule ^([^.]+)$ $1.html [QSA]
[/code]
Ustawienia dla wirtualnych hostów aby project.wlasnaDomena.com.pl redmine.wlasnaDomena.com.pl były skierowne na ip:
[code lang="shell"]
NameVirtualHost 192.168.4.2
<virtualhost>
ServerName remine.domenaA.com
ServerAdmin "[email protected]"
DocumentRoot /home/login/apps/redmine/public

ErrorLog /var/log/apache2/redmine-error.log
LogLevel info
</virtualhost>
<virtualhost>
DocumentRoot /home/login/apps/proj
ServerName myproj.domenaB.com
</virtualhost>
[/code]
[code lang="shell"]
$ sudo invoke-rc.d apache2 restart
[/code]

1 komentarz:

Restless pisze...

Dzięki za ten tekścik o konieczności usunięcia redirectów z .htaccess, w przypadku korzystania z Phusion Passengera! Te 404-ki to była ostatnia przeszkoda na mojej drodze do uruchomienia Redmine :D