Ubuntu 8.10 Server版にRedmineをインストール
DBはsqlite
rubyはApache+passengerで動かす
rubyとRoRのインストールは以下
http://d.hatena.ne.jp/devillikeaangel/20090505/1241478623
sqlite3のインストール
sudo aptitude install ruby1.8-dev sudo aptitude install libsqlite-dev sudo aptitude install sqlite3 sudo aptitude install libsqlite3-ruby sudo aptitude install libsqlite3-dev sudo gem1.8 install sqlite3-ruby
ここで以下のエラーが発生
Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension./usr/bin/ruby1.8 extconf.rb
checking for fdatasync() in -lrt... yes
checking for sqlite3.h... yes
checking for sqlite3_open() in -lsqlite3... yes
creating Makefilemake
sh: make: not found
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
makeがインストールされていないのでインストール
UbuntuのServer版は、デフォルトでインストールされていないらしい。
sudo aptitude install make
再度インストール
sudo gem1.8 install sqlite3-ruby
ailsのスクリプトを実行する際にopensslが必要になってくるので、libopenssl-rubyパッケージをインストール
sudo aptitude install libopenssl-ruby
redmineのチェックアウト
cd /home/rails/ sudo svn co http://redmine.rubyforge.org/svn/branches/0.8-stable/ redmine
DB用設定ファイルの作成と設定
cd redmine/config sudo cp database.yml.example database.yml
productionの部分を下記のように設定
production: adapter: sqlite3 dbfile: db/redmine.db timeout: 5000
初期設定
sudo rake db:migrate RAILS_ENV=production
sudo rake db:migrate RAILS_ENV=production
(in /home/rails/redmine)
Missing the Rails 2.1.2 gem. Please `gem install -v=2.1.2 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.
# 2.1.2のRailsを入れるか
# 入っているバージョンをしようするためにconfig/environment.rbを修正するか
# 最新バージョンを使用するためにRAILS_GEM_VERSIONをコメントアウトするか
どれかしろっていってる
現在のバージョンを確認
rails -v
2.3.2だった
2の方向で進める
config/environment.rbを編集
sudo cp environment.rb environment.rb_save sudo vim environment.rb
#RAILS_GEM_VERSIONの部分を2.1.2から2.3.2に変更
ENV['RAILS_ENV'] ||= 'production'
のコメントアウトを解除
再度下記のコマンドを実行
sudo rake db:migrate RAILS_ENV=production
以下のエラーが出てる
sudo rake db:migrate RAILS_ENV=production
(in /home/rails/redmine)
rake aborted!
uninitialized constant ActionController::Session::PStore(See full trace by running task with --trace)
traceオプションをつければ詳細なログが分かるようなので、つけて実行
do rake db:migrate RAILS_ENV=production --trace
(in /home/rails/redmine)Invoke db:migrate (first_time)
Invoke environment (first_time)
Execute environment
rake aborted!
uninitialized constant ActionController::Session::PStore
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:440:in `load_missing_constant'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:80:in `const_missing'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session_management.rb:19:in `const_get'
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session_management.rb:19:in `session_store='
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:580:in `send'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:580:in `initialize_framework_settings'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:579:in `each'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:579:in `initialize_framework_settings'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:576:in `each'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:576:in `initialize_framework_settings'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:155:in `process'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `send'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `run'
/home/rails/redmine/config/environment.rb:20
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/tasks/misc.rake:4
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:617:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:617:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:612:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:612:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:578:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:571:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:588:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:585:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:585:in `invoke_prerequisites'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:577:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:571:in `invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:564:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2027:in `invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1999:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1977:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1974:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.4/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
な感じでスタックトレースが表示されるが、意味が全く分からない。
ここでおおはまり。進まない。
結局、redmineのバージョンに対応したRailsが必要だった。
下記のページにしっかり書いてあった。
http://redmine.jp/guide/RedmineInstall/
redmineの0.8をチェックアウトしたので、Railsは2.1.2が必要だった。
なので、2.1.2をいれる
sudo gem1.8 install rails -v=2.1.2
意気込んで、db:migteを実行。同じ結果。
railsのバージョンを確かめる
rails -version
...2.3.2
2.1.2を入れたのに...
2.3.2をアンインストールする。
sudo gem1.8 uninstal rails
ここで、2.3.2と2.1.2など削除するバージョンが選べるので、2.3.2のほうを削除
編集したconfig/environment.rbをもとに戻す
2.3.2としたところを2.1.2にする
再度実行。今度はOK
初期データのロード
sudo rake load_default_data RAILS_ENV="production"
言語の選択が出てくるのでjaを選択
何やらやり直せ的なメッセージが出てた。
メッセージは拾い忘れてしまった。
sudo rake redmine:load_default_data RAILS_ENV="production"
とする必要があるらしい。
初期設定をやり直し。
DBファイルを削除
sudo rm -f db/redmine.db
もう一度実行
sudo rake db:migrate RAILS_ENV=production sudo rake redmine:load_default_data RAILS_ENV="production"
ここまできて、passengerというものを知った。
ruby(RoR?)をapacheで動かすためのものらしい。
んで、こいつをインストールする
sudo gem1.8 install passenger
次にpassengerを利用するためにapacheに足りないモジュールをインストールする
最後に保存しておくものが表示されるので、ここからは慎重にいったほうがいい。
TERA TERMなどを使用しているならログを取っておくべき
sudo passenger-install-apache2-module
途中でいろいろ、足りないものを教えてくれる
* To install Apache Portable Runtime Utility (APU) development headers:
Please download it from http://httpd.apache.org/
(APR Utility is an integrated part of Apache.)
というのが出ていたら、
sudo aptitude install pache2-threaded-dev
で入るっぽい。
足りないものをインストールしたら再度実行
sudo passenger-install-apache2-module
途中で
Please edit your Apache configuration file, and add these lines:
と出ているので、その下の3行を保存しておく。
これは各環境でことなるので、必ずメモしておく。
rails.loadというファイルを作成して1行目を保存する
sudo vim /etc/apache2/mods-available/rails.load
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.2/ext/apache2/mod_passenger.so
rails.confというファイルを作成して2、3行目を保存する
sudo vim /etc/apache2/mods-available/rails.conf
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.2
PassengerRuby /usr/bin/ruby1.8
シンボリックリンクを張る
あとから考えたらApacheのコマンドで行けるんじゃないかと思ったけど、
検証はしていない
sudo ln -s /etc/apache2/mods-available/rails.load /etc/apache2/mods-enabled/ sudo ln -s /etc/apache2/mods-available/rails.conf /etc/apache2/mods-enabled/
Apache再起動
sudo /etc/init.d/apache2 restart
実行してみたら以下のエラーログが表示されていた。
[Sat May 02 17:37:48 2009] [alert] [client 192.168.2.99] /home/rails/redmine/public/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
Apacheにrewriteエンジンが読み込まれていなかった。
sudo a2enmod rewrite
[Sat May 02 17:42:38 2009] [notice] caught SIGTERM, shutting down
[Sat May 02 17:42:40 2009] [notice] Apache/2.2.9 (Ubuntu) DAV/2 SVN/1.5.1 PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch Phusion_Passenger/2.2.2 configured -- resuming normal operations
Error during failsafe response: closed stream
(originally Permission denied - /home/rails/redmine/tmp/sessions//ruby_sess.3f6550b7bcfe3ff2)
[Sat May 02 17:42:54 2009] [error] [client 192.168.2.99] Premature end of script headers:
[ pid=24220 file=ext/apache2/Hooks.cpp:547 time=2009-05-02 17:42:54.171 ]:
Backend process 24231 did not return a valid HTTP response. It returned no data.
パーミッションがエラーかな。
とりあえず、以下で対処
sudo chmod -R 777 /home/rails/redmine sudo chown -R www-data.www-data /home/rails/redmine
ここまで来て、とりあえず、RedmineのTop画面が表示された
次にメールの設定
cd /home/rails/redmine/config sudo cp email.yml.example email.yml sudo vim email.yml
productionの部分を以下のように編集
production: delivery_method: :smtp smtp_settings: address: smtp.example.com port: 25 domain: example.net #authentication: :login #user_name: redmine@example.net #password: redmine
sudo /etc/init.d/apache2 restart
ごちゃごちゃやっているうちにInternal Server Errorがでるようになった。
/!\ FAILSAFE /!\ Sat May 02 19:32:23 +0900 2009
Status: 500 Internal Server Error
file /home/rails/redmine/tmp/sessions//ruby_sess.b88f4cfaf4a30640 not readable
Processing ApplicationController#index (for 192.168.2.99 at 2009-05-05 03:44:28) [GET]
Session ID: 4056467013abc0ee5701223e8f6a3c4b
Parameters: {}
なんかセッションが読み込めなくなっている?
とりあえず、セッション、ログ、tmpなど、消して大丈夫そうなものは一度すべて削除
(後からみたら、このあたりを削除するコマンドがあるらしかったが、知らなかったので手動で削除した)
ここからは別環境で試したときのメモ
はまった時に適当に入れていたから、このあたりは必要かどうかわからない。
Linuxでsqliteを動かすためにはswigが必要らしい
sudo aptitude install swig sudo gem1.8 install sqlite3-ruby
db:migrateでエラー
sudo rake db:migrate RAILS_ENV="production"
(in /home/rails/redmine)
rake aborted!
no such file to load -- net/https(See full trace by running task with --trace)
以下が必要らしい
sudo aptitude install libopenssl-ruby
ページが見つかりません。エラー
ActionController::RoutingError (No route matches "/index.html" with {:method=>:get}):
...略...
Rendering /var/rails/redmine/public/404.html (404 Not Found)
passengerで動かすので、Rewriteはいらない。redmine/public/.htaccessにある以下の3行をコメントアウトする
#RewriteRule ^$ index.html [QSA] #RewriteRule ^([^.]+)$ $1.html [QSA] #RewriteCond %{REQUEST_FILENAME} !-f
参考にさせていただいたサイト
http://redmine.jp/tech_note/install/
http://blog.cheki.net/archives/tag/redmine
http://d.hatena.ne.jp/kamataro/20081026/1225018713