Es importante:
Actualizar SIVeL y el sistema operativo aproximadamente cada 6 meses, para cerrar posibles fallas de seguridad o funcionalidad descubiertas en ese lapso.
Mantenerse informado de novedades, por ejemplo mediante
la lista
sivel-soporte@lists.sourceforge.net
Capacitarse para realizar actualizaciones periódicas al sistema operativo y a SIVeL.
La actualización de un SIVeL genérico o con personalizaciones simples (módulos, tablas básicas, interfaz y reinterpretaciones, ver Capítulo 6, Personalización) puede hacerla un administrador de red siguiendo las instrucciones de esta sección.
Para actualizar fuentes con personalizaciones profundas (por ejemplo con módulos desarrollados para una organización) es necesario que un desarrollador con conocimientos de PHP, SQL y seguridad informática, mezcle actualizaciones del SIVeL genérico a las fuentes personalizadas y actualicé los módulos particulares.
El proceso de actualización consta de dos partes: primero
actualizar las fuentes y después ejecutar la herramienta de
actualización actualiza.php
en cada sitio.
Estos pasos son más simples para pasar de una versión menor a otra, pero requieren más
detalles al pasar de una versión 1.1.x a 1.2.
Descargue fuentes de la versión 1.2 más recientes con uno de los siguientes métodos:
Descargue las fuentes más recientes desde
http://sivel.sourceforge.net/1.2/,
ubiquelas en el servidor y descomprímalas. Si las descarga con
chrome desde el servidor posiblemente quedarán en el directorio
Documentos
de su cuenta personal por lo que puede
descomprimir y remplazar fuentes anteriores. Usando OpenBSD adJ sería
con:
cd ~/Documentos tar xvfz SIVeL-1.2.3.tar.gz sudo chown $USER:$USER /var/www/htdocs/sivel/ cp -rf SIVeL-1.2.3/* /var/www/htdocs/sivel/
Si desea emplear las fuentes de desarrollo descárguelas y cópielas con
cd ~ mkdir tmp2 cd tmp2 git clone https://github.com/pasosdeJesus/SIVeL.git sudo chown $USER:$USER /var/www/htdocs/sivel cp -rf SIVeL/* /var/www/htdocs/sivel
Si ya tiene unas fuentes que tengan control de versiones (con el directorio .git), actualicelas asi:
cd /var/www/htdocs/sivel git pull
Después debe asegurarse de tener configurado nginx para
acceder a SIVeL en su nueva ubicación
/var/www/htdocs/sivel/
.
Para esto edite el archivo de configuración con:
sudo xfw /etc/nginx/nginx.conf
Busque una línea con:
root "/var/www/htdocs";
y si la encuentra remplázela por:
root "/var/www/htdocs/sivel";
Complete reiniciando nginx con
sudo sh /etc/rc.d/nginx restart
Termine ejecutando la herramienta de actualización, abriendo SIVeL con un navegador pero agregando a la dirección
actualiza.php
(e.g. desde el mismo servidor sería https://127.0.0.1/actualiza.php).
Este mismo procedimiento debe realizarlo si activa módulos.
Esta actualización es bastante compleja, se recomienda dejar su versión 1.1 utilizable con propósitos de auditoria y respaldo.
Actualice a la versión más reciente de SIVeL 1.1 (1.1.7 en el momento de este escrito), siguiendo las instrucciones de http://sivel.sourceforge.net/1.1/actualizacion-sivel.html
En cada sitio que convertirá asegurse de tener un usuario administrador que le permita completar el proceso una ve migrado a 1.2
En cada sitio valide sus datos desde el menú Otros->Validar. Examine el reporte y corrija las inconsistencias en su base, puede ejecutar varias veces el procedimiento de validación hasta asegurarse de tener datos consistentes. Esto es muy importante porque para la conversión a 1.1 sólo esperamos que se conviertan datos correctos en datos correctos.
Aviso | |
---|---|
Los datos incorrectos o inconsistentes pueden perderse al convertirlos a la versión 1.2. |
Respalde las fuentes completas:
sudo cp -rfp /var/www/htdocs/sivel /var/www/htdocs/sivel11
Por cada sitio que vaya a migrar ejecute:
cd /var/www/htdocs/sivel/sitios/primersitio ../../bin/mueve.sh /var/www/htdocs/sivel11/ primersitio11
Que dejará las fuentes en /var/www/htdocs/sivel11
con un sitio primersitio11
con copia de sus datos en una base también de nombre primersitio11
.
Para poder ingresar en un nuevo URL, digamos
http://127.0.0.1/sivel11/primersitio11
en el archivo /etc/nginx/nginx.conf
en la sección del servidor https donde opere SIVeL añada:
location ~ ^/primersitio11/(.+\.php)$ { alias /htdocs/sivel11/$1; fastcgi_pass unix:run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location /primersitio11/ { alias /htdocs/sivel11/$1; }
Reinicie nginx:
sudo sh /etc/rc.d/nginx restart
Cree los enlaces necesarios en el directorio
sivel11/sitios
. Puede ver la manera intentando ingresar
al URL, debe ser algo de la forma:
cd /var/www/htdocs/sivel11/sitios ln -s primersitio11 127.0.0.1_PRIMESITIO11
Verifique que opera su sitio desde un navegador por ejemplo desde el mismo servidor con https://127.0.0.1/primersitio11/
Cuando complete el procedimiento anterior con todos los sitios, se recomienda borrar las fuentes de de la versión 1.1 de su ubicación anterior. Por ejemplo para eliminar un sitio:
cd /var/www/htdocs/sivel/sitios rm -rf primersitio
O si ya migró todos los sitios puede borrar el directorio
completo con fuentes de SIVeL 1.1:
/var/www/htdocs/sivel
Instale SIVeL 1.2, bien con el paquete disponible en adJ-5.7 o siguiendo los mismos pasos descritos en
Sección 3.1, “Actualización de versiones menores (e.g 1.2b1 a 1.2b2)”.
Asegurse de ejecutar conf.sh
:
cd /var/www/htdocs/sivel/ ./conf.sh -i
SIVeL 1.2 para las búsquedas
que no tienen en cuenta tildes emplea la extensión
unaccent
, la cual para su
instalación requiere que el usuario dueño de la
base de datos sea superusuario.
Para convertir un usuario sivel
en superusuario:
sudo su - _postgresql psql -h/var/www/var/run/postgresql -Upostgres template1 ALTER ROLE sivel WITH SUPERUSER;
SIVeL 1.2 emplea codificación UTF-8 por lo que deben recodificarse datos de las bases provenientes de 1.1. Para esto basta sacar copia de la base usando 1.1 y restaurarla en una base ya creada pero sin datos para 1.2.
Si movió su sistema 1.1 como se describió en esta sección y dejo las ubicaciones por defecto, basta que ejecute:
cd /var/www/htdocs/sivel/ ./conf.sh -i
Por cada sitio que ya haya copiado cree una base en blanco pero con codificación UTF-8:
cd /var/www/htdocs/sivel/sitios/ SIN_ESQUEMA=1 SIN_DATOS=1 ./nuevo.sh primersitio
Si al hacerlo tiene problemas de clave, debe configurar en el archivo primersitio12/conf.php. Puede examinar la clave del usuario SIVeL que emplea en 1.1, ubicandose en el directorio con fuentes de esa versión y ejecutando:
sudo grep "dbclave *=" sitios/primersitio11/conf.php
Restaure los datos de la base respaldada (cambie el nombre de la base y el día de acuerdo a su caso):
cd primersitio ../../bin/restaura.sh /var/www/resbase/movido-primersitio-dump-03.sql.gz
Configure nginx para abrir el nuevo sitio en /etc/nginx/nginx.conf
:
location ~ ^/primersitio/(.+\.php)$ { alias /htdocs/sivel/$1; fastcgi_pass unix:run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location /primersitio/ { alias /htdocs/sivel/$1; }
A continuación reinicie el servidor web:
sudo sh /etc/rc.d/nginx restart
Haga utilizable su sitio con todas las formas de conexión que tenga a su base por ejemplo si típicamente desde la red local emplea: https://192.168.44.10/primersitio/ para ingresar a un sitio, ejecute:
cd /var/www/htdocs/sivel/sitios/ ln -s primersitio 192.168.44.10_PRIMERSITIO
y pruebe desde URLs acordes a los enlaces por ejemplo:
https://192.168.44.10/primersitio/
.
Haga lo mismo con otras ubicaciones, el nombre del enlace que debe crear lo verá al intentar abrir SIVeL. Asegurese también de dejar un enlace al mismo servidor:
cd /var/www/htdocs/sivel12/sitios/ ln -s primersitio 127.0.0.1_PRIMERSITIO
Convierta sus datos. Para esto basta que ejecute la herramienta de actualización que debería estar disponible desde el mismo servidor en https://127.0.0.1/actualiza.php. Es posible que al autenticarse vea mensajes de error que tipicamente puede ignorar y que tenga que iniciar la sesión 2 o 3 veces mientras se actualiza en cada intento la forma de cifrado de las claves[5].
Una vez pueda ingressar y actulizar recomendamos que copie la bitacora de lo realizado y de posibles errores en el proceso, pues estos si son importantes y pueden requerir correcciones.
Audite los datos convertidos. Por ejemplo puede verificar que el número de casos coincidan, así como los conteos por víctimas individuales.
Para hacer una auditoria más intensiva se sugiere que genere un reporte general de todos los casos del sistema 1.1 y un reporte general en el 1.2 y los compare teniendo en cuenta que ha cambiado un poco el formato del reporte general (Si en su base ha registrado acciones bélicas active el módulo respectivo antes de realizar las comparaciones).
Abra dos pestañas en su navegador en una realice un reporte general con todos los datos de la base anterior y en la otra el mismo reporte en la base nueva. Después:
cd /var/www/htdocs/sivel/sitios/sivel mkdir compara-migra cd compara-migra/
Pegue los datos de la base anterior en un archivo que puede iniciar con:
xfw anterior.txt
Después pegue los del nuevo SIVeL en otro archivo digamos ábralo con:
xfw nuevo.txt
A continuación compare diferencias entre ambos archivos con:
diff anterior.txt nuevo.txt | less
Verá sus resultados con el paginador less.
[5] En caso de que tenga incoveniente reiterativos con claves asegurese que en la base de datos se esté almacenando el condensado bcrypt de la clave y no los antiguos SHA-256 y MD5.