Sie sind auf Seite 1von 13

Héberger un serveur asp.

net
sous Linux avec Apache

par Lainé Vincent (autres articles)

Date de publication : 15/08/2008

Dernière mise à jour : 15/08/2008

A travers cet article je vous ferai découvrir comment installer et configurer mod_mono, le
module d'Apache pour ajouter le support d'asp.net à Apache
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

I - Introduction..............................................................................................................................................................3
I-A - Le module d'ASP.NET de la fondation apache............................................................................................. 3
I-B - Le module mod_mono du projet Mono......................................................................................................... 3
II - Installation de mod_mono sous Linux................................................................................................................... 4
II-A - Installation à partir du svn............................................................................................................................ 4
II-B - Installation à partir de la version binaire de Mono....................................................................................... 4
III - Configuration d'apache pour ajouter le support d'ASP.NET................................................................................. 7
III-A - Chargement du module et ajout de la gestion des pages ASP.net............................................................. 7
III-B - Ajout de la configuration des webapps .NET.............................................................................................. 7
IV - AutoConfiguration................................................................................................................................................. 9
V - Démonstration d'applications fonctionnant sous mod_mono.............................................................................. 10
IV-A - Blog Engine .NET...................................................................................................................................... 10
VI - Conclusion.......................................................................................................................................................... 12
VII - Liens...................................................................................................................................................................13

-2-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

I - Introduction

La technologie ASP.NET est une technologie bien connue des développeurs .NET, mais malheureusement
actuellement il n'y a que IIS (Internet Information Server) qui puisse déployer de telles applications web. Le serveur
vedette du monde libre, et des serveurs webs en général, de la fondation Apache peut au moyen de modules être
étendu. Le support d'ASP.NET est disponible sous forme de deux modules pour apache.

I-A - Le module d'ASP.NET de la fondation apache

Ce module disponible uniquement pour la version Windows d'Apache, permet d'utiliser le Framework .NET de
Microsoft afin d'interpréter et d'afficher les pages asp.net directement avec Apache mais sous Windows.

I-B - Le module mod_mono du projet Mono

Ce module à été créé par le projet Mono afin d'utiliser les pages ASP.NET sous apache installé sur Linux. Il utilise
un exécutable dotnet afin de faire naviguer la requête dans un pipeline ASP.net. Cet exécutable ( mod-mono-server )
permet d'accéder à la totalité du Framework .NET implémenté par Mono.

-3-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

II - Installation de mod_mono sous Linux

Cet article s'appui sur la version svn de Mono mais est valable avec n'importe quelle version de Mono depuis la
version 2.0.1

II-A - Installation à partir du svn

Afin de le récupérer il vous faut le client svn et utiliser ces commandes :

#> svn co svn://svn.myrealbox.com/source/trunk/mono


#> cd ./mono
#> svn co svn://svn.myrealbox.com/source/trunk/mcs
#> cd ..
#> svn co svn://svn.myrealbox.com/source/trunk/xsp
#> svn co svn://svn.myrealbox.com/source/trunk/mod_mono

Il faut maintenant compiler Mono :

#> cd ./mono
#> ./autogen.sh -prefix=/usr/local/
#>make
#> su -c « make install »

Puis compiler mod_mono

#> cd ./../mod_mono
#> ./autogen.sh -prefix= /usr/local/
#> make
#> su -c « make install »

II-B - Installation à partir de la version binaire de Mono

Pour cela il vous suffit de télécharger l'installeur binaire et de l'exécuter en root :

-4-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

Lancement de l'installeur binaire sous X avec Gtk

-5-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

Choix de l'emplacement de l'installation de Mono

-6-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

III - Configuration d'apache pour ajouter le support d'ASP.NET

III-A - Chargement du module et ajout de la gestion des pages ASP.net

Nous allons maintenant ajouter le chargement du module mod_mono dans la configuration d'Apache

<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>

La première ligne permet d'éviter les doubles inclusions et les problèmes qui peuvent y être attachés.
La deuxième ligne demande le chargement du module apache mod_mono. Ce module est un module natif, compiler
pour apache 2.
Les autres lignes permettent de mapper les extensions des fichiers aux actions à effectuer. Les trois dernières lignes
permettent de définir les fichiers appellés par défaut.

Cette partie de la configuration d'apache est standard par rapport aux autres modules
d'apache. Ces directives sont donc bien connues des administrateurs d'apache. De plus
vous trouverez plus d'explications sur ces lignes dans la documentation d'apache

