プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2016/04/26

[Bitnami Redmine] Rubyで書いたCGIを動かす

event_note

Bitnami RedmineをインストールしたらApacheとRubyもインストールされるので、Webサーバーとして使用できます。
ここではRubyをCGIプログラムとして動作するように設定を行います。
もはやBitnami Redmineは関係ありません。
Apacheのお話です。

環境

Windows 7 Professional 32bit
Bitnami Redmine v2.6.7

httpd.confの編集

「C:\Bitnami\redmine-2.6.7-0\apache2\conf」にあるhttpd.confを編集します。

まずはアクセス許可に関する設定を行います。

<Directory "設定したいフォルダのパス">

    # .htaccessを有効にする(無効にする場合はNoneを指定)
    AllowOverride All

    # CGIの実行を許可
    Options +ExecCGI

    # アクセス許可(許可しない場合はdeniedを指定)
    # ※Apache v2.3以降ではこの書き方に変わったらしい
    Require all granted
</Directory>

次に、index.rbをデフォルトのファイルとして認識できるようにします。
以下の箇所を探します。

<IfModule>
    DirectoryIndex index.html index.php
</IfModule>

以下のようにindex.rbを追加します。

<IfModule>
    DirectoryIndex index.html index.php index.rb
</IfModule>

最後に、拡張子がrbのファイルをCGIプログラムとして扱うように設定します。
以下の箇所を探します。

#AddHandler cgi-script .cgi

このコメントアウトを解除し(#を消す)、以下のように.rbを追加します。

AddHandler cgi-script .cgi .rb

以上でApacheの設定は完了です。
変更を保存してApacheを再起動させて下さい。

スクリプトファイルの書き方と環境変数の設定

拡張子rbのファイルの先頭に以下を記述する必要があります。
(-Kuは文字コードに関するオプションです。)

#!C:\Bitnami\redmine-2.6.7-0\ruby\bin\ruby.exe -Ku

しかし、全てのファイルに上記の記述をすると、パスが変わった場合などに大変なので、環境変数を設定しておくと良いかもしれません。
環境変数Pathに以下の設定を追加します。(他の値を消さないように注意してください。)
※Windows7の場合、環境変数の設定は「コンピュータ」→「システムのプロパティ」→「システムの詳細設定」→「環境変数」で行います。

C:\Bitnami\redmine-2.6.7-0\ruby\bin

これで拡張子rbのファイルの先頭に記述する内容は以下で済むようになります。

#!ruby -Ku