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>
*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í
- 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
- 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