Installation of Redmine 2

Installation of Redmineの続きです。

Redmineでもデータベースを使用しますが、今回はMySQLを使用したいと思います。
Redmineを展開したディレクトリの中にconfig/database.yml.exambleというファイルがあるので、それを「database.yml」にリネームして使用することにします。
まずはDatabaseを作成します。
MySQLのクライアントを起動して、「redmine」という名前のデータベースを作成します。

mysql> create database redmine;
Query OK, 1 row affected (0.04 sec)

ついでに、じゃないですけど、redmineを使用するユーザーを作成します。
“set password”でちゃんとしたパスワードを設定しましょう。(例ではnewpasswordにしています。あくまで例です。)

mysql> grant create,select,insert,delete,update on redmine.* to redmine@localhost identified by 'password';
Query OK, 0 rows affected (0.08 sec)
 
mysql> set password for 'redmine'@'localhost' = password('newpassword');
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)

作成したユーザーでログインしてみます。

mysql> \q
Bye
[root@blackhole config]# mysql -u redmine -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8282
Server version: 5.0.45 Source distribution
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

一応これでOKなはず。MySQLを使用するやつはCreate Table権限が必要な場合が多いですよね。あんまり業務アプリケーションではALTER権限自体与える場合が少ないですが。

そして先ほどのdatabase.yml(ymlのyってなんだろ?)の「production」のセクションを先ほど設定した内容に書き換えます。

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: newpassword
  encoding: utf8

別に記載しておきますが、使用しているMySQLの一時ファイル(ソケット用?)が、 標準(/tmp/mysql.sock)と違うところに作成されているようでした。

# mysqladmin -p variables | grep socket
Enter password:
| socket                          | /var/lib/mysql/mysql.sock                               |

「/var/lib/mysql/mysql.sock」に作成されているようなので、この設定をconfig/database.ymlに追記します。

 socket: /var/lib/mysql/mysql.sock

そしてインストールのコマンドを入力します。rakeというらしい、(makeのruby版だからでしょうか?)

<code># rake db:migrate RAILS_ENV="production"
(in /www/labs/redmine-0.8.5)</code>
rake aborted!
Mysql::Error: #42000INDEX command denied to user 'redmine'@'localhost' for table 'schema_migrations': CREATE UNIQUE INDEX `unique_schema_migrations` ON `schema_migrations` (`version`)

あれ、インデックス作成に失敗している。
createでは付与されないのかー。改めて「INDEX」権限を付与します。
あと、migrateのスクリプトで、alter table文でカラムを追加、drop文でテーブルの削除をしているようなので、alter文、drop文も実行できるようにしました。

mysql> grant index,drop alter on redmine.* to redmine@localhost;
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

あらためてスクリプトを実行します。

# rake db:migrate RAILS_ENV="production"
(in /www/labs/redmine-0.8.5)

実行するとつらつらと実行結果が表示され、エラーがなければOKです。
次に、初期データをロードするスクリプトを流します。

# rake load_default_data RAILS_ENV="production"
(in /www/labs/redmine-0.8.5)
 
Select language: bg, ca, cs, da, de, en, es, fi, fr, he, hu, it, ja, ko, lt, nl, no, pl, pt, pt-br, ro, ru, sk, sr, sv, th, tr, uk, vn, zh, zh-tw [en] ja

ここで言語を選択しろと言われるので、「ja」を指定して実行します。

====================================
Default configuration data loaded.

Note: The rake task load_default_data has been deprecated, please use the replacement version redmine:load_default_data

最後になんだか警告が出ているのですが、これはスクリプト名を「redmine:load_default_data」とすればよさそう。

# rake redmine:load_default_data RAILS_ENV="production"

これでやってみたのですが、ブラウザからアクセスしてみるとInternal Server Errorが出ており、ログを見たところ、/tmp/sessions/以下にファイルが書き込めないエラーのようでした。
これはhttp://redmine.jp/tech_note/apache-passenger/のトラブルシューティング-パーミッションの問題にあるように、config/environment.rbのオーナーがrootになっていたためのようです。
所有者を変更して再起動したらうまくいきました。以下のような画面になります。
redmine-installed


Leave a Reply