viernes, 29 de enero de 2010

Web.py con Apache WSGI

Seguimos con nuestra serie de contenidos instructivos para web.py y en esta ocasión veremos la manera de integrar este framework a Apache, el servidor web predilecto de internet.




- Recordemos que estamos comenzando apartir de una instalación limpia de Ubuntu 9.10, pero eso sí debidamente actualizada empleando:
    sudo apt-get update
    sudo apt-get upgrade


- Necesitamos el servidor apache y para obtenerlo podemos instalar el conjunto LAMP (Linux, Apache, MySQL y PHP) o solamente los paquetes requeridos: apache2 y el mod-wsgi
    LAMP:
    sudo tasksel install lamp-server
    *Al seleccionar este se nos pedirá una clave de administrador para MySQL y su confirmación, escoge una y apúntala
   
    BASICO:
    sudo apt-get install apache2 libapache2-mod-wsgi
   
- Activamos el módulo wsgi
    a2enmod wsgi
    *Este módulo puede estar ya activo, así que esto es sólo una medida de precaución
   
- Creamos un directorio en donde nos parezca, aunque en este caso lo haré dentro de /var/www
    sudo mkdir /var/www/webpy-app
    *También un directorio interno static
    sudo mkdir /var/www/webpy-app/static
   
- Editamos la configuración por defecto del apache2 para incluir el acceso a nuestra aplicación web.py
    sudo vim /etc/apache2/sites-available/default
    *Agregamos las siguientes líneas, mientras sean antes del tag </VirtualHost>

    #....
    WSGIScriptAlias /main /var/www/webpy-app/main.py/
    
    Alias /main/static /var/www/webpy-app/static/
    AddType text/html .py

    <Directory /var/www/webpy-app/>
            Order deny,allow
            Allow from all
    </Directory>
    #....


    *Grabamos y reiniciamos el servicio
    sudo /etc/init.d/apache2 restart
    * También podemos hacerlo con: sudo service apache2 restart

- Dentro de webpy-app copiamos o re-escribimos el archivo que empleamos en el primer post sobre web.py, pero haciendo unas pequeñas modificaciones
    sudo vim /var/www/webpy-app/main.py
    *El programa debe quedar así


import web

urls = (
  '/','index',
  '/informacion','informacion',
  )

application=web.application(urls, globals()).wsgifunc()

class index:
  def GET(self):
    return "<html><body><h1>Pagina Principal</h1><br><a href='/main/informacion'>Pagina Auxiliar</a></body></html>"

class informacion:
  def GET(self):
    return "<html><body>Pagina Secundaria<br><a href='/main'>Principal</a></body></html>"

#if __name__ == '__main__':
#  app.run()


- Abrimos el browser y accedemos a http://localhost/main
    *Ya podemos empezar a jugar con las URLs dentro de apache
   
En una siguiente entrega veremos aspectos más interesantes de web.py, como trabajar con vistas e incluso hacer un sitio web rápidamente

No hay comentarios:

Publicar un comentario