III-B - Ajout de la configuration des webapps .NET

Quand l'on programme en ASP.NET, nous parlons d'application web. Ce sont ces "applications" que nous déployons
sur IIS.
Sous Apache cette notion est inconnue. Mais le module mod_mono la rajoute grâce à des directives de configuration
que nous allons maintenant décortiquer.
Pour définir une "application web" dans Mono il vous faut utiliser la directive AddMonoApplications au niveau de
la directive VirtualHost :

AddMonoApplications default "/mono:/var/www/mono"

Cette directive s'utilise comme cela : AddMonoApplications nom De l'Application "/url:path".


De plus vous devez ajouter la directive Location afin d'ajouter le gestionnaire pour cette url.

<Location /mono>
MonoSetServerAlias default
SetHandler mono
</Location>

Cette directive permet de définir les options d'apache pour l'url /mono.

-7-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

MonoSetServerAlias default permet de définir le nom de l'application dans le serveur mono tant dit que SetHandler
mono permet d'informer le serveur apache que c'est Mono qui doit s'occuper de traiter la demande.

A ce stade vous avez une application asp.net 1.1 totalement fonctionnelle et apache doit vous la restituer sans
problème.
Il reste une petite manipulation afin d'ajouter le support d'asp.net 2.0 à apache :

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

Cette directive s'utilise de cette manière : MonoServerPath nom De l'Application Path de mod-mono-server2.exe.
Cela permet de spécifier par application le pipeline utilisé pour faire le rendering des requêtes. Vous pouvez donc
tout à fait mélanger des applications ASP.NET 1.1 et 2.0 sur le même serveur.

-8-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

IV - AutoConfiguration

Avec les versions récentes de Mono, une nouvelle façon de déployer ses applications ASP.NET est apparue.
L'autoconfiguration est un module de Mono qui permet de configurer automatiquement une application ASP.NET
pour qu'elle fonctionne avec Apache.
Tout ce que vous avez à faire est d'inclure le fichier mod_mono.conf dans Apache et de vous assurer que ce fichier
mod_mono.conf contient la ligne MonoAutoApplication enabled
A partir du moment où ces deux conditions sont remplies vos applications ASP.NET 1.1 fonctionneront avec Apache.
Pour ajouter le support d'ASP.NET 2.0 il vous suffit de modifier dans mod_mono.conf la ligne MonoServerPath "/usr/
bin/mod-mono-server" en MonoServerPath "/usr/bin/mod-mono-server2".

-9-
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

V - Démonstration d'applications fonctionnant sous mod_mono

IV-A - Blog Engine .NET

Blog Engine .NET est une plate-forme de blog écrite en ASP.NET 2.0 avec C#.
La version actuelle (1.4.5) ne nécessite aucune modification du code. L'installation est très simple.
Pour commencer nous allons ajouter la directive de gestion des pages aspx avec mono 2.0 dans le virtual host par
défaut.

MonoServerPath /usr/bin/mod-mono-server2

Et ... C'est tout ! L'application fonctionne directement sans autre modification.

BlogEngine fonctionne directement avec Mono

- 10 -
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

Le panneau de contrôle

- 11 -
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

VI - Conclusion

La conclusion de cette introduction est assez simple : Déployer des applications ASP.NET sous Apache/Mono est
simple et rapide. Les administrateurs linux/Apache n'auront aucun mal à comprendre les éléments de configuration
du module puisqu''il utilise les directives classique d'apache tandis que les développeurs ASP.NET n'auront pas à se
poser de question sur la façon dont va être déployer leur application.

- 12 -
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/
Héberger un serveur asp.net sous Linux avec Apache par Lainé Vincent (autres articles)

VII - Liens

Pour ceux qui veulent se plonger plus en détail dans le développement ASP.NET sous linux et dans le déploiements
voici quelques liens utiles :
La page de MonoDevelop consacré au développement ASP.NET
La page ASP.NET du projet Mono vous y retrouverez toutes les méthodes de hosting ASP.NET avec Mono, y
compris les deux qui ne sont pas présenté ici.
La page consacrée à mod_mono sur mono-project
La documentation du module autoconfiguration

- 13 -
Copyright © 15/08/2008 - Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300
000 E de dommages et intérêts.
http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

Das könnte Ihnen auch gefallen