プロジェクト

全般

プロフィール

GuideDevEnv » 履歴 » リビジョン 2

リビジョン 1 (Mitsuyoshi Yoshida, 2011/06/25 23:22) → リビジョン 2/9 (Mitsuyoshi Yoshida, 2011/06/25 23:24)

h1. プラグインの開発環境の準備 はじめに 

 プラグインの開発をしようとした場合、実際に稼動している Redmine でプラグインを作って試すのは危険が大きいです。まずはプラグイン開発のための環境を準備しましょう。 

 実際の Redmine の運用は Linux などで行うことが多いと思いますが、 Redmine は Windows 環境でも動作します。やはり、簡単に用意できるは Windows の PC ですし、自分で使うだけなら Windows の Redmine でも十分です。私もプラグインを作る時は自分の PC で行い、確認してから実際の Redmine にインストールしています。 はすばらしいプロジェクト管理ソフトですが、使っていれば、ここが使いづらいなとかこんな機能があれば便利だなとかいうことはどうしてもでてくると思います。 
 そこで、開発環境には Windows 上の そんなとき Redmine を使うことにして、その構築方法を説明をしていきたいと思います。ただし、 Redmine を立ち上げる方法はすでにいろんなサイトで紹介されているので、開発用の環境にポイントを絞っています。 はプラグインで簡単に機能を追加することが出来ます。 

 通常の Redmine のインストール方法の説明については他のサイトを参考にしてください。以下のサイトなどがお勧めです。 

 * Redmine の本家 ただし、プラグインを作るには Rails の知識が必要になってきます。 
 ** http://www.redmine.org/projects/redmine/wiki/RedmineInstall  
 * 本家の日本語訳 
 ** http://redmine.jp/guide/RedmineInstall/  
 * Windows 版のインストール 
 ** http://www012.upp.so-net.ne.jp/tanuki-project/install_redmine.html  



 h2. 開発用 Redmine のポイント 普通、こういうプラグインを作りたいなと思ったとき、公開されている他の人のソースみて作り方を調べたりして作ってみることが多かったりするのですが、 Rails は「設定より規約」という方針で、簡単につくれるかわりにその規約をある程度しらないと何をやっているのかよくわからないということがよくあります。 

 開発用の プラグインは作りたいけど、Rails が良く分からなくて断念している人や作りながらいろいろと苦労している人もいるのではないかでしょうか。かくいう私もよく Rails をよく知らずに Redmine のポイントは 2 つです。 のプラグインを作ってみて、かなり四苦八苦しました。 
 # development モードで起動する 
 # サーバ には WEBrick を使う 

 そこで、そんな人のためになればと思い、 Rails では動作モードとして、 *production* モードと *development* モードが用意されています。実際に稼動する場合は production モードで動作させますが、開発に使う場合は development モードの方がちょっと便利です。 
 production モードでは動作を早くするため、一度読み込んだコードは覚えておいて、再度表示する場合はそれを使います。それに対して development モードの場合は、表示するたびに毎回読み込んでくれるので、変更を についての説明も加えた Redmine の再起動なしで確認することが出来ます。ただ、 *ちょっと* 便利と書いたのは後で説明しますが、全部即座に変更が適用されるわけではないので、意外と再起動は必要です。 
 ちなみに動作モードには test モードというのもあります。これはテストに使うものですが、このプラグインガイドでは test については書いてないので、説明については省略します。 Rails ではテストも簡単にできるのらしいですが、私は使ったことがありません。 プラグイン開発のガイドを書いてみました。 

 実際に運用する場合はサーバには Apache などを使うと思います。しかし、これらのサーバの場合、エラーが発生したとき、ページに *Internal Error* とでるだけですが、 *WEBrick* を使っていると *詳細なエラーページ* が出てきてデバッグにかなり役に立ちます。 

 !webrick_err.png! ただ、いまだにそれほどよく分かっていないので、間違っているところやわからないところもあります。 wiki で書いてますので、そういったところを見つけたらどんどん書き直していってください。 


 h2. 使用ソフト 対象読者 

 |_. h3. Redmine        |          | http://rubyforge.org/frs/?group_id=1850 | 
 |_. Ruby           | Rumix    | http://ruby.morphball.net/rumix/          | 
 |_. データベース | SQLite | http://www.sqlite.org/download.html       | に機能を追加したい人 

 まず、Redmine の最新版をダウロードします。作成したプラグインを公開する場合にはなるべく最新版で確認する方がいいでしょう。 メインの対象読者です。 

 Ruby には、 ruby 本体と一緒にいろいろインストールしてくれる Rumix を使用します。 h3. Rails でなにかサイトを作ろうかなと思っている人 

 もし Rails でなにかサイトを作ろうかなと思っているとしたら、 Redmine のプラグインで実装してしまうのもお勧めです。メンバ管理などの面度な部分は Redmine がやってくれますし、 wiki などの便利な機能もすぐ使えます。 
 プラグイン開発ではコマンドラインで実行しなければならないことが多いので、特に nyacus というコマンドラインの実行をやりやすくするプログラムが役に立ちます。 
 インストールした ruby の gem を使って、 rails などの必要なライブラリなどをインストールすることになりますが、この ruby 自身や gem を使ってインストールするものはなるべく "本家のインストールページ":http://www.redmine.org/projects/redmine/wiki/RedmineInstall で確認して また、 Redmine のバージョンにあわせたものにして下さい。 

 データベースは SQLite にしました。多分、 Redmine が対応するデータベースの中では Windows 上で一番簡単に動作させられると思います。 


 h2. データベース設定 

 のプラグインと同じような感じで Rails では 1 つの の開発は出来るため、 Rails プログラムをモードを切り替えて動作させたとしても、他のモードに影響を与えないようになっています。そのため、データベースもモードごとに別々に設定するようになっています。 
 データベース設定は config/database.example.yml をもとに config/database.yml を作成します。開発は development モードで起動するので、 このとき development 用の設定を環境に合わせて記述します。 
 <pre><code class="yaml"> 
 development: 
   adapter: sqlite3 
   dbfile: db/redmine.db 
   timeout: 5000 
 </code></pre> 入門のとっかりとしてもいいのではないでしょうか。 


 h2. データベースの作成 h3. Redmine 管理者 

 データベースの作成コマンドなども development 用にする必要があります。 
 Rails の起動モードの変更は RAILS_ENV という環境変数で行います。ただし、環境変数の設定されていないデフォルトの起動モードが development モードなので、 *"RAILS_ENV=production"* といった環境変数の設定を省略するだけです。 
 <pre> 
  $ rake generate_session_store 
  $ rake db:migrate  
  $ rake redmine:load_default_data 
 </pre> 

 この 1 行目のセッションストアを作る作業は さらに Redmine の途中のバージョンから必要になった機能なので、たまに説明が書かれていないサイトもあったりするので忘れないように注意してください。 管理者にも役にたつのではないかと思います。プラグインをいれたけどエラーで動かなかったり、 Redmine をアップグレードしたら、プラグインが動かなくなったりということは結構あります。そういうときでも公開している時点でそんなに致命的なバグはないでしょうから、プラグインのコードが読めれば、ちょっと直して動くようになることも多いです。[[GuideDevEnv|次章]]の開発環境用の Redmine もエラー原因を特定するのに役に立つと思います。 


 h2. サーバの起動 h4. 必要な知識 

 WEBrick で Redmine を起動します。 Rails の知識は不要ですが、 次のものは簡単な知識があることを想定して書いてます。 
 こちらも *"-e production"* の環境変数の設定を省略します。 * Ruby 
 <pre> 
  $ ruby script/server 
 </pre> * html 

 起動後 <notextile>http://127.0.0.1:3000/</notextile> にアクセスしてください。Windows の場合、 <notextile>http://localhost:3000/</notextile> だとアクセスできないことがあります。 データベースや Web アプリケーションの知識も不要です。もともと Rails はほとんどそれらの知識は要りませんし、必要な分の説明も行っています。ただ、今回のガイド内では必要ないですが、検索機能のあるプラグインを作ろうとした場合などにはある程度 SQL の知識は必要になってきます。 


 上手くアクセスできたら、開発環境の準備は完了です。これで自分の PC で Redmine が動くようになりました。 ---- 
 ただし、 development モードでかつ WEBrick を使っているとなるとかなり遅いですが、そこは我慢しましょう。 

 ---- 

 | [[プラグイン開発ガイド|^]] | [[GuideIntro|<<]] | [[GuideRails|>>]] [[GuideDevEnv|>>]] |