root/abiesweb/LEEME.txt @ 524
471 | pkom | """
|
|
Abiesweb - Consultas simples catálogo de abies
|
|||
Copyright (C) 2012 Francisco Mora <francisco.mora.sanchez@gmail.com>
|
|||
License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
|
|||
"""
|
|||
Esto es una pequeña utilidad que hice hace tiempo para poder consultar a través de una aplicación web desarrollada con web2py, el catálogo de
|
|||
nuestra biblioteca abies. Es muy primitiva, ya que fue cuando comencé con web2py, pero creo que útil quizá para algunos. Los pasos para
|
|||
instalarla son los que describo a continuación. Debemos tener los siguientes archivos, es importante que los scripts mdb2tool y
|
|||
abies.sh tengan permisos de ejecución:
|
|||
. abies.mdb -> evidentemente los datos del programa abies
|
|||
. abies.sh -> script que procesa el mdb e incorpora los datos en mysql
|
|||
. mdb2mysql -> script perl que genera el SQL desde el MDB
|
|||
. abiesweb.tar.gz -> aplicación web2py abiesweb
|
|||
. web2pyapache -> configuración apache web2py
|
|||
PASOS:
|
|||
1. Debemos crear en nuestro servidor mysql, bien desde la consola mysql o bien desde phpmyadmin,
|
|||
una base de datos con las siguientes características:
|
|||
nombre: abies
|
|||
codificación: UTF-8 España
|
|||
2. Creación de un usuario con nombre "abies", sin contraseña y permiso de lectura/escritura en esta base de datos.
|
|||
3. Cada cierto periodo de tiempo procederemos a importar los datos a esta base de datos desde el fichero "abies.mdb"
|
|||
de la aplicación abies. Así tendremos actualizada la base de datos hasta el momento en que lo realizamos. Este proceso es el que
|
|||
hay que realizar de forma periódica. Es necesario que donde ejecutemos el script tengamos instalado los paquetes debian
|
|||
"mdbtools" y "mysql-client", además de y en la misma carpeta esté el archivo abies.mdb. Este script exporta la base de datos de access de abies a un
|
|||
formato SQL que entiende mysql e importa a mysql esos datos. Ejecutaremos la orden:
|
|||
./abies.sh
|
|||
Podemos ver la base de datos con phpmyadmin.
|
|||
Hemos de tener en cuenta que si el proceso lo realizamos en una máquina que no es la que tiene el servidor mysql, hemos de
|
|||
configurar el servidor mysql para que acepte peticiones que provengan de máquinas que no sean ella misma, esto se hace editando
|
|||
el fichero "/etc/mysql/my.cnf", del ordenador con el servidor mysql, comentando la línea:
|
|||
#bind-address = 127.0.0.1
|
|||
Para permitir conexiones de otras máquinas clientes. Una vez hecho esto reiniciamos el servicio mysql para que tome la nueva
|
|||
configuración.
|
|||
4. Lo siguiente consiste en descargar el web2py de la página del proyecto: "http://www.web2py.com/examples/static/web2py_src.zip".
|
|||
Descomprimimos este archivo en una carpeta del servidor mysql, por ejemplo "/var/www/web2py". Para arrancar el framework:
|
|||
unzip web2py_src.zip
|
|||
chown -R www-data:www-data web2py
|
|||
cd /var/www/web2py
|
|||
472 | pkom | 5. Ahora debemos instalar la aplicación abiesweb. Tambien configuraremos la ruta de acceso a la base de datos.
|
|
Para ello, y siguiendo con la secuencia anterior:
|
|||
471 | pkom | ||
cd /var/www/web2py/applications
|
|||
tar xvzf dondetenemosabiesweb.tar.gz .
|
|||
472 | pkom | Descomprimimos el archivo abiesweb.tar.gz en esa ruta y se habrá creado la carpeta abiesweb.
|
|
Ahora editaremos el siguiente archivo:
|
|||
/var/www/web2py/applications/abiesweb/models/db.py
|
|||
Buscaremos la línea:
|
|||
db = DAL('mysql://abies:abies@web/abies',pool_size=10) # if not, use SQLite or other DB
|
|||
Reemplazaremos web por el nombre del servidor de la base de datos, o por localhost si está en la misma
|
|||
máquina. Guardaremos el cambio.
|
|||
471 | pkom | ||
6. Para arrancar web2py, con el servidor web que lleva integrado (modo "lento"), lento si el número de peticiones es elevado,
|
|||
realizaremos lo siguiente:
|
|||
cd /var/www/web2py
|
|||
python web2py.py -a "passwordquequeramosparaadministracion" &
|
|||
Este comando arrancará un proceso web en el puerto 8000.
|
|||
7. Ya podremos probar si todo ha ido bien. Para ello abriremos un navegador web e iremos a la siguiente página:
|
|||
http://nombremaquina:8000/abiesweb
|
|||
Donde nombremaquina tiene que ser sustituido por el nombre de la máquina en que hemos descargado web2py. Una vez aquí podremos buscar
|
|||
por título, autor/a, editorial. La caja de texto espera a teclear al menos 4 caracteres y una vez tecleados realiza búsquedas a la base
|
|||
de datos apareciendo debajo de la caja de texto el resultado. Cuando pinchamos en un libro nos aparece una pequeña ficha de información,
|
|||
que incluye los ejemplares existentes, localización, etc. Además podremos acceder desde aquí a los títulos de la editorial o bien a las
|
|||
obras de algún autor/a.
|
|||
El proceso web2py se ha quedado funcionando en segundo plano. Si reiniciamos la máquina tendremos que volver a iniciarlo manualmente.
|
|||
8. (Recomendado) Si queremos mayor velocidad de proceso, la forma que voy a describir hace que sea apache quien sirve la aplicación o aplicaciones que estén metidas
|
|||
en web2py. Tendremos que utilizar la extensión WSGI de apache, para que éste procese las peticiones y no el servidor web integrado de web2py, para ello hay que
|
|||
hacer varias modificaciones, evidentemente hay que tener instalado apache2 y libapache2-mod-wsgi.
|
|||
Ya no es necesario arrancar el proceso web2py (punto 6), si lo está deberemos hacer un kill al proceso para eliminarlo, ya que sino apache se
|
|||
quejará de que hay otro proceso sirviendo en el puerto 8000. Este puerto puede cambiarse sin problema.
|
|||
Copiaremos en /etc/apache2/sites-available el fichero "web2pyapache" y activaremos el sitio:
|
|||
cp dondetenemosweb2pyapache /etc/apache2/sites-available
|
|||
a2ensite web2pyapache
|
|||
service apache2 restart
|
|||
Si todo ha ido bien visitando el enlace del punto 7, podremos acceder a la misma aplicación pero siendo apache quien la sirve.
|
|||