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

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:

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:

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:

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

Para crear la base de datos y las tablas, abriremos, por ejemplo, MySQL Workbench. Nos conectaremos al servidor de base de datos MySQL/MariaDB:

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

Accederemos a «Administration» [1] y pulsaremos en «Data Import/Restore» [2]:

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

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:

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»:

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

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

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

Incluso contendrán algunos registros básicos de configuración de la aplicación Gestión Integral:

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

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:

Crear base de datos y tablas necesarias para el funcionamiento de Gestión Integral Web

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):

Descargar y montar sitio web completo con Framework ProyectoA PHP

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»:

Descargar y montar sitio web completo con Framework ProyectoA PHP

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:

Descargar y montar sitio web completo con Framework ProyectoA PHP

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.
Descargar y montar sitio web completo con Framework ProyectoA PHP
  • 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:

Descargar y montar sitio web completo con Framework ProyectoA PHP

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»:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Y tendremos acceso web a la aplicación Gestión Integral:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

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»:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

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»:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Ahora el usuario «administrador», desde la aplicación web, podrá dar de alta registros en el módulo Marcajes:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Nos mostrará la ventana para añadir un nuevo marcaje/fichaje para el control de presencia:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Una vez insertado el registro podremos consultarlo, modificarlo o eliminarlo (si tenemos estos permisos):

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

En el ejemplo anterior mostramos la vista de una ventana de listado de registros desde un PC. Desde un dispositivo móvil quedará adaptativa:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Por supuesto, el marcaje dado de alta en la aplicación web quedará registrado para la aplicación de escritorio y viceversa:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Estableciendo los permisos apropiados tendremos acceso web a marcajes y partes de trabajo:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

A módulos de Gestión, a facturas (sólo consulta), presupuestos (sólo consulta), gastos, tipo de gastos, pagos, formas de pago, cobros):

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Al grupo de módulos de Agenda, a Terceros (clientes y proveedores), notas (documentación, anotaciones), contactos, incidencias (tareas):

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Al grupo de Material, a materiales (productos), familias, marcas y modelos:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

Y al grupo de Entorno, a usuarios, menús, permisos de usuarios, parámetros de configuración, contadores:

Acceso a sitio web Gestión Integral desarrollado con Framework ProyectoA PHP y módulos disponibles

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: