Asp.Net su Linux con Mono e Apache (mod_mono)

Mono framework è una libera implementazione (open source) del framework .Net di Microsoft. In questa guida vediamo come abilitare Apache ad eseguire pagine asp.net utilizzando proprio Mono framework.

La distribuzione linux che ho utilizzato è Mageia ma i pacchetti sono disponibili praticamente per tutte le maggiori distribuzioni e le modalità di configurazione sono pressochè identiche.

 

Installiamo i pacchetti necessari

Oltre al pacchetto apache dobbiamo installare il pacchetto xsp che il motore asp.net e mod_mono che contiene il modulo per l’interazione tra mono e apache .

Configuriamo Mod_mono

Il file di configurazione è mod_mono.conf e si trova nella cartella dei file di configurazione dei moduli di apache che generalmente è /etc/httpd/modules.d.

La prima riga che troviamo nel file è

LoadModule mono_module extramodules/mod_mono.so

che indica ad Apache di utilizzare il modulo mod_mono.so. Troviamo poi la mappatura delle estensioni

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

e ancora i documenti predefiniti

DirectoryIndex index.aspx 
DirectoryIndex Default.aspx 
DirectoryIndex default.aspx

specifichiamo quale tipo di framework vogliamo utilizzare

# for ASP 2.0: 
MonoServerPath /usr/bin/mod-mono-server2

specifichiamo la path del file di socket che verrà utilizzato

MonoUnixSocket /var/lib/apache-mod_mono/mod_mono_server

disabilitiamo l’autoconfigurazione e impostiamo alcuni parametri per aumentare la stabilità del motore

MonoAutoApplication disabled  
# Auto-restart after 10,000 requests served. 
MonoAutoRestartMode mywebsite Requests 
MonoAutoRestartRequests mywebsite 10000  

MonoMaxActiveRequests mywebsite 30 
MonoMaxWaitingRequests mywebsite 30

abilitiamo l’accesso al pannello di controllo di mod_mono solo in locale

<Location /mono-ctrl>
    SetHandler mono-ctrl
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    ErrorDocument 403 "Access denied per /etc/httpd/modules.d/91_mod_mono.conf"
</Location>

infine aggiungiamo il riferimento alla nostra web application

Alias /mywebsite /path/of/mywebsite 
AddMonoApplications mywebsite "/mywebsite:/path/of/mywebsite" 
MonoSetEnv mywebsite MONO_IOMAP=all 
<Location /mywebsite> 
    MonoSetServerAlias mywebsite 
    SetHandler mono 
    Order allow,deny 
    Allow from all 
</Location>

 

Siamo pronti ad eseguire la nostra prima webapp asp.net copiando l’applicazione nella cartella principale della nostra web application.

link utili: http://www.mono-project.com/Mod_mono

 

Lascia il primo commento

Lascia un commento