El otro día mientras actualizaba a la última versión de Nextcloud 13.0.4, me equivoque dando a F5 en la pestaña que no era y me quede fuera:
Por mi desconocimiento para actualizar Nextcloud por CLI, estuve pensando un rato que hacer y decidí que lo mejor era salirse del modo mantenimiento y dar actualizar de nuevo, ya que cuando di a F5 todavía estaba en el proceso de descarga de la última versión de Nextcloud y no rompería nada. Así que buscando encontré esta página:
https://docs.nextcloud.com/server/12/admin_manual/maintenance/backup.html
Parecía tener la respuesta de como salirse, simplemente cambie ‘on’ por ‘off’ y ya me encontraba en mi Nextcloud de nuevo.
occ es un script PHP que esta en el nuestro directorio nextcloud/, por lo que debemos estar en el para ejecutar el siguiente comando.
1 |
sudo -u www-data php occ maintenance:mode --off |
En este momento pensé que seria tan sencillo como dar de nuevo a actualizar y continuar. Pero cuando terminó vi lo siguiente:
Aquí me quede pillado, navegando no encontré nada de ayuda, ningún caso parecido. En la página de configuración me decía esto:
Ingles: Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our (List of invalid files… / Rescan…)
Castellano: Algunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra documentación. (Listado de archivos inválidos… / Volver a escanear…)
Cuando le das a "List of invalid files…" te sale un listado de los problemas encontrados, si queréis saber más sobre ello tenéis debajo un link que explica que significa cada código.
https://docs.nextcloud.com/server/12/admin_manual/issues/code_signing.html
El único problema que me daba a mi era MISSING_FILE de un porrón de archivos. En la página que cito no decía como solucionar mi problema pero algunos otros si, igual tenéis suerte 🙂 . Así que me tocó investigar un poco más. Pensé en downgradear y actualizar de nuevo pero al parecer no se podía. Se me ocurrió que igual con la actualización manual (aunque lo que realmente queremos hacer es ‘reinstalar’ la versión que tenemos), lo podía solucionar. Entonces, fui a por ello y seguí los pasos de esta página:
https://docs.nextcloud.com/server/12/admin_manual/maintenance/manual_upgrade.html
Todo lo que tenemos que hacer para solucionarlo es lo que nos pide la página: crear un backup y luego 'actualizar'.
A partir de ahora a Nextcloud le llamare NC.
Lo primero que debemos hacer es poner en modo mantenimiento nuestro NC (en nuestra carpeta nextcloud/):
1 |
sudo -u www-data php occ maintenance:mode --on |
con esto bloquearemos las sesiones de los usuarios que tiene la sesión iniciada y que usuarios nuevos la inicien. Todo esto lo debemos hacer en nuestra carpeta nextcloud/.
Nos vamos al directorio padre de Nextcloud y hacemos el backup de toda la carpeta nextcloud/:
1 |
rsync -Aax nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/ |
MySQL/MariaDB
1 |
mysqldump --single-transaction -h [server] -u [username] -p[password] [db_name] > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak |
1 |
ej: mysqldump --single-transaction -h localhost -u root -pESTAESMIPASSWD nextcloud > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak |
SQLite
1 |
sqlite3 data/owncloud.db .dump > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak |
PostgreSQL
1 |
PGPASSWORD="password" pg_dump [db_name] -h [server] -U [username] -f nextcloud-sqlbkp_`date +"%Y%m%d"`.bak |
Con esto habríamos terminado la copia de seguridad.
Empezamos deteniendo nuestro servidor:
1 2 3 |
service nginx stop service apache2 stop service [el servidor que utilices] stop |
Cambiaremos el nombre de nuestra carpeta nextcloud a nextcloud-old.
1 |
mv nextcloud/ nextcloud-old |
IMPORTANTE CAMBIAR EL NOMBRE ANTES DE CONTINUAR SI NO SE SOBRESCRIBIRÁ AL DESCOMPRIMIR EL .ZIP Y PERDEREMOS EL BACKUP.
Descargamos y descomprimimos la versión que estamos utilizando de NC:
1 |
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.4.zip && unzip nextcloud-13.0.4.zip |
Acordaros de cambiar la versión al descargar y descomprimir el archivo. Una vez hecho esto deberíamos tener en el directorio nextcloud-old/ y nextcloud/ (nextcloud recién descomprimido). Ahora lo que nos queda es pasar nuestras configuraciones de el anterior Nextcloud.
Copiamos el archivo config.php de nuestro backup a nextcloud/:
1 |
cp nextcloud-old/config/config.php nextcloud/config/ |
Si tiene el directorio data/ dentro de la carpeta nextcloud-old/, debes copiarla a la nueva carpeta nextcloud/:
1 |
cp nextcloud-old/data nextcloud/ |
Si no, no tienes que hacer nada, ya que esta configurada la ruta al directorio data/ en el config.php que copiamos antes y la actualización no modifica nada de este directorio.
Bien, si tenemos alguna configuración, app especial que no viene con Nextcloud, también la copiaremos a la nueva carpeta. Yo por ejemplo tenia passman que es un gestor de contraseñas que no esta en la tienda de NC y una configuración especial que no quería volver a hacer en la app de Unplash. Así que hice esto:
1 2 |
cp -r nextcloud-old/apps/passman/ nextcloud/apps/ cp -r nextcloud-old/apps/unsplash/ nextcloud/apps/ |
Ahora daremos los permisos recomendados a los directorios y archivos de nuestro directorio nextcloud/:
1 2 3 |
chown -R www-data:www-data nextcloud find nextcloud/ -type d -exec chmod 750 {} \; find nextcloud/ -type f -exec chmod 640 {} \; |
Iniciamos/reiniciamos el nextcloud servidor:
1 2 3 |
service nginx restart service apache2 restart service [el servidor que utilices] restart |
Tan solo nos queda actualizar:
1 |
sudo -u www-data php occ upgrade |
Nota: puede que os salga un warning como el siguiente:
Lo que tenemos que hacer es editar el archivo config.php tal y como nos lo dice, lo cambiamos a false y volvemos a intentarlo.
Y ya estaría solucionado 🙂 . Si te has fijado (a no ser que hayas borrado algo que no debieras), tenemos dos carpetas iguales con nombre distinto:
1 2 |
nextloud-old nextcloud-dirbkp_20180615 |
Puedes borrar una de las dos carpetas si has seguido los pasos correctamente, dado que tienen lo mismo y con una copia es suficiente (si esta en el mismo HDD/SSD). Pero ten cuidado no sea que borres las dos o peor la que no es 🙂 .
Si tenéis alguna duda, preguntad por los comentarios o por el grupo de Telegram. Hasta luego.