CentOSでyumを使ってASP.NET環境を構築する!
と思っていたのですが、2012年10月15日現在、CentOSからyumでASP.NET環境を構築することはできません。
2012年3月ころまでは、以下のようにリポジトリを追加することで、yumでインストールすることができていたようです。
vi /etc/yum.repos.d/mono.repo [mono] name = novell-mono baseurl=http://ftp.novell.com/pub/mono/download-stable/RHEL_5/ enabled=0 gpgcheck=0
しかし、現在monoはNovellから離れてXamarinにて開発を行なっているため、Novellを利用することができません。
そうなると、MonoがサポートしているOpenSUSEやUbuntuにしようかと思ったのですが、仕事でも使っているCentOSのほうが良いので、ソースからコンパイルすることにしました。
■ インストール方法
以下のサイトを参考にCentOS 6.3にインストールしました。
http://jharitesh.blogspot.jp/2012/06/aspnet-apache-setup-on-centos.html
まずSELinuxをOFF
vi /etc/sysconfig/selinux SELINUX=disabled
yumで関係パッケージをインストール
yum install gcc bison pkgconfig glib2-devel gettext make
monoの最新ソースコードを取得してインストール
wget http://download.mono-project.com/sources/mono/mono-2.10.8.tar.gz tar zxvf mono-2.10.8.tar.gz cd mono-2.10.8 ./configure --prefix=/opt/mono; make; make install
pathを通して?からバージョン確認
echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile source ~/.bash_profile mono --version cd ..
続いてXSPのインストール
wget http://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2 tar jxvf xsp-2.10.2.tar.bz2 cd xsp-2.10.2 ./configure --prefix=/opt/mono; make; make install cd ..
Apacheの関係パッケージインストール
yum install httpd-devel
Apacheとmonoを連携させるためのmod_monoをインストール
wget http://download.mono-project.com/sources/mod_mono/mod_mono-2.10.tar.bz2 tar jxvf mod_mono-2.10.tar.bz2 cd mod_mono-2.10 ./configure --prefix=/opt/mono; make; make install cd ..
その次に、Apacheのconf設定ですが、結構ハマりました。色んなサイトを見て、いろいろ設定してみたのですが、うまくいきません。
以下のようなエラーがでました。
[crit] The unix daemon module not initialized yet. Please make sure that your mod_mono module is loaded after the User/Group directives have been parsed. Not initializing the dashboard.
上記は httpd.conf の「Include conf.d/*.conf」をhttpd.confの最終行に移動することでOKでした。
そして、以下のようなエラーログも。
There's already a server listening on /tmp/mod_mono_server_global
上記エラーは、conf.dに設置したconfの書き方が間違っていたようです。Mono公式ページには、Apacheのconfを生成してくれる便利なページがあります。
Apache mod_mono configuration tool
このページで内容を入力して、conf.dに設置したところ上手くいく・・・、と思ったのですが、そんなに甘くなく、こんどは下記のエラーがでました。
Invalid command 'MonoServerPath', perhaps misspelled or defined by a module not included in the server configuration
Apache mod_mono configuration toolで生成したconfに下記の1行を加えてエラーは消えました。
Include /etc/httpd/conf/mod_mono.conf
そして、ホームディレクトリに Hello World を設置します。
<% HelloWorldLabel.Text = "Hello, world!"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label runat="server" id="HelloWorldLabel"></asp:Label> </div> </form> </body> </html>
これで、アクセスすると見事にHello worldが表示されました!
■ まとめ
Monoは2.8系から使い勝手が良くなった。と聞きます。業務用途に利用できるかどうかは、テスト的に運用してみないとわかりません。
それと、ASP.NETって、いろんな用語があって、色んなモジュールもあるので、インストールする段階でも、何がどんな役割で、どう関係していて、どのバージョンが関係しているのか、もう何がなんだか、わけワカメ状態ですよ!
というわけで、ASP.NETとMono回りで理解した情報をまとめました。
CentOSにMonoでASP.NET環境を構築した時の参考サイト
ロゴスウェア
最新記事 by ロゴスウェア (全て見る)
- Amazon Linux(EC2)と PHPSTORM で Xdebug を行う - 2018年9月26日
- やらないことの合意 - 2018年6月27日
- 卒園アルバムとプロジェクトマネジメント - 2018年3月30日
Comments are closed.