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.