SIU-Guarani/preinscripcion3.13.0/instalacion desde cero/instalacion

De SIU
Revisión del 12:28 5 feb 2020 de Lleonardis (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Instalación desde cero

Checkout

  • Crear una carpeta en el sistema de archivos, por ejemplo:
    /usr/local/proyectos/preinscripcion
    Nota: en lo sucesivo denominaremos esta carpeta como <path proyecto Preinscripción>.
  • Efectuar un svn checkout de la URL de la versión 3.13.0 para el nodo correspondiente a su institución. Ejemplo:
    svn checkout https://colab.siu.edu.ar/svn/guarani3/nodos/<siglas institución>/preinscripcion/trunk/3.13.0
  • En caso de no tener creado su nodo en Colab, solicitarlo al SIU mediante el Gestor de Solicitudes (GDS). Se asignarán también los respectivos usuarios.

Permisos de carpetas

En sistemas Linux, es necesario cambiar el propietario de las carpetas "temp", "log" y "cache" de la carpeta "instalacion" al usuario y grupo de Apache. Por ejemplo, para sistemas Ubuntu, donde el usuario y grupo Apache por defecto es "www-data", ejecutar:

chown www-data:www-data -R instalacion/temp
chown www-data:www-data -R instalacion/log
chown www-data:www-data -R instalacion/cache

También es necesario dar permisos de escritura a la carpeta navegable, condición necesaria para poder ejecutar la limpieza de caché APC desde el panel de administración:

chown www-data:www-data -R src/siu/www

Instalar las dependencias del proyecto

Parados sobre el directorio raíz de nuestro proyecto ejecutar el siguiente comando para descargar las dependencias del mismo:

Si se trata de un ambiente de desarrollo:

composer install

Si se trata de un ambiente de producción:

composer install --prefer-dist --no-dev --optimize-autoloader

La carpeta vendor tiene establecida la propiedad svn:ignore y jamas se debe subir al repositorio. Para mas información ver en la Documentación de Composer

Base de datos

Crear una base de datos en PostgreSQL con encoding LATIN1. Ejemplo:

CREATE DATABASE preinscripcion
  WITH ENCODING='LATIN1'
       OWNER=postgres
       TEMPLATE=template0
       LC_COLLATE='C'
       LC_CTYPE='C'
       CONNECTION LIMIT=-1
       TABLESPACE=pg_default;

Usar el archivo "creacion_preinscripcion3_postgresql.sql", que se encuentra en la carpeta "BD/creacion", para crear la estructura de la base de datos. El script está en encoding LATIN1. Ejemplo:

psql -d preinscripcion -h localhost < creacion_preinscripcion3_postgresql.sql -U postgres

Definición de alias de acceso

En la carpeta "instalacion", crear un archivo "alias.conf" a partir de la plantilla "alias_template.conf". Seguir los pasos allí documentados para definir los puntos de acceso de los distintos perfiles funcionales (Administrador y Alumno).

Se deberán definir apropiadamente los alias de los puntos de acceso en función de la ubicación de la carpeta de instalación. Opcionalmente, en la configuración del punto de acceso de administración (<Location ~ "/preinscripcion_admin/*"> … ) se podrían definir restricciones para que sólo se pueda ingresar desde una intranet, siguiendo las reglas de Apache.

Si se desea utilizar una misma instalación de Preinscripción como front-end de varias Unidades Académicas, cada una con su propia base de datos y personalizaciones, se debe seguir el proceso autodocumentado en el archivo, del cual presentamos a continuación un ejemplo:

# Alias del punto de acceso de ALUMNOS del punto de acceso [pto_acc]
# Ejemplo: /preinscripcion/ingenieria
# Reemplazarlo según corresponda
Alias /preinscripcion/[pto_acc] "/path/a/preinscripcion/src/siu/www/"

# Alias del punto de acceso ADMINISTRADOR del punto de acceso [pto_acc]
# Ejemplo: /preinscripcion_admin/ingenieria
# Reemplazarlo según corresponda
Alias /preinscripcion_admin/[pto_acc] "/path/a/preinscripcion/src/siu/www/"

# Configuración del directorio navegable
<Directory "/path/a/preinscripcion/src/siu/www/">
        Options FollowSymLinks
    DirectoryIndex index.php
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Allow from all
    </IfModule>
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
        include /path/a/preinscripcion/instalacion/rewrite.conf
</Directory>

#### CONFIGURACION DE ACCESO [pto_acc]

<Location /preinscripcion/[pto_acc]>
        # --------------------------------------------------------------------------
        # PUNTO DE ACCESO: alumnos de la instalación del punto de acceso [pto_acc]
        # --------------------------------------------------------------------------

        # Nombre o ID del Punto de Acceso. No utilizar espacios.
        # Si se definen varios puntos de acceso, no debe repetirse este valor
        SetEnv ID_PTO_ACCESO [id_pto_acc]

        # Setea el perfil funcional de quienes acceden por este punto de acceso.
        # NO MODIFICAR ESTE VALOR
        SetEnv PERFIL alumno

        # se setea de esta manera para que esta variable sea accesible desde mod_rewrite
        # ATENCIÓN: el alias debe empezar con '/'
        SetEnvIf always_match ^ ACC_ALIAS=/preinscripcion/[pto_acc]
</Location>

<Location /preinscripcion_admin/[pto_acc]>
        # --------------------------------------------------------------------------
        # PUNTO DE ACCESO: admin del punto de acceso [pto_acc]
        # --------------------------------------------------------------------------

        # Nombre o ID del Punto de Acceso. No utilizar espacios.
        # Si se definen puntos de acceso, tener cuidado de no repetir este valor
        # Debe corresponderse con el ID_PTO_ACCESO del perfil 'alumno' que administra este panel de admin.
        SetEnv ID_PTO_ACCESO [id_pto_acc]

        # Setea el perfil funcional de quienes acceden por este punto de acceso.
        # NO MODIFICAR ESTE VALOR
        SetEnv PERFIL admin

        # se setea de esta manera para que esta variable sea accesible desde mod_rewrite
        # ATENCIÓN: el alias debe empezar con '/'
        SetEnvIf always_match ^ ACC_ALIAS=/preinscripcion_admin/[pto_acc]

        # Si se desea restringir las IP desde las cuales acceder al panel de
        # administración, hacerlo aquí.
</Location>

#### FIN CONFIGURACION DE ACCESO [pto_acc]

Para configurar los puntos de acceso, se recomienda abrir el template en un editor de texto y seleccionar y reemplazar todos los [pto_acc] y [id_pto_acc] y así evitar posibles errores en la cofiguración de este archivo.

En caso de que se deseen implementar varios puntos de acceso, basta con duplicar el modelo del template y configurar las variables [pto_acc] y [id_pto_acc] con los datos de los nuevos puntos de acceso.

Esta configuración debe complementarse con la definición del respectivo bloque de acceso en el archivo config.php.

Se debe configurar el servidor Apache para tomar las definiciones del "alias.conf".

Ejemplo 1: se puede incluir en el archivo de configuración de Apache (httpd.conf) la siguiente directiva:

Include "<path proyecto Preinscripción>/instalacion/alias.conf"

Ejemplo 2: En ambientes Linux basados en Debian, se puede definir un link simbólico:

sudo ln -s <path proyecto Preinscripción>/instalacion/alias.conf /etc/apache2/sites-available/preinscripcion.conf
a2ensite preinscripcion.conf
service apache2 reload

Finalmente, reiniciar Apache para que los cambios surtan efecto.

Los datos censales y personales no pueden configurarse por punto de acceso ya que los mismos son definidos por la Institución.

Configuración de LOGIN

En la carpeta "instalacion", crear un archivo "login.php" a partir de la plantilla "login_template.php".

En Preinscripción se dispone de un módulo de login mediante Google y Facebook, que no suplanta al mecanismo de acceso tradicional, con una casilla de e-mail como nombre de usuario, sino que lo extiende y vincula a un usuario del sistema con alguno de los servicios externos habilitados.

La única sección que debería editarse en el archivo "login.php" es "cuentas_ext", en el caso de querer habilitar el módulo de servicios externos.

Como primera medida, establecer "'activo' => true" en el primer nivel de configuración de la citada sección.

  • Para utilizar el login con Google, establecer 'activo' => true dentro de cuentas_ext -> parametros -> proveedores -> google. Seguir el siguiente instructivo para generar una aplicación con la API de Google y obtener los valores para completar los parámetros "app_key" y "app_secret" de la sección de configuración de login.
  • Para utilizar el login con Facebook, establecer 'activo' => true dentro de cuentas_ext -> parametros -> proveedores -> facebook. Seguir el siguiente instructivo para generar una aplicación con la API de Facebook y obtener los valores para completar los parámetros "app_key" y "app_secret" de la sección de configuración de login.

Generación de Usuarios Administradores de Puntos de Acceso

Para crear los usuarios administradores por cada punto de acceso definido en el archivo alias.conf y config.php, dentro de la carpeta 'bin' de Preinscripción (<path proyecto Preinscripción>/bin) ejecutar:

./preinscripcion user_admin

y completar

Ingrese el nombre del usuario administrador (ENTER asume "admin"): [username]
Ingrese el PASSWORD del usuario administrador: [password]
Ingrese el ID DE PUNTO DE ACCESO en el que operara del usuario administrador (ante la duda, verificar el valor de "SetEnv ID_PTO_ACCESO" en alias.conf): [ID_PTO_ACCESO]
---------------------------------------------------------
Se ha creado el siguiente usuario administrador:
 - username: username
 - password: password
 - ID_PTO_ACCESO: ID_PTO_ACCESO
---------------------------------------------------------

Configuración del sistema

Para configurar la interfaz de Preinscripción, se deberán seguir los siguientes pasos:

Configurar archivo config.php

En la carpeta "instalacion", crear un archivo "config.php" a partir de la plantilla "config_template.php".

Este archivo contiene toda la configuración del sistema, incluyendo el acceso a base de datos de Preinscripción y Gestión, servidor de correo y los parámetros propios del sistema y de la generación de comprobantes.

Recomendamos efectuar la configuración siguiendo la documentación "inline" provista en dicho archivo. Tener cuidado de no establecer la variable 'produccion' en 'true' hasta haber completado los pasos de puesta en producción.

Configurar datos a través de la interfaz de Gestión

A través de la interfaz de Gestión, se deberán configurar los siguientes parámetros.

Asimismo, a través de la operación Administrar turnos de presentación de documentación, se podrán crear los turnos para la presentación de documentación por parte de los aspirantes.

Configuración Puntos de Acceso

Finalmente, una vez creados los usuarios administradores para cada punto de acceso, se deberán configurar sus correspondientes perfiles de datos. Esto permitirá que los diferentes puntos de acceso puedan ser administrados de forma independiente. Asimismo, los formularios de datos censales y personales solicitados no podrán configurarse independientemente sin realizar primero una personalización. Cualquier cambio realizado en los formularios de Preinscripción, se impactarán en todos los puntos de acceso.

Para conocer mas detalles sobre la configuración a través del Panel de Administración, acceda aquí.

Personalizaciones

Si desea implementar personalizaciones (y solicitó al SIU una URL de checkout preparada a tal efecto), puede seguir la documentación pertinente.

Puesta en producción

Se hayan efectuado o no personalizaciones, por cuestiones de performance, antes de poner el sistema en producción se deben compilar los recursos mediante el comando "preinscripcion" de la carpeta "bin":

preinscripcion compilar_recursos

Finalmente, establecer la variable "produccion" en "true" en el archivo "config.php".

< Volver