Héberger un serveur asp.net

Embed Size (px)

Citation preview

  • 8/14/2019 Hberger un serveur asp.net

    1/13

    Hberger un serveur asp.net

    sous Linux avec Apache

    parLain Vincent (autres articles)

    Date de publication : 15/08/2008

    Dernire mise jour : 15/08/2008

    A travers cet article je vous ferai dcouvrir comment installer et configurer mod_mono, le

    module d'Apache pour ajouter le support d'asp.net Apache

    http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    2/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 2 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    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.................................................................................7III-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 - Dmonstration d'applications fonctionnant sous mod_mono.............................................................................. 10

    IV-A - Blog Engine .NET...................................................................................................................................... 10

    VI - Conclusion.......................................................................................................................................................... 12

    VII - Liens...................................................................................................................................................................13

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    3/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 3 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    I - Introduction

    La technologie ASP.NET est une technologie bien connue des dveloppeurs .NET, mais malheureusement

    actuellement il n'y a que IIS (Internet Information Server) qui puisse dployer de telles applications web. Le serveur

    vedette du monde libre, et des serveurs webs en gnral, 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'interprter 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 excutable dotnet afin de faire naviguer la requte dans un pipeline ASP.net. Cet excutable ( mod-mono-server )

    permet d'accder la totalit du Framework .NET implment par Mono.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    4/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 4 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    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 rcuprer 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 tlcharger l'installeur binaire et de l'excuter en root :

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    5/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 5 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    Lancement de l'installeur binaire sous X avec Gtk

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    6/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 6 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    Choix de l'emplacement de l'installation de Mono

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    7/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 7 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    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

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

    AddType application/x-asp-net .aspxAddType application/x-asp-net .asmx

    AddType application/x-asp-net .ashx

    AddType application/x-asp-net .asax

    AddType application/x-asp-net .ascxAddType 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 .configAddType application/x-asp-net .Config

    AddType application/x-asp-net .dll

    DirectoryIndex index.aspx

    DirectoryIndex Default.aspxDirectoryIndex default.aspx

    La premire ligne permet d'viter les doubles inclusions et les problmes qui peuvent y tre attachs.

    La deuxime 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 dernires lignes

    permettent de dfinir les fichiers appells par dfaut.

    Cette partie de la configuration d'apache est standard par rapport aux autres modulesd'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 dployons

    sur IIS.

    Sous Apache cette notion est inconnue. Mais le module mod_mono la rajoute grce des directives de configuration

    que nous allons maintenant dcortiquer.

    Pour dfinir 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.

    MonoSetServerAlias default

    SetHandler mono

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

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://httpd.apache.org/docs/2.0/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    8/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 8 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    MonoSetServerAlias defaultpermet de dfinir 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

    problme.

    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 manire : MonoServerPath nom De l'ApplicationPath de mod-mono-server2.exe.

    Cela permet de spcifier par application le pipeline utilis pour faire le rendering des requtes. Vous pouvez donc

    tout fait mlanger des applications ASP.NET 1.1 et 2.0 sur le mme serveur.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    9/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 9 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    IV - AutoConfiguration

    Avec les versions rcentes de Mono, une nouvelle faon de dployer 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 fichiermod_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".

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    10/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 10 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    V - Dmonstration 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 ncessite aucune modification du code. L'installation est trs simple.

    Pour commencer nous allons ajouter la directive de gestion des pages aspx avec mono 2.0 dans le virtual host par

    dfaut.

    MonoServerPath /usr/bin/mod-mono-server2

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

    BlogEngine fonctionne directement avec Mono

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    11/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 11 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    Le panneau de contrle

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    12/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 12 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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' 300000 E de dommages et intrts.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/

    VI - Conclusion

    La conclusion de cette introduction est assez simple : Dployer des applications ASP.NET sous Apache/Mono est

    simple et rapide. Les administrateurs linux/Apache n'auront aucun mal comprendre les lments de configuration

    du module puisqu''il utilise les directives classique d'apache tandis que les dveloppeurs ASP.NET n'auront pas se

    poser de question sur la faon dont va tre dployer leur application.

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/
  • 8/14/2019 Hberger un serveur asp.net

    13/13

    Hberger un serveur asp.net sous Linux avec Apache parLain Vincent (autres articles)

    - 13 -Copyright 15/08/2008 - Vincent Lain. Aucune reproduction, mme 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

    VII - Liens

    Pour ceux qui veulent se plonger plus en dtail dans le dveloppement ASP.NET sous linux et dans le dploiements

    voici quelques liens utiles :

    La page de MonoDevelop consacr au dveloppement ASP.NET

    La page ASP.NET du projet Mono vous y retrouverez toutes les mthodes de hosting ASP.NET avec Mono, y

    compris les deux qui ne sont pas prsent ici.

    La page consacre mod_mono sur mono-project

    La documentation du module autoconfiguration

    http://vincentlaine.developpez.com/tuto/dotnet/mod-mono/http://www.mono-project.com/AutoHostinghttp://www.mono-project.com/Mod_monohttp://www.mono-project.com/ASP.NEThttp://monodevelop.com/Creating_ASP.NET_Projectshttp://vincentlaine.developpez.com/http://www.developpez.net/forums/profile.php?mode=viewprofile&u=42863http://www.developpez.com/