Skip to main content

Instalación - BackEnd

Grama es un proyecto desarrollado por el Área de Políticas Públicas de la Universidad Nacional de Cuyo.

El mismo consiste en una plataforma para la visualización de datos estadísticos que pone en valor la información y los datos que generan las diferentes áreas del organismo que la implementa, facilitando el registro, almacenamiento y la visualización de indicadores e información significativa para tener en cuenta durante los procesos de toma de decisiones y para el establecimiento de alertas que permitan anticipar situaciones críticas y/o significativas.

Este sistema posee dos componentes principales: Indicadores de Gestión (IG) y Monitoreo y Evaluación de Programas (M&E).


Estructura de directorios

  assets/             contains assets definition
  commands/           contains console commands (controllers)
  config/             contains application configurations
  controllers/        contains Web controller classes
  mail/               contains view files for e-mails
  models/             contains model classes
  runtime/            contains files generated during runtime
  tests/              contains various tests for the basic application
  vendor/             contains dependent 3rd-party packages
  views/              contains view files for the Web application
  web/                contains the entry script and Web resources

Requerimientos

Los requerimientos mínimos para la ejecución de este proyecto es que su servidor admita PHP 7.4 y contar con los siguientes paquetes: composer, git, mysql, apache2 web server.


Instalación

Descargar archivos

Primero es necesario clonar el repositorio en un directorio local por ej: /var/www/grama-backend.

$ cd /var/www
$ git clone https://github.com/uncuyoapp/grama-backend.git grama-backend


Instalar paquetes necesarios

Instalaremos los paquetes necesarios para el correcto funcionamiento de la plataforma mediante el gestor de paquetes Composer.

$ cd grama-backend
$ composer install

Comprobar los requisitos del framework yii2

La plataforma ha sido desarrollada utilizando el framework Yii2, por lo que deberemos comprobar si el servidor cumple con los requisitos para su correcto funcionamiento.

$ php requirements.php

Es necesario analizar la salida del script y efectuar las acciones requeridas por el mismo.


Configuración

Directorios y permisos

Para el correcto funcionamiento de la plataforma es necesario asignar permisos 777 al directorio runtime dentro de la aplicación.

$ chmod -R 777 runtime/ 

Luego es necesario copiar el directorio web que contiene el script de entrada y los recursos web necesarios a un directorio publicado por el servidor apache2, por ej: /var/www/html/backend.

$ cp -R web/ /var/www/html/backend

Crearemos un directorio para alojar el caché de assets utilizados por la plataforma. Note que deberá cambiar el nombre uncuyo por el usuario owner del directorio y el nombre www-data por el usuario con el que se ejecuta apache2.

$ mkdir /var/www/html/backend/assets
$ chown uncuyo:www-data /var/www/html/backend/assets

Proceder a editar el script de entrada con las rutas correctas:

$ cd /var/www/html/backend
$ vi index.php
//defined('YII_DEBUG') or define('YII_DEBUG', true); //habilitar debug
defined('YII_DEBUG') or define('YII_DEBUG', false); //deshabilitar debug (production)
//defined('YII_ENV') or define('YII_ENV', 'dev'); //habilitar entorno develop
defined('YII_ENV') or define('YII_ENV', 'prod'); //habilitar entorno production

require(__DIR__ . '/../../grama-backend/vendor/autoload.php'); //ruta completa hasta el directorio de la app
require(__DIR__ . '/../.../grama-backend/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../../grama-backend/config/web.php');

Ahora debería poder acceder a la aplicación a través de la siguiente URL.

http://localhost/backend/

Seguridad

Establezca la clave de validación de cookies en el archivo config/web.php con alguna cadena secreta aleatoria:

'request' => [
    // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation
    'cookieValidationKey' => '<secret random string goes here>',
],

Base de datos

Editar el archivo config/db.php con los datos de conexión a la base de datos, por ej:

return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=grama',
    'username' => 'root',
    'password' => '1234',
    'charset' => 'utf8',
    ...
];

Notas:

  • No se creará la base de datos por ti, esto debe hacerse manualmente antes de que puedas acceder a ella.
  • Verifique y edite los otros archivos en el directorio config/ para personalizar su aplicación según sea necesario.

Una vez configurado el acceso a la base de datos procederemos a ejecutar el script de inicialización de la misma.

$ cd /var/www/grama-backend/
$ ./yii migrate

El script nos pedirá que confirmemos la migración ingresando yes, luego efectuará la inicialización de la base de datos.

Por defecto, el sistema crea un usuario root con el password 123456789.