「Mod mono」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
(他の1人の利用者による、間の3版が非表示)
1行目: 1行目:
 +
{{小文字}}
 
'''mod_mono'''とは、Apacheと[[XSP]]を連携させるモジュールである。ApacheとTomcatを連携させるmod_proxy_ajpやmod_jkと似たようなものと思って間違いない。
 
'''mod_mono'''とは、Apacheと[[XSP]]を連携させるモジュールである。ApacheとTomcatを連携させるmod_proxy_ajpやmod_jkと似たようなものと思って間違いない。
  
== 設定例 ==
+
== 設定例(Apache) ==
 
以下にFreeBSDでportsを使ってインストールした場合の例を示す。
 
以下にFreeBSDでportsを使ってインストールした場合の例を示す。
 
FreeBSDでportsを用いてインストールした場合のパス設定となっているので適宜書き換えてください。
 
FreeBSDでportsを用いてインストールした場合のパス設定となっているので適宜書き換えてください。
88行目: 89行目:
 
=== 方法2:.htaccessで設定する ===
 
=== 方法2:.htaccessで設定する ===
 
[[ASP.NET MVC]]のルートディレクトリに.htaccessファイルを作り以下の内容を記述する。
 
[[ASP.NET MVC]]のルートディレクトリに.htaccessファイルを作り以下の内容を記述する。
 +
なおForceTypeを用いる方法では
 
<source lang="apache">
 
<source lang="apache">
ForceType application/x-asp-net
+
## 旧:
 +
## この方法ではASP.NET MVC 1は動いていたのだが、
 +
## なぜかASP.NET MVC 3が動かなかった。
 +
#ForceType application/x-asp-net
 +
 
 +
## 新:
 +
## これでASP.NET MVC 3が動いた。これが正しいかは不明。とりあえず動いた。
 +
SetHandler mono
 +
# すべてをxspに処理させても良いが速度的に不利なので特定拡張子を弾く(apacheに任せる)。
 +
<FilesMatch "\.(gif||jpg|jpeg|png|css|ico|xsl|js|zip|avi|mov|wmv|flv|swf)$">
 +
    SetHandler None
 +
</FilesMatch>
 
</source>
 
</source>
  
98行目: 111行目:
  
 
Visual Studio 2010の「新しい項目」でテキストファイルを新規作成すると、そのファイルの文字コードは「UTF-8のBOM付き」となるが、.htaccessファイルにBOMが付いているとapacheでエラーとなるので注意。
 
Visual Studio 2010の「新しい項目」でテキストファイルを新規作成すると、そのファイルの文字コードは「UTF-8のBOM付き」となるが、.htaccessファイルにBOMが付いているとapacheでエラーとなるので注意。
 +
 +
