— Esto es un borrador —
Descripción
Este manual indica como hacer la instalación del backend de SGDEA OrfeoNG v2.0 partiendo de los fuentes en un Debian 12 o Ubuntu 24.04 o Windows XAMP.
Prerequistos
Arrancamos con un Linux preferible Kuine-LAMP v6.2 o Kuine-LAMaP v6.2 actualizado o con un Windows usando XAMP configurado según esta guia.
Configuración
1. Descargue el backend del repositorio
$> git config --global http.sslVerify false ### Para que no moleste por el certificado $> git clone https://aruba.skinatech.com/Orfeo-NG/ng_backend.git
Ingrese su usuario y contraseña para descargar, esto descarga el master y deber ser suficiente.
Si hace falta cambiarse de rama .. pude hacerlo con este comando (por ejemplo)
$> git checkout develop $> git pull origin develop
2 Instalar los paquetes de terceros mediante composer
Cámbiese a la carpeta ng_backend e instale los plugins necesarios para Yii2
Puede revisar la guia en https://www.yiiframework.com/doc/guide/2.0/es/start-installation
$> composer --version
** todas las restricciones de kuine molestan (/etc/php/8.x/cli/php.ini) así que coméntelas (luego las vuelve a activar)
open_basedir
allow_url_open
disable_functions *exec* curl* proc_open
Cambiese al directorio y ejecute
$> composer install No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information. Loading composer repositories with package information Updating dependencies Lock file operations: 162 installs, 0 updates, 0 removals - Locking 2amigos/qrcode-library (1.1.0) - Locking almasaeed2010/adminlte (v2.4.18) - Locking bacon/bacon-qr-code (1.0.2) - Locking behat/gherkin (v4.9.0) ...... - Installing yiisoft/yii2-faker (2.0.5): Extracting archive - Installing phpspec/php-diff (v1.1.3): Extracting archive - Installing yiisoft/yii2-gii (2.2.6): Extracting archive - Installing swiftmailer/swiftmailer (v6.3.0): Extracting archive - Installing yiisoft/yii2-swiftmailer (2.1.3): Extracting archive 33 package suggestions were added by new dependencies, use `composer suggest` to see details. Package swiftmailer/swiftmailer is abandoned, you should avoid using it. Use symfony/mailer instead. Generating autoload files 78 packages you are using are looking for funding. Use the `composer fund` command to find out more!
Tengo 1 abandonado .. pero ese sugerido no funciona bien con Outlook
3 Inicie el framework YII
En ese mismo directorio, ejecute el inicio de Yii con
$> php init
Seleccionar 0 ó 1 de acuerdo al entorno que se desee utilizar:
$> Yii Application Initialization Tool v1.0
Which environment do you want the application to be initialized in?
[0] Development [1] Production
Your choice [0-1, or "q" to quit]
Escribir yes y pulsar la tecla Enter para confirmar el paso:
Initialize the application under 'Development' environment? [yes|no] yes
Y listo ..
OJO con los directorios en que debe escribir .. OJO ** Protéjalos desde apache (ya kuine lo hace)
Si esta en un Kuine / Linux ejecute los siguientes comandos
chmod 0777 api/runtime
chmod 0777 api/web/assets
chmod 0777 backend/runtime
chmod 0777 backend/web/assets
chmod 0777 console/runtime
chmod 0777 frontend/runtime
chmod 0777 frontend/web/assets
chmod 0755 yii
$** Hemos tenido problemas con el api/runtime (aunque esta 777) y creamos y ponemos permisos de paso al contenido
$*** cd api/runtime
$*** mkdir cache debug logs mpdf
$*** chown -R www-data:www-data cache debug logs mpdf
4. Configuración
Yii necesita de archivos de configuración y parámetros para poder conectarse con bases de datos, correos, entre otros los cuales no se encuentran agregados en el repositorio por temas de seguridad de contraseñas.
Hay archivos con la extensión .dist de los cuales se debe crear una copia con el mismo nombre exceptuando la extensión .dist y configurar las contraseñas de acceso según el ambiente con el que se desea trabajar
api/web/index.php
Sobreescriba a partir del archivo de ejemplo: /api/web/index.php.dist en la ruta /api/web/
$> cp index.php.dist index.php
Confirmar que las variables de entorno se encuentren correctamente configuradas de acuerdo al entorno con el se esté trabajando [desarrollo | producción]
defined('YII_DEBUG') or define('YII_DEBUG', true); // [true | false] ** Debe ser false en produccion
defined('YII_ENV') or define('YII_ENV', 'dev'); // [dev | prod]
$** OJO que Yii no hace esto bien. Si lo deja en produccion no hay ningun mensaje de debug
api/config/params-local.php
$> cp params-local.php.dist params-local.php
Asegure que los valores son los correctos
– llaveAES: cambien la llave de AES por un larga .. EJM: pwgen -y 30 (esta tiene que estar en el front tambien)
– debugAES : // [TRUE,FALSE]
– ipServer: Es la direccion publica del aplicativo. (Esto es usado para las notificaciones con Link .. para que pueda entrar)
ejm: ‘http://demong1.skinatech.com/orfeo-ng/#/’, ********* OJO .. termina en /
$*** puede ser https pero si escoge ir por SSL .. entonces todo debe ser https hasta los sockets
– urlBaseApiPublic: La ruta de la pagina publica de PQRs
ejm: ‘http://demong1.skinatech.com/ng_backend/frontend/web/’, //Ruta de página pública
– debugEmail: Es para etapa de desarrollo .. donde recibe todas las notificaciones.
Conexion a la autenticacion externa con protocolo LDAP (LDAP o AD) los parametros son estandares y reconocidos (ojo con el SSL del AD)
– ‘ldapServer‘ => ‘192.168.69.217’,
– ‘cadenaBusqLDAP‘ => ‘ou=People,o=skinatech,dc=com’,
– ‘campoBusqLDAP‘ => ‘uid’,
– ‘adminLDAP‘ => ‘cn=Manager,dc=skinatech,dc=com’,
– ‘paswLDAP‘ => ‘agh0la$p8U’,
Usuario y clave de la página pública (Usuario Anónimo, utilizado para login automático)
– ‘userPublicPage => ‘anonimo’,
– ‘passwordPublicPage => ‘4n0N1m0$’,
Por Ultimo el tipo de BD
– motorDB: Motor utilizado para la basede datos principal: [‘MySQL – MariaDB’, ‘POSTGRESQL’, ‘MSSQL’, ‘ORACLE’]
– Comente lo que no necesita
NOTA: Lo que están common son parámetros de toda la aplicación mientras que los del api solo sirven para el backend.
common/config/main-local.php
Sobreescriba a partir del archivo de ejemplo: /common/config/main-local.php.dist en la ruta /common/config/
$> cp main-local.php.dist main-local.php
Nota: En este se deben configurar las credenciales de la conexión a base de datos y el envío de correos que se configuró anteriormente. En el mismo archivo hay varios ejemplos para las bases de datos soportadas.
EJM:
'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'MySQL - MariaDB:host=127.0.0.1;dbname=orfeong_db', 'username' => 'orfeong_usr', 'password' => 'aeCh7zu1Oova0oe2esio', 'charset' => 'utf8', ],
common/config/params-local.php
$> cp params-local.php.dist params-local.php
$** Si no se puede cambiar su configuracion .. para que lo tengo aqui .. !! ??
5. Crear directorios para almacenamiento de archivos de la aplicación
En el mismo directorio de backend, se deben crear las siguientes carpetas donde se almecenaran los archivos generados por la aplicación
$> mkdir api/web/trd_formats api/web/tmp_mail api/web/bodega api/web/expendientes_paz_y_salvo api/web/bar_code_consecutivos api/web/bodega/cierre_expediente api/web/bodega/downloads api/web/bodega/indices_xml
y asignarle permisos 775 con permisos de apache
$> cd api/web/ $> mkdir actas/ cuadro_documental/ documentos/ plantillas/ tmp_docs/ tmp_masiva/ user_formats/ usuarios/ trd_formats/ tmp_mail/ bodega/ gestion_archivo/ expendientes_paz_y_salvo/ bar_code_consecutivos $> chown www-data:www-data actas/ cuadro_documental/ documentos/ plantillas/ tmp_docs/ tmp_masiva/ user_formats/ usuarios/ trd_formats/ tmp_mail/ bodega/ gestion_archivo/ expendientes_paz_y_salvo/ bar_code_consecutivos $> chmod 755 actas/ cuadro_documental/ documentos/ plantillas/ tmp_docs/ tmp_masiva/ user_formats/ usuarios/ trd_formats/ tmp_mail/ bodega/ gestion_archivo/ expendientes_paz_y_salvo/ bar_code_consecutivos $> cd ng_backend $> chown -R www-data:www-data vendor/
$** Esto toca corregirlo eventualmente porque por ahora lo parchamos con Apache.. pero no es presentable y es una vulnerabilidad de seguridad
Funciones a desbloquear
Recuerde en los Linux / Kuines
quitar bloqueo de exec()
php.ini habilitar proc_open
Trucos
Problemas
Referencias
–
FIN