- 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"
を削除しました。詳細はこちらにて。
コメントを投稿