[[ASP.NET MVC 3]]については「[[ASP.NET MVC 3#Monoでの動かし方]]」を参照。
  
 
== 関連項目 ==
 
== 関連項目 ==
 +
* [[asp-state]]
 +
* [[XSP]]
 +
* [[ASP.NET MVC]]
 
* [[Monoのインストール]]
 
* [[Monoのインストール]]
* [[asp-state]]
 
  
 
{{stub}}
 
{{stub}}

2012年7月24日 (火) 09:30時点における最新版

mod_monoとは、ApacheとXSPを連携させるモジュールである。ApacheとTomcatを連携させるmod_proxy_ajpやmod_jkと似たようなものと思って間違いない。

設定例(Apache)[編集 | ソースを編集]

以下にFreeBSDでportsを使ってインストールした場合の例を示す。 FreeBSDでportsを用いてインストールした場合のパス設定となっているので適宜書き換えてください。

設定ファイルを作成する[編集 | ソースを編集]

/usr/local/etc/apache22/Includes/mod_mono.conf というファイルを作り以下の内容を記述する。

<IfModule !mod_mono.c>
    LoadModule mono_module /usr/local/libexec/apache22/mod_mono.so
</IfModule>

<IfModule mod_headers.c>
    Header set X-Powered-By "Mono"
</IfModule>

# MonoServerPathを明示しないと.NET Framework 4.0ではなく
# .NET Framework 1.1が動いてしまう。
# .NET 1.1
#MonoServerPath /usr/local/bin/mod-mono-server
# .NET 2.0
#MonoServerPath /usr/local/mono/bin/mod-mono-server2
# .NET 4.0
MonoServerPath /usr/local/mono/bin/mod-mono-server4

####
MonoDebug true

####
#MonoSetEnv LANG=ja_JP.UTF-8

####
MonoAutoApplication enabled

####
AddType application/x-asp-net .aspx
AddType application/x-asp-net .asmx
AddType application/x-asp-net .ashx
AddType application/x-asp-net .asax
AddType application/x-asp-net .ascx
AddType application/x-asp-net .soap
AddType application/x-asp-net .rem
AddType application/x-asp-net .axd
AddType application/x-asp-net .cs
AddType application/x-asp-net .vb
AddType application/x-asp-net .master
AddType application/x-asp-net .sitemap
AddType application/x-asp-net .resources
AddType application/x-asp-net .skin
AddType application/x-asp-net .browser
AddType application/x-asp-net .webinfo
AddType application/x-asp-net .resx
AddType application/x-asp-net .licx
AddType application/x-asp-net .csproj
AddType application/x-asp-net .vbproj
AddType application/x-asp-net .config
AddType application/x-asp-net .Config
AddType application/x-asp-net .dll
####
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx

Apacheを再起動する[編集 | ソースを編集]

モジュールを読み込ませるためにApacheを再起動します。

apacheの再起動後にpsコマンドでmod-mono-serverというプロセスが自動起動しているのを確認する。

$ ps ax | grep mod-mono-server
51724  ??  Ss     0:01.57 /usr/local/bin/mono --debug /usr/local/lib/mono/4.0/mod-mono-server4.exe --filename /tmp/mod_mono_server_global --nonstop --master

ASP.NET MVCを使うための設定[編集 | ソースを編集]

方法1:httpd.confで設定する[編集 | ソースを編集]

<Location /mvc_app_dir>
ForceType application/x-asp-net
</Location>

「/mvc_app_dir」の部分は適宜書き換えること。

この方法では配置するたびにApacheを再起動しなければならないので面倒。

方法2:.htaccessで設定する[編集 | ソースを編集]

ASP.NET MVCのルートディレクトリに.htaccessファイルを作り以下の内容を記述する。 なおForceTypeを用いる方法では

## 旧:
## この方法ではASP.NET MVC 1は動いていたのだが、
## なぜかASP.NET MVC 3が動かなかった。
#ForceType application/x-asp-net

## 新:
## これでASP.NET MVC 3が動いた。これが正しいかは不明。とりあえず動いた。
SetHandler mono
# すべてをxspに処理させても良いが速度的に不利なので特定拡張子を弾く(apacheに任せる)。
<FilesMatch "\.(gif||jpg|jpeg|png|css|ico|xsl|js|zip|avi|mov|wmv|flv|swf)$">
    SetHandler None
</FilesMatch>

Apacheの設定で.htaccessが使えるようになっていることが大前提である。 また、ASP.NET MVCアプリをDocumentRoot直下ではなくサブディレクトリに展開する場合は.htaccessがサブディレクトリでも使える設定になっていること。

ASP.NET MVCMonoで使う場合は、プロジェクト内に.htaccessファイルを作っておき、ファイルのプロパティにあるビルドアクションを「コンテンツ」にしておくと、発行時にコピーされるので一元管理できて便利。

Visual Studio 2010の「新しい項目」でテキストファイルを新規作成すると、そのファイルの文字コードは「UTF-8のBOM付き」となるが、.htaccessファイルにBOMが付いているとapacheでエラーとなるので注意。

ASP.NET MVC 3については「ASP.NET MVC 3#Monoでの動かし方」を参照。

関連項目[編集 | ソースを編集]