Cómo desplegar una web completa (Web App), responsiva y adaptativa, como complemento de la aplicación de escritorio Gestión Integral. Se trata de un ejemplo funcional para dotar de acceso web a determinadas partes de la aplicación Gestión Integral (partes de trabajo, fichajes/marcajes de los trabajadores, materiales, facturas, gastos, ingresos, presupuestos, incidencias, parámetros, …). Desarrollado usando el Framework ProyectoA PHP.
- Requisitos para usar una aplicación web (Web App) desarrollada con Framework ProyectoA PHP.
- Descargar y montar sitio web completo con Framework ProyectoA PHP.
- Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles.
Requisitos para usar una aplicación web (Web App) desarrollada con Framework ProyectoA PHP
El Framework ProyectoA PHP está basado en PHP, por ello se requerirá de un servidor web que admita PHP. Por ejemplo Apache. En el siguientes enlaces explicamos cómo montar un servidor web con Apache:
- Montar servidor web Apache y servidor MySQL con Linux CentOS 7 Minimal.
- Montar un servidor web y un sitio web en Windows 7 con XAMPP y WordPress.
- Instalar Apache PHP MySQL (MariaDB) en Linux CentOS 7 Minimal.
Por otro lado, para guardar los datos de la Web App necesitaremos disponer de un servidor de base de datos MySQL o MariaDB. Puede ser el mismo servidor web o bien uno separado. En los siguientes enlaces indicamos cómo instalar y montar un servidor MySQL/MariaDB:
- Instalar MySQL 8 en Linux CentOS 7 y desintalar MySQL 5.
- Instalar MySQL Community Server 5.6.12 x64 en equipo con Windows 7 Ultimate.
Si queremos permitir el acceso al sitio web externamente tendremos que hacer la redirección (NAT, mapeo) del puerto 80 (habitualmente) al servidor web que hayamos montado en nuestro firewall/router, como indicamos en este artículo:
Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web
Necesitaremos, como hemos comentado, un servidor web (en MySQL o en MariaDB), que será el que contendrá las tablas de la aplicación. El script de creación de las tablas se incluye en la descarga siguiente:
Realizaremos la descarga anterior y en la carpeta «sql» tendremos el fichero sql_framework_proyectoa.sql:
Para crear la base de datos y las tablas, abriremos, por ejemplo, MySQL Workbench. Nos conectaremos al servidor de base de datos MySQL/MariaDB:
Accederemos a «Administration» [1] y pulsaremos en «Data Import/Restore» [2]:
Marcaremos la opción «Import from Self-Contained File» y elegiremos el fichero SQL anterior (sql_framework_proyectoa.sql) [1]. Este fichero ya incluye la sentencia para crear una base de datos llamada proyectoa_gi. Si queremos que tenga otro nombre o no ejecutar la sentencia de creación de catálogo (base de datos, esquema), editaremos el fichero y eliminaremos las líneas:
1 2 |
CREATE DATABASE IF NOT EXISTS proyectoa_gi DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE proyectoa_gi; |
Si hemos eliminado estas líneas, podremos crear un nuevo catálogo pulsando en «New…» [2] o bien asignar un catálogo ya existente eligiéndolo del desplegable de «Default Target Schema»:
Pulsaremos en «Start import…». Nos mostrará el progreso de importación y su finalización. Es posible que nos muestre el error:
ERROR 1231 (42000) at line 2194: Variable ‘character_set_client’ can’t be set to the value of ‘NULL’
Operation failed with exitcode 1
No es importante, las tablas se habrán creado en la nueva base de datos
Incluso contendrán algunos registros básicos de configuración de la aplicación Gestión Integral:
Al importar el script SQL también habrá creado en la tabla usuario un registro para el usuario «administrador» con contraseña «0000», para el primer acceso a la aplicación:
Es conveniente crear un usuario y contraseña con acceso a este esquema (catálogo o base de datos) de MySQL/MariaDB. Será este usuario y contraseña el que indiquemos en el fichero de configuración del sitio web (config.xml) para el acceso al servidor MySQL desde el servidor web, como indicamos a continuación.
Descargar y montar sitio web completo con Framework ProyectoA PHP
Una vez de que dispongamos de la base de datos de la aplicación (como hemos indicado anteriormente) y de un servidor web PHP, para desplegar la aplicación web (Web App) completa y funcional, de apoyo a Gestión Integral, únicamente tendremos que descargar los ficheros necesarios del Framework ProyectoA PHP en el servidor web PHP, desde:
Una vez descargados, descomprimiremos el fichero Framework_ProyectoA_PHP.7z. Este fichero contiene una carpeta llamada ProyectoA_Gestion_Integral que es la que contiene todos los ficheros necesarios para el funcionamiento de la WebApp. En nuestro caso hemos descargado el fichero en un equipo Windows y transferimos la carpeta descomprimida al servidor web Apache (en Linux) mediante Filezilla. Transferiremos la carpeta a la ubicación raíz donde tengamos las carpetas de nuestro servidor web (habitualmente /var/www):
Si queremos que tenga un nombre más corto, para el futuro acceso del tipo http://servidor_web/intranet, renombraremos la carpeta subida a «intranet»:
Editaremos el fichero config.xml, que contiene los datos de conexión al servidor de base de datos MySQL/MariaDB. Podremos editarlo o bien desde Filezilla o bien directamente desde el servidor web con nano o vi:
En el siguiente enlace explicamos cada parámetro de este fichero:
Básicamente es esto:
- servidor: nombre de red (DNS) o IP del servidor donde esté alojada la base de datos (MySQL, MariaDB, etc.).
- puerto: puerto de comunicación, para MySQL el de defecto es 3306.
- usuario: nombre del usuario de acceso a la base de datos.
- contrasena: contraseña del usuario anterior. Debe indicarse en base64 (para que no quede visible directamente). Hay sitios web online en los que indicamos un texto y nos lo convierten en base64. Será este resultado convertido el que indicaremos en este parámetro. Por ejemplo, para la contraseña «mi_contraseña», indicaremos el texto «bWlfY29udHJhc2XDsWE=» en este parámetro.
- base_datos: nombre de la base de datos o catálogo en el que reside la aplicación.
- clave_get: secuencia de caracteres, números y letras para cifrar los valores GET y POST en la URL. Puede ser cualquiera, por ejemplo «3.8uYc4».
- seguridad_tipo_acceso: tipo de acceso a la aplicación, soporta actualmente los siguientes métodos:
- ldap;;dominio: acceso validando contra un servidor de LDAP, en este caso deberemos indicar dos valores: ldap y el nombre del dominio o servidor de LDAP al que conectarse, separados por ;; (punto y coma y punto y coma).
- wordpress;;fichero.php: acceso usando fichero PHP de WordPress para validar con su propia base de datos de usuarios. Se deberán introducir dos valores: wordpress y el nombre del fichero PHP con las clases y funciones de acceso a la validación de WordPress: PasswordHash, CheckPassword que suelen residir en el fichero class-phpass.php.
- bd: acceso usando nuestra propia tabla de usuarios de la base de datos. En este caso se indicarán los valores de conexión mediante atributos del fichero XML en la tabla de usuarios. Se indica más abajo.
Un ejemplo del contenido de este fichero:
Suponiendo que la IP del servidor con MySQL/MariaDB es 192.168.1.5.
Si hemos configurado correctamente el fichero config.xml y tenemos acceso al servidor MySQL desde el servidor Web, ya podremos realizar una prueba de acceso. Como decimos, la aplicación web es funcional al 100% sin hacer nada más. Abriremos un navegador web e introduciremos la URL siguiente:
http://192.168.1.6/intranet
Cambiando «192.168.1.6» por el nombre o la IP del servidor web Apache.
Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles
Si todo es correcto nos cargará la ventana de inicio de sesión de la WebApp Gestión Integral. En el primer acceso, si no lo hemos modificado, usaremos el usuario «administrador» y la contraseña «0000»:
Y tendremos acceso web a la aplicación Gestión Integral:
Para poder acceder a cada módulo de la aplicación, deberemos establecer los permisos de acceso desde la aplicación de escritorio Gestión Integral. Esta aplicación es completamente gratuita y su descarga está disponible en el enlace anterior. Desde esta aplicación, en el menú «Herramientas» – «Seguridad menús»:
Estableceremos a qué módulos (marcapes, partes de trabajo, facturas, presupuestos, albaranes, agenda de contactos, material, …) y con qué permisos (lectura, modificación, inserción, eliminación) puede acceder cada usuario. Por ejemplo, para dar permisos de lectura, modificación, inserción y eliminación al usuario «administrador», al módulo «Marcajes», estableceremos los siguientes datos y pulsaremos en «Establecer permisos»:
Ahora el usuario «administrador», desde la aplicación web, podrá dar de alta registros en el módulo Marcajes:
Nos mostrará la ventana para añadir un nuevo marcaje/fichaje para el control de presencia:
Una vez insertado el registro podremos consultarlo, modificarlo o eliminarlo (si tenemos estos permisos):
En el ejemplo anterior mostramos la vista de una ventana de listado de registros desde un PC. Desde un dispositivo móvil quedará adaptativa:
Por supuesto, el marcaje dado de alta en la aplicación web quedará registrado para la aplicación de escritorio y viceversa:
Estableciendo los permisos apropiados tendremos acceso web a marcajes y partes de trabajo:
A módulos de Gestión, a facturas (sólo consulta), presupuestos (sólo consulta), gastos, tipo de gastos, pagos, formas de pago, cobros):
Al grupo de módulos de Agenda, a Terceros (clientes y proveedores), notas (documentación, anotaciones), contactos, incidencias (tareas):
Al grupo de Material, a materiales (productos), familias, marcas y modelos:
Y al grupo de Entorno, a usuarios, menús, permisos de usuarios, parámetros de configuración, contadores:
Y, por supuesto, siguiendo las instrucciones del Framework ProyectoA PHP se podrá añadir cualquier módulo más sin usar programación PHP, únicamente añadiendo los valores al fichero modulos.xml y al fichero menu.xml (para mostrarlo en el menú), como indicamos en el siguiente artículo: