mod_monoのインストール

iwa2006-12-17


Vine Linux 4.0にmonoをインストールしました。一筋縄とはいきませんでした。導入するとASP.NET 1.1が動くみたいです。2.0は対応中のようです。情報は2006.12.17のものです。

(1) monoをインストール

mono本家ダウンロードページ(英語)
から、Linux Installer for x86 (All distributions)Mono (Version No.) Installer (Stable) を選択してダウンロードします。私がダウンロードしたのは 1.2.2.1_1 Installer (Stable) でした。

$ cd (ダウンロードしたディレクトリ)
$ ./mono-1.2.2.1_1-installer.bin

上記のコマンドでエラーが起きて終了してしまった場合は、オプション --mode xwindow を付けます。

$ ./mono-1.2.2.1_1-installer.bin --mode xwindow

あとはフォルダ /opt の下にmonoがインストールされます。コマンド mono と xsp のパスが通っているかチェックします。

 
  • 【確認】.bashrc に コマンド mono と xsp のパスが通っているか

    $ cat /root/.bashrc
    :
    export PATH="/opt/mono-1.2.2.1/bin:$PATH"

(2) apxsをインストール

既に、この段階で mono と xps(簡易サーバ) の動作は可能です。これをApache2と連携させます。
Apache2上でmonoを動かすモジュールであるmod_monoはmakeが必須です。makeするためにApache2側で必要なapxs(Apache拡張機能)をインストールします。

$ apt-get install apache2-devel

【参考】apxsとはなんですか?(はてな)

(3) mod_monoのダウンロードとmake

mod_monoは mono本家ダウンロードページ(英語)Source Code (Stable) から mod_mono-1.2.1.tar.gz を取得します。

$ tar zxvf mod_mono-1.2.1.tar.gz
$ cd mod_mono*/
$ ./configure
$ make
$ make install

makeは関連ファイルがきちんと定義されていないと、エラーが返ってきて失敗します。ここが敷居が高いと呼ばれる理由だと思われます。エラーが起こった場合は、./configureに対するオプションをしっかりと定義する必要があります。

--prefix=/xxx/yyymod_monoのファイルをインストールする基準パス
--with-mono-prefix=/xxx/yyymono実行ファイル、mod-mono-server.exeが正しく実行されるデフォルトパス
(mod_monoのプレフィックスがmonoとは異なる場合)
--with-apxs=/xxx/yyy/apxsapxs実行ファイルの完全パス
(複数のApache(例えば1.3と2.0)の開発用ファイルをインストールしている場合)
--with-apr-config=/xxx/yyyApache2のapr-configツールの完全パス
(Apache2向けのいくつかのヘッダファイルが見つからない場合)

make が通ったら make install で完了です。あとはApache2のhttpd.confにmonoを使用するための記述をするだけです。

httpd.conf の設定(LoadModuleの一番下あたりに追加)

LoadModule mono_module modules/mod_mono.so
Alias /test "/opt/mono-1.2.2.1/lib/xsp/test"
AddMonoApplications default "/test:/opt/mono-1.2.2.1/lib/xsp/test"
<Location /test>
SetHandler mono
</Location>
Apache2をリスタートして「http://127.0.0.1/test/index.aspx」にアクセスしてXSPテストページが表示されれば成功です。あとはAliasの部分をASP.NETを使いたいディレクトリを指定します。うまくいかない場合、Mod mono - MonoWebJPを参考にしてください。