Pre-Requisiti

Il sistema di riferimento è SUSE Linux (sia OpenSUSE che SLED o SLES) 

 

Apache 2.2

Nota: Il servizio si chiama apache2, per gestire il servizio usare: service apache2 {start|stop|restart}

 

Installare i pacchetti di Mono (scaricabili tramite YaST2 *), in particolare controllare di aver incluso nell’installazione:

xsp

mono-core

mono-web

 

Una volta installato Mono il caricamento di mod_mono.conf (il file di configurazione di mod_mono, plug-in per ASP.Net di Apache) dovrebbe avvenire automaticamente in quanto il file si trova nella directory “/etc/apache2/conf.d”

 

Per verificare l’esecuzione di mono all’avvio: ps –A e dovrebbe mostrare i processi http2 (o http2-prefork) e mono.

Configurazione del server

E’ buona norma tenere la configurazione custom del server in un file separato, di solito “/etc/apache2/httpd.conf.local”

 

Per far si che Apache carichi anche questo file di configurazione la procedura corretta è intervenire nel file “/etc/sysconfig/apache2” come suggerito in httpd.conf

 

# Note: instead of adding your own configuration here, consider

#       adding it in your own file (/etc/apache2/httpd.conf.local)

#       putting its name into APACHE_CONF_INCLUDE_FILES in

#       /etc/sysconfig/apache2 -- this will make system updates

#       easier :)

 

APACHE_CONF_INCLUDE_FILES="/etc/apache2/httpd.conf.local"

 

Nota:

NON intervenire nel file “/etc/apache2/sysconfig.d/include.conf” perché è quello utilizzato dalla variabile APACHE_CONF_INCLUDE_FILES e ogni volta viene sovrascritto

 

# The file below is generated from /etc/sysconfig/apache2,

# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and

# APACHE_CONF_INCLUDE_DIRS

Include /etc/apache2/sysconfig.d/include.conf

 

NON modificare nemmeno il file “/etc/apache2/httpd.conf.local”

File di configurazione del server

Esempio di host

#Set the server for ASP.Net 1.x and ASP.Net 2.0

 

MonoServerPath fw1Server "/usr/bin/mod-mono-server"

MonoServerPath fw2Server "/usr/bin/mod-mono-server2"

 

#Define the applications

 

Alias /myApp "/srv/www/htdocs/myApplication"

AddMonoApplications fw2Server "/myApp:/srv/www/htdocs/myApplication"

MonoSetEnv fw2Server MONO_IOMAP=all

<Location /myApp>

    Allow from all

    MonoSetServerAlias fw2Server

    SetHandler mono

    Order allow,deny

</Location>

 

 

# enabling mod_mono console control "http://localhost/mono" – only from localhost

<Location /mono>

    SetHandler mono-ctrl

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1

</Location>

 

 

MonoServerPath:

Serve per mappare i server. In questo file sono presenti due server, uno che utilizza il framework 1 e una che utilizza il framework 2

Possono essercene anche altri e le singole applicazioni possono utilizzare server diversi (che possono tra l’altro essere gestiti singolarmente), concetto molto simile all’Application Pool di IIS.

 

AddMonoApplications:

Consente di aggiungere diverse applicazioni che possono girare o meno nello stesso server mod_mono

È possibile utilizzarlo per avere file diversi di configurazione specificando un solo parametro (nel qual caso viene preso il server mod_mono di default che solitamente è la versione 1 del framework) oppure specificando anche il nome del server mod mono da usare (qui nominati fw1 e fw2) nel qual caso utilizza il server (e di conseguenza il framework) specificato.

Questo consente di tenere distinti i processi (security), di tenere distinti gli oggetti Session e Application, di impostare valori differenti per utilizzo di cpu e altro.

  

Esempio di host su porta non di default

Listen 8110

 

<VirtualHost *:8110>

    MonoServerPath default /usr/bin/mod-mono-server2

    Alias /MonoRoot /srv/www/monoroot

    AddMonoApplications default "/MonoRoot:/srv/www/monoroot"

    MonoMaxActiveRequests 3

    MonoMaxWaitingRequests 3

    MonoSetEnv MONO_THREADS_PER_CPU=2000

    <Location /MonoRoot>

        MonoSetServerAlias default

        SetHandler mono

        Allow from all

    </Location>

</VirtualHost>

 

Oltre alla porta non di default qui è sono specificati anche il numero massimo di richieste attive e di richieste in attesa oltre che al numero di threads.

 

 

*YasT2:

Per aggiungere un repository:

Nel “Control Center” di YasT, “Show Administrator Settings” e nella sezione “Software” cliccare su “Software Repositories”

Quindi “Add”, “HTTP…” e aggiungere il repository corretto per la propria versione di OpenSUSE (lo si può trovare in http://www.go-mono.com/mono-downloads/download.html)

 

Per una spiegazione completa su come configurare i repositories di YAsT:

http://en.opensuse.org/Add_Package_Repositories_to_YaST

P.S. Grazie ad Umberto (Bubi) per avermi fornito gran parte di questa guida