Como algunos ya sabreis estoy haciendo un proyecto en C#, ASP.NET sobre XSP. En un principio estuve haciendo las pruebas sobre el servidor mono-xsp, el cual podeis conseguir con: apt-get install mono-xsp y ejecutar sobre el directorio de la aplicación que querais lanzar con "xsp --root $PWD". Esto os permitiria conectar con vuestra aplicación ASP por el puerto 8080. Pues bien, para no tener que estar andando cada rato con ese servidor, me puse a preparar un servidor Apache con el módulo mod_mono, y así tener un servidor más seriote para el proyecto. Vamos a usar un servidor Apache 1.3, en vez de utilizar la versión 2. En otro momento escribiré un articulo para la versión 2.
Como este mini-Howto está dedicado a Debianeros (lo siento por los demás), comentaré los pasos sencillos pero que me trajeron por el camino de la amargura averiguarlos. Cabe decir que yo tiré de repositorio inestable, por lo que no puedo asegurar con certeza que tengais la misma suerte con otro repositorio, pero seguro que os servirá de guia.
En primer lugar instalé lo siguiente:
$ apt-get install apache mono-apache-server
Esto nos instala todo lo necesario para tener el servidor en marcha. Una vez terminado editamos el archivo de configuración de apache y añadimos lo siguiente:
-----------------8<-------/etc/apache/httpd.conf------------8<------------
Include /etc/mono-server/mono-server-hosts.conf
MonoApplications "/arena"
Alias /arena "/home/mogurito/Desarrollo/Arena/"
<Directory /home/mogurito/Desarrollo/Arena/>
SetHandler mono
</Directory>
-----------------8<------------------------------------------8<-----------
En este caso en particular, mi aplicación "arena" la indico en MonoApplications para que me cree el directorio virtual. Aquí puedo añadir cuantas aplicaciones quiera (Ej "/arena;/app1;/app2"). Luego creo un Alias del directorio virtual "/arena" al directorio donde tengo la aplicación, o sea "/home/mogurito/Desarrollo/Arena". Por último, al usar la versión 1.3 de Apache hemos de usar un manejador para ese directorio, así que para ello se lo indicamos con "SetHandler mono".
El funcionamiento es el siguiente: El servidor apache busca un socket creado por el servidor XSP que hemos de ejecutar antes de lanzar apache, normalmente en "/tmp/mod_mono_server" y usa este servidor para tratar las páginas aspx. Pues bien, el primer problema que me encontré fue que la configuración en el el archivo "/etc/mono-server/mono-server-hosts.conf" tenía la siguiente linea "MonoUnixSocket /tmp/.mod_mono_server" o sea que buscaría en /tmp el archivo oculto correspondiente al socket, cosa que me llevo casi al camino de la depresión x). Al ejecutar el servidor XSP con "mod-mono-server", me crea el Socket en /tmp/mod_mono_server, cosa que se puede alterar con el parámetro "--filename socket". Pero para no liar las cosas por un lado, mejor editamos el archivo "/etc/mono-server/mono-server-hosts.conf" y en el parámetro MonoUnixSocket quitamos el punto que hace oculto el archivo para que quede "/tmp/mod_mono_server".
Pues bien, con ésto ya conectamos perfectamente nuestro servidor Apache con el servidor XSP. Pero ésto no es todo, no vale con lanzar el servidor con "mod-mono-server" por que hacerlo de ésta forma no carga las páginas y nos devuelve un error 404. Este fue el segundo gran problema que no encontre respuesta en ningún foro, lista, ni documentación. Hasta que me di cuenta de un parámetro del servidor XSP, que es "--application". Con ésta parámetro lanzamos el servidor XSP para cada una de las aplicaciones que tengamos configuradas en el "httpd.conf" de Apache.
Sabiendo todo esto, la secuencia para lanzar nuestro servidor es la siguiente:
$ mod-mono-server --applications /arena:/home/mogurito/Desarrollo/Arena --nonstop
$ chmod 777 /tmp/mod_mono_server
$ /etc/init.d/apache restart
Tambien se podría mete apache en un grupo aspnet, y lanzar mod_mono_server con acceso para ese grupo y así no tener que cambiar los permisos. Aunque éso lo dejo para vosotros.
Espero que os sea de utilidad y se aceptan sugerencias.
Un saludo.
|
hace 22 segs
hace 50 segs
hace 1 min 14 segs
hace 1 min 35 segs
hace 2 mins 1 seg
hace 2 mins 27 segs
hace 2 mins 50 segs
hace 3 mins 12 segs
hace 9 mins 17 segs
hace 9 mins 43 segs