FastCGI版プロデル (Linux/mono向け)

2016年06月10日(金)更新

FastCGI版プロデルです。ランタイムプロセスがメモリに常駐するため、CGI版プロデルに比べてページの表示時間が短縮されます。実用的なWebアプリケーションの運用に利用できます。

注意:共有レンタルサーバではmonoが導入されていない場合がほとんどのため、利用できません

動作環境

  • Linux+Apache+mod_fcgid+mono4.2
  • Linux+nginx+mono4.2
  • Windows+nginx+mono4.2

ダウンロード

「rdrcgi-mono-fastcgi.exe」は、mono版プロデルに含まれています。

使い方 (Apache+mod_fcgid)

1. LinuxのApache環境下にモジュール(mod_fcgid)をインストールしておきます。
また、mono4.2をインストールしておきます。

2. 上記ファイルを任意のディレクトリに解凍します。

3. Apacheのhttpd.conf内またはドキュメントルートなど置いた.htaccessに次のようなパラメータを指定しておきます。

AddHandler fcgid-script .rdr
FCGIWrapper "/usr/bin/mono /var/www/cgi-bin/rdr/rdrcgi-mono-fastcgi.exe" .rdr
DirectoryIndex index.rdr index.html

 

「/usr/bin/mono」は、monoランタイムがインストールされた場所を指定します。サーバの構成によって場所が異なりますので、環境に合わせて変更して下さい。なおCentOS7およびyumでインストールした場合には、上記の設定で導入できます。

4. 公開ディレクトリに実行するプロデルプログラム(拡張子は.rdr)を置きます。

5. ブラウザで該当するプロデルスクリプトを開き、プログラムが実行されることを確認します。

使い方 (nginx)

1. nginxをインストールしておきます。
また、mono4.2をインストールしておきます。(Windowsの場合にもmono4.2が必要です)

Windowsの場合は、nginxをCドライブ直下など日本語名が含まれない場所に解凍します。

2. nginx.confを開き、serverブロック内に次のような設定を追加します。

location ~ \.rdr$ {
    root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.rdr;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    include fastcgi_params;
}

上記設定は、同一サーバのTCP9000番ポートで待ち受ける設定です。
起動スクリプトなどで、次のコマンドラインを実行し、FastCGI版プロデルを常駐させます。

mono ./rdrcgi-mono-fastcgi.exe /tcp 9000 192.168.0.1

3. 公開ディレクトリに実行するプロデルプログラム(拡張子は.rdr)を置きます。

4. ブラウザで該当するプロデルスクリプトを開き、プログラムが実行されることを確認します。

パラメータ

rdrcgi-mono-fastcgi.exe

書式説明
[プロデルスクリプト] [起動時引数] 指定したプロデルスクリプトを実行してます。実行後は、終了します。
パラメータなし FastCGI待受サーバを起動してUNIXパイプで待ち受けます。
/pipe FastCGI待受サーバを起動してUNIXパイプで待ち受けます。
/tcp [待機ポート番号] [[アドレス]] FastCGI待受サーバを起動してTCP/IPで待ち受けます。アドレスを省略するとローカルホストとみなします。
/? または /help 使い方に関するメッセージを表示します。
 

プロデルWebアプリの開発方法

プロデルWebアプリの開発では、GUI関係のライブラリを除く、プロデル標準のライブラリやプラグインを利用できます。

CGI版および簡易Webサーバで提供されている「応答」種類と「要求」種類は、FastCGI版プロデルでも同様に利用できます。

http://rdr.utopiat.net/docs/manual/tools/webserver/library/

更新履歴

  • 2016/6/10 nginxに対応した改良版を公開しました
  • 2016/3/10 初版を公開しました