カーロン・テクノロジでは、ソフトウェアの開発に際して、プロジェクト管理システムRedmineを導入することがあります。 本ページでは、Redmineサーバの構築手順をまとめます。
必要なパッケージのインストール
まず、Redmineサーバの構築に必要なパッケージを導入します。 途中でパスワードを尋ねられますが、これはMySQLの管理用となります。
証明書の準備
Redmineサーバとの通信にTLS (SSL)を用いるために、証明書を用意します。 証明書はユーザwww-dataから読み取りアクセス可能な場所に配置されていれば問題ありませんが、 www-dataのホームディレクトリである/var/wwwに配置すると事故 (設定を間違えて公開してしまう) ここでは、自己署名証明書 (いわゆるオレオレ証明書) の生成手順を記述しますが、自己署名証明書ではなりすまし攻撃に対応できないため、インターネットからアクセス可能なサーバでは、正当な証明書を使用してください。
証明書の生成後、LighttpdにTLS (SSL)の設定を行います。
まず、TLSの設定を記述したファイルを新規に作成します。
次に、Lighttpdの設定ファイル最終行に次の記述を追加することで、作成したファイルを取り込むよう設定します。
include "ssl.conf"
Redmineインストール
アーカイブの取得・展開
Redmineそのもののインストールを行います。 Redmineは、任意の場所にアーカイブを配置することができます。 ここでは、一旦ホームディレクトリ直下に展開しておき、設定完了後にインストール先 (/home/www-data) に以下に移動することとします。
ZIP版もリリースされていますが、改行コードがWindows向けに設定されています。 Ubuntu上で使用する場合はトラブルの原因となるため、.tar.gz版を使用するようにしてください。
Redmineにデータベース設定を行います。 Redmineアーカイブ以下のconfig/database.yml.exampleファイルをコピーしてconfig/database.ymlを作成します。
gemパッケージのインストール
Redmineの動作に必要なgemパッケージをインストールします。 Redmineでは、動作に必要なパッケージをBundlerで管理しているため、まずはBundlerをインストールします。
次に、追加で必要となるパッケージをGemfile.localファイルに設定します。 RedmineをLighttpd上で動作させる場合はfcgi gemが必要となるため、これをGemfile.localファイルを新規作成して記述します。 記述後、Bundlerを用いて必要となるgemをインストールします。
データベース初期設定
Redmine用のデータベースを作成します。 ここでは、パスワードとして"rpassword"を設定すると仮定します。実際には、任意のものに置き換えてください。 また、mysqlコマンド実行時にパスワードを確認されますので、MySQLインストール時に設定したパスワードを入力してください。
シークレットトークンの生成
次のコマンドで、Cookieのシークレットトークンを生成します。
データベース初期設定
次のコマンドで、データベースの初期設定を行います。 途中、言語選択の選択肢が表示されるので、使用する言語を入力します。 ただし、Redmine Backlogsを使用する場合、必ず英語 (en) を選択するようにしてください。
FastCGI設定
LighttpdでRedmineを動作させる場合、FastCGIの仕組みを使用します。 public以下に、FastCGI用プログラムのテンプレートが配置されているので、これをコピーします。 このテンプレートはこのまま動作させることができるので、修正は不要です。
Lighttpd設定
LighttpdにRedmineの設定を行います。次の内容のファイルを、/etc/lighttpd/redmine.confとして作成します。
そして、lighttpd.confの最後に次の行を追加して、作成したファイルを設定ファイルから読み出すようにします。
Redmineデプロイ
以上の設定が完了したら、Redmineをデプロイします。 デプロイ先である/home/www-dataに、関連するファイルを移動します。 そして、Lighttpdを実行するユーザはwww-dataなので、所有者をwww-dataに変更します。
Redmine起動
最後に、Lighttpdを再起動することで、Redmineを使用できるようになります。