miércoles, abril 04, 2007

Mono en un VDS de Godaddy

Tenemos un desarrollo listo en asp.net y nos topamos con la necesidad de ponerlo en Linux. La respuesta es usar mono en apache, y dado que ya contamos con un servidor en internet con Fedora 4 decidimos instalarlo.

Pero resulta que el Virtual Dedicated Server (VDS) de GoDaddy no trae por omisión la instalación de mono, asi que seguimos las instrucciones de go-mono.com para instalarlo.

Lo primero es obtener 3 archivos zip desde http://www.mono-project.com/Downloads:

  1. mono.zip
  2. xsp (para obtener la carpeta test xsp-1.2.3-0.novell.noarch.rpm)
  3. mod_mono (un rpm: mod_mono-1.2.1-0.fedora4.novell.i386.rpm)

Es lo unico que se requiere para ejecutar un desarrollo asp.net 1.1. Para desarrollos de asp.net 2.0 (digamos construidos con Visual Web Developer) es recomendable esperar a la version mono 2.0. En nuestro caso es un desarrollo sencillo que no utiliza muchos objetos nuevos de net 2.0, asi que no hubo problema.

Lo siguiente es descomprimir

$ unzip mono-all.zip

Instalar mono con Root (debe incluirse los archivos de xsp y mod_mono) :

$ rpm -Uvh *rpm

Con lo anterior ya tenemos instalado mono, ahora tenemos que configurar el servidor apache, para esto cambiamos de directorio a /etc/httpd/conf/. Aun cuando se ha instalado xsp que en si es un servidor, no lo usaremos, como mencionamos solo queremos la carpeta test que se instala.

Tenemos que editar el archivo httpd.conf agregando una linea, de preferencia despues de:

#
# Load config files from the config
# directory  "/etc/httpd/conf.d".
#
Include conf.d/*.conf
Include /etc/httpd/conf.d/mod_mono.conf

Guardamos el archivo anterior y verificamos que mod_mono.conf efectivamente se encuentre dentro de la carpeta conf.d, de lo contrario creamos un nuevo archivo y agregamos lo siguiente:

# mod_mono.conf

# Acthung! This file may be overwritten
# Use 'include mod_mono.conf' from other configuration file
# to load mod_mono module.

<IfModule !mod_mono.c>
LoadModule mono_module /usr/lib/httpd/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

Por ultimo debemos comprobar que el modulo se encuentre en la direccion que pusimos en el archivo conf.

/usr/lib/httpd/modules/mod_mono.so

En caso de no ser asi podemos buscar el archivo con

% find / -name mod_mono.so -print

Modificamos la ruta o en su caso copiamos el archivo.

Si queremos comprobar que esta funcionando mono en nuestro servidor apache copiamos la carpeta de test de mono a la carpeta de los documentos html que usamos normalmente:

cp /usr/lib/xsp/test /home/miusuario/public_html/

Listo!

No hay comentarios.: