- apache2 パッケージ(2.2.11-2ubuntu2.2)
- Mono 2.4.2.3 + xsp 2.4.2 + mod_mono 2.4.2
という環境で、mod_mono をソースからビルド、インストールを行った場合、「/etc/apache2」ディレクトリに「mod_mono.conf」がコピーされるが、それをそのまま使わず、Ubuntu での Apache 設定にならい、分割。また、環境変数の追加も行う。以下に各設定を列挙。
「/etc/apache2/envvars」:環境変数の設定
- # envvars - default environment variables for apache2ctl
- # Since there is no sane way to get the parsed apache2 config in scripts, some
- # settings are defined via environment variables and then used in apache2ctl,
- # /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
- export APACHE_RUN_USER=www-data
- export APACHE_RUN_GROUP=www-data
- export APACHE_PID_FILE=/var/run/apache2.pid
- # added for mod_mono
- export MONO_HOME="/opt/mono/2.4.2.3"
- export PATH="$MONO_HOME/bin:$PATH"
- export LD_LIBRARY_PATH="$MONO_HOME/lib:$LD_LIBRARY_PATH"
- export MONO_IOMAP=all
「/etc/apache2/mods-available/mono.conf」:「mod_mono.conf」から分割、および設定の追加
- <IfModule mod_mono.c>
- 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
- Include ./mods-available/include/mono
- </IfModule>
「/etc/apache2/mods-available/mono.load」:「mod_mono.conf」から分割
- LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so
もともと、「/etc/apache2/mods-available/include」ディレクトリは存在しないので作成。
$ cd /etc/apache2/mods-available $ sudo mkdir include
「/etc/apache2/mods-available/include/mono」:mod_mono Control Panel、XSP Demo
- # mod_mono Control Panel
- <Location /mono>
- SetHandler mono-ctrl
- Order deny,allow
- Deny from all
- Allow from 127.0.0.1
- </Location>
- # Demo
- MonoServerPath demo ${MONO_HOME}/bin/mod-mono-server2
- Alias /demo "${MONO_HOME}/lib/xsp/test"
- AddMonoApplications demo "/demo:${MONO_HOME}/lib/xsp/test"
- <Location /demo>
- MonoSetServerAlias demo
- SetHandler mono
- </Location>
上記設定の有効化。
$ sudo a2enmod mono
「/etc/apache2/mods-available/mono.conf」、「/etc/apache2/mods-available/mono.load」へのシンボリックリンクが「/etc/apache2/mods-enabled」にそれぞれ作成される。
各設定完了後、Apache 再起動。
$ sudo /etc/init.d/apache2 restart
「http://localhost/demo」をブラウザで確認すると、

スタイルシートの設定が読み込まれず表示され(スタイルシートの指定が以下になっているため)、
- <link rel="stylesheet" type="text/css" href="/mono-xsp.css">
Configure Apache Mod_Mono で、設定ファイルを作成できるので、ありがたく使わせてもらう。
「/etc/apache2/sites-available/monodemo」:Configure Apache Mod_Mono で作成した設定ファイルから分割
- <VirtualHost *:80>
- Include ./sites-available/include/monodemo
- </VirtualHost>
「/etc/apache2/sites-available/include」ディレクトリは存在しないので作成。
$ cd /etc/apache2/sites-available $ sudo mkdir include
「/etc/apache2/sites-available/include/monodemo」:Configure Apache Mod_Mono で作成した設定ファイルから分割
- ServerName www.monodemo.home
- ServerAdmin web-admin@monodemo.home
- DocumentRoot ${MONO_HOME}/lib/xsp/test
- # MonoServerPath can be changed to specify which version of ASP.NET is hosted
- # mod-mono-server1 = ASP.NET 1.1 / mod-mono-server2 = ASP.NET 2.0
- # For SUSE Linux Enterprise Mono Extension, uncomment the line below:
- # MonoServerPath www.monodemo.home "/opt/novell/mono/bin/mod-mono-server2"
- # For Mono on openSUSE, uncomment the line below instead:
- MonoServerPath www.monodemo.home "${MONO_HOME}/bin/mod-mono-server2"
- # To obtain line numbers in stack traces you need to do two things:
- # 1) Enable Debug code generation in your page by using the Debug="true"
- # page directive, or by setting <compilation debug="true" /> in the
- # application's Web.config
- # 2) Uncomment the MonoDebug true directive below to enable mod_mono debugging
- MonoDebug www.monodemo.home true
- # The MONO_IOMAP environment variable can be configured to provide platform abstraction
- # for file access in Linux. Valid values for MONO_IOMAP are:
- # case
- # drive
- # all
- # Uncomment the line below to alter file access behavior for the configured application
- #MonoSetEnv www.monodemo.home MONO_IOMAP=all
- #
- # Additional environtment variables can be set for this server instance using
- # the MonoSetEnv directive. MonoSetEnv takes a string of 'name=value' pairs
- # separated by semicolons. For instance, to enable platform abstraction *and*
- # use Mono's old regular expression interpreter (which is slower, but has a
- # shorter setup time), uncomment the line below instead:
- # MonoSetEnv www.monodemo.home MONO_IOMAP=all;MONO_OLD_RX=1
- MonoApplications www.monodemo.home "/:${MONO_HOME}/lib/xsp/test"
- <Location "/">
- MonoSetServerAlias www.monodemo.home
- SetHandler mono
- SetOutputFilter DEFLATE
- SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
- </Location>
- <IfModule mod_deflate.c>
- AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
- </IfModule>
上記設定の有効化。
$ sudo a2ensite monodemo
「/etc/apache2/sites-available/monodemo」へのシンボリックリンクが「/etc/apache2/sites-enabled」に作成される。
「/etc/hosts」に追加。
- # added for monodemo
- 192.168.1.x www.monodemo.home
Apache 再起動後、「http://www.monodemo.home/」で動作確認。

mod_mono の設定以外では、
「/etc/apache2/conf.d/directory_settings」
- <directory />
- Options All
- Options -Indexes
- AllowOverride All
- Order allow,deny
- allow from all
- </directory>
「/etc/apache2/conf.d/enable_cgi」
- AddHandler cgi-script .cgi .pl
Apache の設定については、こちらとこちらを参考にした。
1 件のコメント:
「/etc/apache2/envvars」の設定から、
export MONO_TRACE_LISTENER="$MONO_HOME/www/mod_mono_trace.log"
を削除しました。詳細はこちらにて。
コメントを投稿