{"id":728,"date":"2013-05-09T01:11:13","date_gmt":"2013-05-09T07:11:13","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=728"},"modified":"2014-11-03T13:26:18","modified_gmt":"2014-11-03T19:26:18","slug":"apache-22x-net-mono-para-despachar-paginas-aspx-y-appliciones-c","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=728","title":{"rendered":"Apache 2.2.x .NET (Mono) para despachar paginas ASPX y Appliciones C#"},"content":{"rendered":"<p>Mono es una iniciativa de Miguel de Icaza que ha tra\u00eddo al mundo de GNU\/Linux el poder de .NET para desarrollar o ejecutar aplicaciones. Para la nueva generaci\u00f3n de programadores WEB que usan webservice o aplicaciones con esta tecnolog\u00eda este articulo ser\u00e1 interesante porque podr\u00e1n usar un GNU\/Linux para despachar paginas ASPX sin tener que instalar Internet Informaci\u00f3n Server o alg\u00fan Windows Server<\/p>\n<p>Debido a que RedHat y por lo tanto CentOS no tienen soporte para Mono deberemos instalar todo desde sus c\u00f3digos fuentes, compilarlos y configurarlos. \u00bf Por que explico como hacerlo en RedHat \/ CentOS ? porque otras distros como Ubuntu es tan simple como ejecutar un par de comandos apt-get install y queda resuelto en 5 minutos. Sin embargo RedHat y CentOS son plataformas profesionales es donde es deseable tener este soporte en producci\u00f3n. Sin embargo Mono, debido a unas diferencias de los que toman decisiones en RedHat no tiene soporte nativo. Al menos eso fue lo que dijo en alg\u00fan momento el propio Miguel de Icaza.<\/p>\n<p>Requerimientos al momento de escribir este art\u00edculo.<br \/>\nEl c\u00f3digo fuente de Mono 2.10<br \/>\nEl c\u00f3digo fuente de XSP 2.10<br \/>\nEl c\u00f3digo fuente de mod_mono 2.10<br \/>\nEl c\u00f3digo fuente de Apache es 2.2.24  al momento de escribir esto, existe Apache 2.4.2, sin embargo Mod_Mono no compila correctamente en la serie 2.4 de apache. Tal vez en unos meses esto quede solucionado.<\/p>\n<p>Obtenido los c\u00f3digos fuentes de mono<br \/>\nURL de mono<br \/>\nhttp:\/\/download.mono-project.com\/sources\/mono\/mono-2.10.tar.bz2<br \/>\nURL de mod_mono<br \/>\nhttp:\/\/download.mono-project.com\/sources\/mod_mono\/mod_mono-2.10.tar.bz2<br \/>\nURL de XSP<br \/>\nhttp:\/\/download.mono-project.com\/sources\/xsp\/xsp-2.10.tar.bz2<\/p>\n<p>URL del c\u00f3digo fuente de Apache 2.2.24<br \/>\nhttp:\/\/www.us.apache.org\/dist\/\/httpd\/httpd-2.2.24.tar.gz<\/p>\n<p>1 Se compila el c\u00f3digo fuente de mono<br \/>\n.\/configure \u2013prefix=\/usr\/mono-2.10<br \/>\nmake<br \/>\nmake install<\/p>\n<p>Terminada la instalaci\u00f3n de mono se debe agregar a la variable de PATH la ruta de los binarios de mono para poder ejecutarlos sin problemas desde Shell, si su  Shell es BASH, puede agregar en la l\u00ednea de comandos y en el archivo .bash_profile las siguientes l\u00edneas.<br \/>\nPATH=$PATH:$HOME\/bin:\/usr\/mono-2.10\/bin<br \/>\nexport PATH<br \/>\n2 Se compila XSP, antes de iniciar la compilaci\u00f3n hay que SETear la variable PKG_CONFIG_PATH con la ruta del pkgconfig que est\u00e1 dentro de la estructura de  directorios de mono previamente instalado. En este caso el valor es \/usr\/mono-2.10\/lib\/pkgconfig\/<\/p>\n<p>export PKG_CONFIG_PATH=\/usr\/mono-2.10\/lib\/pkgconfig\/<\/p>\n<p>Una vez con la variable el c\u00f3digo fuente de XSP se compila con los mismos usados en la compilaci\u00f3n pasada de mono<\/p>\n<p>.\/configure \u2013prefix=\/usr\/mono-2.10<br \/>\nmake<br \/>\nmake install<br \/>\n3 Compilando e Instalando Apache<br \/>\n.\/configure &#8211;prefix=\/usr\/apache2.2.24 &#8211;enable-so &#8211;enable-cgi &#8211;enable-ssl<br \/>\nmake<br \/>\nmake install<\/p>\n<p>4 Compilando e Instalando mod_mono<br \/>\n.\/configure &#8211;prefix=\/usr\/mono-2.10\/ &#8211;with-mono-prefix=\/usr\/mono-2.10\/ &#8211;with-apxs=\/usr\/apache2.2.24\/bin\/apxs<br \/>\nmake<br \/>\nmake install<br \/>\nHasta este punto hay instalado todo el soporte necesario para ejecutar y compilar programas de .NET en la consola y escritorio de Linux, as\u00ed como para ejecutar aplicaciones WEB de .NET aunque a\u00fan no est\u00e1 terminada la configuraci\u00f3n.<\/p>\n<p>Configurar Apache y Mod_Mono para ejecutar aplicaciones .NET<\/p>\n<p>Edita el siguiente archivo<br \/>\n\/usr\/apache2.2.24\/conf\/httpd.conf<\/p>\n<p>Agregue las siguientes l\u00edneas<\/p>\n<p>Include conf\/mod_mono.conf<br \/>\nMonoServerPath &#8220;\/usr\/mono2.10\/bin\/mod-mono-server4&#8221;<br \/>\nMonoAutoApplication enabled<\/p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&lt;location \/mono&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nSetHandler mono-ctrl<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nOrder deny,allow<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nDeny from all<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nAllow from 192.168.1.198<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n&lt;\/location&gt;<br \/><\/code><\/p>\n<p>AddMonoApplications default &#8220;\/puntonet:\/usr\/apache2.2.24\/htdocs\/puntonet&#8221;<\/p>\n<p>Alias \/puntonet &#8220;\/usr\/apache2.2.24\/htdocs\/puntonet&#8221;<\/p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp; &lt;location \/puntonet&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nSetHandler mono<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nAllow from all<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/location&gt;<\/code><\/p>\n<p>Las primeras 3 preparan a Apache para recibir el entorno .NET que provee mono<br \/>\nInclude conf\/mod_mono.conf<br \/>\nMonoServerPath &#8220;\/usr\/mono2.10\/bin\/mod-mono-server4&#8221;<br \/>\nMonoAutoApplication enabled<\/p>\n<p>Las l\u00edneas restantes preparan un directorio para ejecutar c\u00f3digo de .NET, puede repetir las l\u00edneas tantas veces como directorios para ejecutar aplicaciones de .NET requiera.<\/p>\n<p>AddMonoApplications default &#8220;\/puntonet:\/usr\/apache2.2.24\/htdocs\/puntonet&#8221;<\/p>\n<p>Alias \/puntonet &#8220;\/usr\/apache2.2.24\/htdocs\/puntonet&#8221;<\/p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp; &lt;location \/puntonet&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nSetHandler mono<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nAllow from all<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/location&gt;<\/code><\/p>\n<p>Si se requiere otro directorio agregas otro bloque con otra ruta<\/p>\n<p>AddMonoApplications default &#8220;\/otraruta:\/usr\/apache2.2.24\/htdocs\/otraruta&#8221;<\/p>\n<p>Alias \/otraruta &#8220;\/usr\/apache2.2.24\/htdocs\/otraruta&#8221;<\/p>\n<p><code>&nbsp;&nbsp;&nbsp;&nbsp; &lt;location \/otraruta&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nSetHandler mono<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nAllow from all<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/location&gt;<\/code><\/p>\n<p>Los directorios deben existir en el sistema de archivos antes de iniciar el apache por ejemplo para puntonet debe existir \/usr\/apache2.2.24\/htdocs\/puntonet y es en ese directorio (&#8220;\/usr\/apache2.2.24\/htdocs\/puntonet ) donde se colocaran los archivos .ASPX u otras aplicaciones .NET<\/p>\n<p>El siguiente video puede describir de forma visual el proceso de instalaci\u00f3n, configuraci\u00f3n y una sencilla demostraci\u00f3n de funcionamiento.<\/p>\n<p><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/o5dTtlrVPG4\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mono es una iniciativa de Miguel de Icaza que ha tra\u00eddo al mundo de GNU\/Linux el poder de .NET para desarrollar o ejecutar aplicaciones. Para la nueva generaci\u00f3n de programadores WEB que usan webservice o aplicaciones con esta tecnolog\u00eda este articulo ser\u00e1 interesante porque podr\u00e1n usar un GNU\/Linux para despachar paginas ASPX sin tener que&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,3],"tags":[],"class_list":["post-728","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales","category-programacion"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/728","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=728"}],"version-history":[{"count":2,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/728\/revisions"}],"predecessor-version":[{"id":1164,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/728\/revisions\/1164"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}