mod_monoでASP.NET

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

この情報は古い可能性があります!

とりあえず要望があったのでちょこっとやってみます。

HP: http://www.mono-project.com/

実を言うと0.9くらいのころにちょこっとインストールしてHelloWorldしたくらいで
あんまり突っ込んでないのでちょこっとつっこんでみますか。。
バージョンが2.4になってました。

xspは単体で動かすものらしいので、今回はあんまり関係なさそうですね。

各プラットフォーム用のパッケージとソースがあるので今回はソースで
やってみようとおもいます。

Fedoraなら以下のコマンドで全部はいるかもしれません。

yum install mono mono-* xsp xsp-*

ダウンロード

ソース置き場

cd /usr/local/src
wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.4.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.4.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.4.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.4.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/mono-basic/mono-basic-2.4.tar.bz2

おまけ?

wget http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.8.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/gnome-sharp220/gnome-sharp-2.20.1.tar.bz2
wget http://ftp.novell.com/pub/mono/sources/gnome-desktop-sharp2/gnome-desktop-sharp-2.20.1.tar.bz2

monoインストール

tar jxvf mono-2.4.tar.bz2
cd mono-2.4
# gcc4.3.0のせいなのか何なのかわかりませんが
# ARG_MAXが定義されてないと怒られるので手動で確認して追加
getconf ARG_MAX
vi mono/io-layer/wapi_glob.h
# WAPI_GLOB_ABENDのしたあたりに getconfで出てきた値を追加しまs
# 2.0.1でなおったっぽいです?
#define ARG_MAX 2621440

./configure
make
make install

xspインストール

cd /usr/local/src
tar jxvf xsp-2.4.tar.bz2
cd xsp-2.4
./configure
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig make
make install

libgdiplusインストール

tar jxvf libgdiplus-2.4.tar.bz2
cd libgdiplus-2.4
./configure
make
make install

mono-basicインストール

tar jxvf mono-basic-2.4.tar.bz2
cd mono-basic-2.4
make
make install

mod_monoインストール

cd /usr/local/src
tar jxvf mod_mono-2.4
cd mod_mono-2.4
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install

一応メインっぽいのはこれだけで良いとおもいます。
何か足りないものとかがもしあれば
http://ftp.novell.com/pub/mono/sources-stable/
からDLすると幸せになれるかもしれません。

連携その1

mod_monoをインストールすると/usr/local/apache2/confに
mod_mono.confが出来るので適当に
Include conf/mod_mono.conf
を追加してhttpdのリロードでOKです

後は適当にaspxファイルを作って動かしてみると500エラーが見れるかもしれません('A`)

連携その2

/usr/local/apache2/conf/httpd.conf

LoadModule mono_module modules/mod_mono.so
Alias /demo "/usr/local/lib/xsp/test"
AddMonoApplications default "/demo:/usr/local/lib/xsp/test"
< Location /demo>
SetHandler mono
< /Location>

まぁぶっちゃけよくわかってません('A`)
なにやらmod_monoのせいか分かりませんが
libc-2.8.soとかでhttpdがsegment faultしちゃってます('A`)

ASP.NET2.0で動かす

上の設定だと1.1でしか動かないので
2.0用の設定を投入します。

MonoAutoApplication disabled
AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
MonoApplications "/demo:/usr/local/lib/xsp/test"
MonoServerPath /usr/local/bin/mod-mono-server2
< Location /demo>
SetHandler mono
< /Location>

MonoServerPathがキモのようですね
そもそも公式にチャンと使い方がのってました('A`)
http://www.mono-project.com/Mod_mono

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.