mod_mono: Mono e Apache assieme

 

Requisiti :

  • Apache versione 2.0 o superiore;
  • Mono vesrsione 2.0 o superiore;
  • XSP Server versione 2.0;
  • modulo mod_mono di Apache;

Nulla vieta di utilizzare versioni differenti dei software richiesti, ma non se ne assicura il funzionamento.

Premetto che mi spiace che le istruzioni qui riportate potrebbero non collimare con quelle specifiche per la vostra distribuzione, ma come ben capite non posso certo simulare l'installazione per ogni Distro Linux ;-) .

In questo tutorial spiegherò come interfacciare Apache con Mono, in modo da richiamare direttamente le applicazioni .NET da Apache e non dover passare da porte diverse dalla 80.

Se non avete ancora installato Mono e XSP Server sul vostro PC vi rimando ai seguenti articoli:

Mono, ovvero .NET sotto linux

Mono sul web: installiamo XSP server

 

Installazione

Prima di tutto scaricate il modulo da installare, il link è il seguente:

http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.0.tar.bz2

a questo punto eseguiamo i seguenti comandi:

bzip2 -d mod_mono-2.0.tar.bz2 
tar -xf mod_mono-2.0.tar

Entriamo nella directory mod_mono-2.0 così creata e lanciamo i soliti tre comandi:

./configure
make
sudo make install

Nel lancio del primo comando potreste ricevere un avviso riguardante la mancanza di axps2 sul sistema, che quindi dovrete installare. Per quanto riguarda ubuntu  basta lanciare il seguente comando:

sudo apt-get install apache2-prefork-dev

e poi eseguire nuovamente ./configure.

A questo punto mod_mono è stato installato; passiamo a configurare le applicazioni in modo che possano girare tramite apache.

Cerchiamo la cartella di installazione di apache e controlliamo se è stato creato il file mod_mono.conf.

Se non esiste creiamolo, e se già esiste svuotiamolo. Inseriamo le seguenti direttive:

<IfModule !mod_mono.c>

LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so

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 .config
AddType application/x-asp-net .Config
AddType application/x-asp-net .dll
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx

</IfModule>

Ricordate che questo file deve essere caricato all'avvio di apache, qundi nel caso di ubuntu avremmo dovuto crearlo nella seguente posizione:

/etc/apache2/conf.d/mod_mono.conf

Negli altri casi basta inserire nel file generale di configurazione di apache (per esempio httpd.conf o apache2.conf) la seguente istruzione:

Include [percorso del file system dove risiede]/mod_mono.conf

L'ultimo passo da eseguire è creare un'aplplicazione mono per elaborare gli esempi di test che abbiamo visto nell'articolo Mono sul web: installiamo XSP server.

Dobbiamo inserire nei file dei virtual host del nostro server le seguenti istruzioni

Alias / "/usr/local/lib/xsp/test" MonoApplications "/:/usr/local/lib/xsp/test" <Location />

SetHandler mono

</Location>

Se utilizzate ubuntu potete inserire le precedenti righe in un file come il seguente:

sudo vim /etc/apache2/sites-enabled/mono.dev

Bene Ora riavviamo apache, con un'istruzione simile alla seguente:

sudo /etc/init.d/apache2 restart (su sistemi ubuntu)

oppure

/etc/init.d/httpd(apache2) restart (su altri avendo i diritti di root).

Bene se abbiamo fatto tutto secondo quanto prescritto vedremo apparire nel nostro browser la seguente schermata:

Mono e Apache

Come potete notare abbiamo lanciato l'applicazione Mono senza aver avuto bisogno di avviare il server XSP, ed inoltre il tutto gira tramite apache sulla porta 80, senza quindi dover comunicare agli utenti porte strane.

Aggiungi un commento