mod_monoに関するTips。
lighttpd+mod_mono
lighttpdでmod_monoを使用するためのTips。
設定
lighttpdでmod_monoを使用するにはmod_fastcgiが必要になるのであらかじめインストールしておく必要がある。 インストールしたら、設定ファイルを開きmod_monoのための設定を追記する。 この例での設定内容は次の通り。
- Monoは/usr/localにインストールされているものとする
- document-rootは/srv/www、mod_monoを使用するアプリケーションのディレクトリは/srv/www/mod_mono
- 拡張子.aspxのファイルのみfastcgi-mono-server2で処理する
- mod_monoのログは/var/log/lighttpd/fastcgi-mono-server.logに出力
- 起動する最大プロセス数は1
lighttpd.conf
# mod_fastcgiを有効にする
server.modules += (
"mod_fastcgi",
)
server.document-root = "/srv/www"
index-file.names += (
"index.aspx",
"default.aspx",
)
fastcgi.server = (
".aspx" => (
"localhost" => (
"socket" => "/tmp/fastcgi-mono-server.socket",
"bin-path" => "/usr/local/bin/fastcgi-mono-server2",
"bin-environment" => (
"PATH" => "/bin:/usr/bin:/usr/local/bin",
"LD_LIBRARY_PATH" => "/usr/local/lib:",
"MONO_SHARED_DIR" => "/tmp/",
"MONO_FCGI_LOGLEVELS" => "Standard",
"MONO_FCGI_LOGFILE" => "/var/log/lighttpd/fastcgi-mono-server.log",
"MONO_FCGI_ROOT" => "/srv/www/mod_mono/",
"MONO_FCGI_APPLICATIONS" => "/mod_mono:.",
),
"max-procs" => 1,
),
),
)
設定を保存し、再起動する。
Hello, World
動作確認のため、"Hello, World"を表示するだけのサンプルを作成する。 まずファイル/srv/www/mod_mono/default.aspxを次の内容で作成。
/srv/www/mod_mono/default.aspx
<%@ Page Language="C#" CodeFile="default.aspx.cs" Inherits="_Default" %>
<html>
<head>
<title>Hello, World</title>
</head>
<body>
<h1>ASP.NET sample</h1>
<asp:Label runat="server" id="Label1" />
</body>
</html>
次にファイル/srv/www/mod_mono/default.aspx.csを次の内容で作成。
/srv/www/mod_mono/default.aspx.cs
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : Page {
protected override void OnLoad(EventArgs e)
{
Label1.Text = "Hello, World";
}
}
上記二つのファイルを作成したら、ブラウザでhttp://localhost/mod_mono/を開く。 うまくページが表示されればOK。 以下は問題なく動作した場合のレスポンスの例。
HTTP/1.1 200 OK X-AspNet-Version: 2.0.50727 Content-Length: 155 Cache-Control: private Content-Type: text/html; charset=utf-8 Set-Cookie: ASP.NET_SessionId=C11EEDA27408FDD2462060B3; path=/mod_mono Date: Mon, 18 May 2009 05:36:13 GMT Server: lighttpd <html> <head> <title>Hello, World</title> </head> <body> <h1>ASP.NET sample</h1> <span id="Label1">Hello, World</span> </body> </html>