読者です 読者をやめる 読者になる 読者になる

雑記帳

ソフトを中心に雑記を書いてる割とすぐ転職したい28歳。

RedmineをLinuxMintに入れる作業をやってみた。

面倒だからとBitnamiのものばかり使ってたので、今更だけど素でインストールを試みてみました。

何度かハマりましたが、基本的にはチュートリアル通りでいけました。
あとここも見ながらやったのでごっちゃです。
最後の方で分かりましたが、チュートリアルにだけ従った方が良さそうです。
移し間違いとかあるかもなので注意。
(どうやったら巷のブログのように間違えずに書けるのでしょうかね?)

環境

やってみた

1.とりあえずパッケージを持ってくる
$ cd ~/
$ mkdir app
$ cd app/redmine
$ wget http://www.redmine.org/releases/redmine-2.4.3.tar.gz
$ tar zxvf redmine-2.4.3.tar.gz
$ cd redmine-2.4.3
2. MySQLのユーザとかを設定する
$ mysql -u root
mysql> create database redmine character set utf8;
mysql> create user 'redmine@localhost' identified by 'pass';
mysql> exit

3.コンフィグファイルをコピー

何やらひな形があるからそれを使えとのこと。

$ cp config\database.yml.example config\database.yml
4. アプリケーションのルートPATHを設定

なんか使うか?

$ export RAILS_ROOT="~/app/redmine/redmine-2.4.3"
5.bundlerをインストール
$ gem install bundler

ついでにこれもやっとけと書いてあるけど、rmagickあたり怒られるので推奨しない。

$ bundle install --without development test

rmagickのインストールを回避するようになるこっちを実行すれば多少マシ。

$ bundle install --without development test rmagick
6. ランダムキーを生成するらしい

何に使うんだ?

$ rake generate_secret_token
7.DBの構成を生成するっぽい

productionモードで何やら生成する様子。 以下のコマンドを実行。

$ rake db:migrate RAILS_ENV=production

なんか怒られた。

rake aborted!
Access denied for user 'redmine'@'localhost' to database 'redmine'
/home/xxx/app/redmine/redmine-2.4.3/app/models/issue_relation.rb:73:in `<class:IssueRelation>'
/home/xxx/app/redmine/redmine-2.4.3/app/models/issue_relation.rb:18:in `<top (required)>'
/home/xxx/app/redmine/redmine-2.4.3/lib/redmine/helpers/gantt.rb:28:in `<class:Gantt>'
/home/xxx/app/redmine/redmine-2.4.3/lib/redmine/helpers/gantt.rb:21:in `<module:Helpers>'
/home/xxx/app/redmine/redmine-2.4.3/lib/redmine/helpers/gantt.rb:19:in `<module:Redmine>'
/home/xxx/app/redmine/redmine-2.4.3/lib/redmine/helpers/gantt.rb:18:in `<top (required)>'
/home/xxx/app/redmine/redmine-2.4.3/lib/redmine.rb:51:in `<top (required)>'
/home/xxx/app/redmine/redmine-2.4.3/config/initializers/30-redmine.rb:4:in `<top (required)>'
/home/xxx/app/redmine/redmine-2.4.3/config/environment.rb:14:in `<top (required)>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

設定ファイルを書き間違えていた様子なので中身を合わせる。emacsとかで書き換える必要がある。

$ less config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "pass"
  encoding: utf8

で、DBのユーザ権限も設定する。

$ mysql -u root
mysql> create database redmine character set utf8;
mysql> grant all on redmine.* to redmine@localhost identified by "pass";
mysql> exit

もう一回。

$ rake db:migrate RAILS_ENV=production
==  Setup: migrating ==========================================================
-- create_table("attachments", {:force=>true})
   -> 0.1013s
-- create_table("auth_sources", {:force=>true})
   -> 0.0837s
-- create_table("custom_fields", {:force=>true})
   -> 0.0830s
-- create_table("custom_fields_projects", {:id=>false, :force=>true})
   -> 0.0834s

 〜〜〜 なんか色々なログ 〜〜〜

==  AddRepositoriesCreatedOn: migrating =======================================
-- add_column(:repositories, :created_on, :timestamp)
   -> 0.1718s
==  AddRepositoriesCreatedOn: migrated (0.1720s) ==============================

できた。
そろそろ飽きてきたぞ。

8.初期設定を実行。

私は日本人なのでjaと入れた。
金星人ではありません。(荒川なアニメの1期を見ながら作業中)

$ RAILS_ENV=production rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja
====================================
Default configuration data loaded.
9.ファイルシステムのアクセス許可設定
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets
10.アプリを起動

ようやく起動できる様子。

ruby script/rails server webrick -e production
11.アクセス

ローカルに立てているならwebブラウザでhttp://localhost:3000にアクセスすればめでたしめでたし。
右上のログインを押してユーザ名とパスワードにadminと入れればログインできる。

感想

思ってたよりも簡単にインストールできました。
rmagickあたりで一度挫けたけど、その前にgemやらrailsが何故かインストール出来なかった方問題だったのでまあいいや。
インストールできても、webrickがかなり遅くて実際に使うにはかなりイライラするので、別のwebサーバで実行した方が良さそうな感じ。
世の中ではnginx/Passengerなものが多い様子なのでそのうちやってみます。
本来の目的はプラグインを書くことなので、そちらもそのうち書くと思います。
ではでは