= Cresc. =

>>The memory over IP
>>|

CentOS 5.5+mono 2.8+xsp 2.8+mod_mono 2.8インストールその5

2010-11-24 21:32:30 | Filesystem.log2

さて続きです。
今回はmod_monoをインストールしましょう。
[root@testmono ~]#
となっている状態からスタートです。

まずはmod_monoから入手しましょう。
[root@testmono ~]# wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.8.tar.bz2
つぎに解凍します。
[root@testmono ~]# tar -xjvf mod_mono-2.8.tar.bz2
そしてmod_monoディレクトリに移動します。
[root@testmono ~]# cd mod_mono-2.8
そしてお決まりのconfigureです。
[root@testmono mod_mono-2.8]# ./configure
まー、なんというか、ここまではお決まりのパターンとなってきましたね。
configureの方もエラーなく終了したのでmakeとmake installやってみましょう。
[root@testmono mod_mono-2.8]# make
[root@testmono mod_mono-2.8]# make install
これもあっさり完了。

ここからはhttpdにmonoを連携するように設定ファイルを書き換えます。
[root@testmono mod_mono-2.8]# vi /etc/httpd/conf/httpd.conf
と入力してviでhttpd.confを読み込みます。
monoのサンプルを動かすために一番最後に次の文章を追加しましょう。
Include /etc/httpd/conf/mod_mono.conf
Alias /test "/usr/local/lib/xsp/test"
MonoApplications "/test:/usr/local/lib/xsp/test"
<Location /test>
SetHandler mono
</Location>
MonoServerPath /usr/local/bin/mod-mono-server4

httpd.confの設定を書き換えたのでhttpdを一旦止めて再スタートします。
[root@testmono mod_mono-2.8]# /etc/init.d/httpd restart
これでhttp://192.168.0.4/testにアクセスすればサンプルページが表示されるはず…
なのですが出てきません。
これにはSELinuxというセキュリティー関係の制御により動かないことが原因なのです。
例によって外部公開はしないので切りましょう。
[root@testmono mod_mono-2.8]# vi /etc/sysconfig/selinux
としてviで読み込み後、
SELINUX=enforcing

SELINUX=disabled
と変更します。
これは再起動が必要な設定なので
[root@testmono mod_mono-2.8]# reboot
として再起動します。
再起動したのを見計らってhttp://192.168.0.4/testにアクセスすると
monoのサンプルページが出てくるはずです。

一通り見てみようとSome ASP.NET Samples>2.0>Menu>menu2をクリックすると
Server Error in '/test' Application
--------------------------------------------------------------------------------
gdiplus.dll
Description: HTTP 500. Error processing request.
Stack Trace:
System.DllNotFoundException: gdiplus.dll
  at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x00000] in :0 
--------------------------------------------------------------------------------
といったエラーが早速出てきます。
入れたはずのgdiplusが見つかりませんとのこと。
きっとパスの指定がいるんだなーということで

再度ログインします。
[root@testmono ~]#
共有ライブラリの読み込み設定をviで読み込みます。

[root@testmono ~]# vi /etc/ld.so.conf
/usr/local/lib
を追記し保存します。


設定ファイルを再読み込みします。

[root@testmono ~]# ldconfig

httpdを再起動します。
[root@testmono ~]# /etc/init.d/httpd restart
さて、先ほどエラーが出たページが…うまく表示できているはず!

httpd.confのところで特に説明もなく
MonoServerPath /usr/local/bin/mod-mono-server4
としてますが、
MonoServerPath /usr/local/bin/mod-mono-server2
MonoServerPath /usr/local/bin/mod-mono-server
で.Net~2とか選べるってことでしたっけ

さて、これで一通りMono 2.8系のインストールは完了ですね。