Ir al contenido

Actualizar Nextcloud

Es importante mantener nuestro servidor Nextcloud actualizado con las últimas correcciones de seguridad y errores. Este tutorial te mostrará cómo hacerlo utilizando la aplicación de actualización, que automatiza muchos pasos de una actualización manual.

Copia de seguridad de Nextcloud

Es necesario realizar una copia de seguridad de la base de datos y el archivo de configuración de NextCloud.

Para realizar una copia de seguridad de la base de datos de NextCloud, primero debe averiguar el nombre de la base de datos ejecutando el siguiente comando en tu servidor NextCloud.

sudo mysql -u root -e «show databases»

Si tu MariaDB requiere autenticación por contraseña, ejecuta este comando en tu lugar. Introduce la contraseña del usuario root de MariaDB/MySQL.

mysql -u root -p -e «show databases»

Verás algo similar a lo siguiente:

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| nextcloud |
| performance_schema |
+--------------------+

Como puedes ver, el nombre de mi base de datos NextCloud es nextcloud. Una vez que hayas identificado el nombre de la base de datos NextCloud, utiliza la utilidad mysqldump para realizar una copia de seguridad como se muestra a continuación. Reemplaza el texto en rojo por el nombre de tu propia base de datos NextCloud.

sudo mysqldump -u root nextcloud-database-name > ~/nextcloud.sql

o

mysqldump -u root -p nextcloud-database-name > ~/nextcloud.sql

El comando anterior crea un archivo de respaldo (nextcloud.sql) en tu directorio de inicio y se puede utilizar para restaurar la base de datos de Nextcloud si ocurre algún problema.

Copia de seguridad de la carpeta de configuración de NextCloud

Para realizar una copia de seguridad de la carpeta de configuración de NextCloud, primero accede al directorio de instalación de NextCloud. (Dependiendo de tu configuración, el directorio de instalación de NextCloud puede ser diferente. Por ejemplo, si has configurado NextCloud con LAMP stack, el directorio podría ser /var/www/nextcloud/. Si has configurado NextCloud con LEMP stack, el directorio de datos podría ser /usr/share/nginx/nextcloud/).

cd /var/www/nextcloud/

A continuación, utiliza tar para hacer una copia de seguridad de la carpeta de configuración.

sudo tar -cpzvf ~/nextcloud-config.tar.gz config/

Dado que el archivo config.php solo puede ser leído por el servidor web, tenemos que añadir sudo. El archivo de copia de seguridad (nextcloud-config.tart.gz) se colocará en tu directorio de inicio.

Ahora actualicemos NextCloud.

Nota: Debes actualizar a la última versión puntual antes de actualizar a la siguiente versión principal.

Actualizar Nextcloud desde la línea de comandos

El método de la línea de comandos es más eficiente y verás menos errores en comparación con la aplicación de actualización basada en web. Si tu instancia de Nextcloud tiene muchos usuarios y archivos, debes utilizar es método indefectiblemente.

Ve al directorio de instalación de NextCloud. (Dependiendo de tu configuración, el directorio de instalación de Nextcloud puede ser diferente. Por ejemplo, si has configurado Nextcloud con la pila LAMP, el directorio podría ser /var/www/nextcloud/. Si haz hecho con la pila LEMP, el directorio de datos podría ser /usr/share/nginx/nextcloud/).

cd /var/www/nextcloud/

A continuación, ejecuta el actualizador basado en la línea de comandos.

sudo -u www-data php8.1 updater/updater.phar --no-interaction

www-data es el nombre de usuario del servidor web, que puede ser diferente en tu sistema.

  • En Debian/Ubuntu, suele ser www-data,
  • En CentOS/RHEL, suele ser apache para el servidor web Apache y nginx para el servidor web Nginx.
  • En Arch Linux, suele ser http.

Actualizar Nextcloud desde la línea de comandos

Ejecuta la rutina posterior a la actualización.

sudo -u www-data php8.1 /var/www/nextcloud/occ upgrade

sudo -u www-data php8.1 /var/www/nextcloud/occ db:add-missing-indices

sudo -u www-data php8.1 /var/www/nextcloud/occ db:convert-filecache-bigint

Una vez completada la actualización, ve a la página Configuración -> Descripción general y verás que tu versión de Nextcloud está actualizada.

Nota: No olvides volver a habilitar las aplicaciones de terceros después de la actualización.

Puedes crear una tarea Cron para que Nextcloud se actualice automáticamente. Edita el archivo crontab del usuario www-data.

sudo -u www-data crontab -e

Añade la siguiente línea al final de este archivo. Debes sustituir /var/www/nextcloud/ por tu propio directorio de instalación de Nextcloud.

0 3 * * * php8.1 /var/www/nextcloud/updater/updater.phar --no-interaction; php8.1 /var/www/nextcloud/occ app:update --all

Guarda y cierra el archivo. La tarea Cron se ejecutará cada día a las 3 de la madrugada.

Consejos para la resolución de problemas

Actualización

A veces, una actualización puede fallar debido a la incompatibilidad de PHP. Puedes intentar actualizar a una nueva versión de PHP, como PHP8.1 -> PHP8.3, y luego volver a ejecutar el comando de actualización.

Archivos adicionales

Al actualizar Nextcloud, es posible que aparezca este error:

Se han encontrado los siguientes archivos adicionales:

.well-know

Puedes hacer una copia de seguridad de estos archivos «adicionales», eliminarlos y volver a intentar la actualización. Una vez finalizada la actualización, vuelve a colocar estos archivos.

504 Gateway Timeout

Si la descarga ha fallado debido a un error 504 Gateway Timeout, deberás reiniciar PHP-FPM.

sudo systemctl restart php8.1-fpm

Error al descargar el archivo ZIP de Nextcloud

Si te encuentras con el siguiente error, es probable que se deba a que tu servidor no ha podido descargar el nuevo archivo ZIP de Nextcloud.

El paso 4 está actualmente en proceso. Vuelve a cargar esta página más tarde.

Debes conectarte por SSH a tu servidor Nextcloud y cambiar al usuario root.

sudo su -

Ve al directorio de datos de Nextcloud. (Dependiendo de tu configuración, tu directorio de datos puede ser diferente. Por ejemplo, si has configurado Nextcloud con LAMP stack, el directorio de datos podría ser /var/www/nextcloud-data/. Si lo haz hecho con la pila LEMP, el directorio de datos podría ser /usr/share/nginx/nextcloud-data/).

cd /usr/share/nginx/nextcloud-data/

En este directorio, hay un subdirectorio que comienza por updater. Puedes ejecutar el comando ls para listar los archivos y subdirectorios.

ls

El mío se llama updater-ocao79wqklov, así que cambio a este subdirectorio.

cd updater-ocao79wqklov

A continuación, enumera todos los archivos y subdirectorios, incluidos los ocultos.

ls -a

Encontrarás un archivo .step y un subdirectorio de descargas. El archivo .step realiza un seguimiento del estado de la actualización. Debemos eliminar este archivo.

rm .step

A continuación, ve al subdirectorio de descargas.

cd downloads/

Elimina el archivo ZIP descargado.

rm nextcloud-*.zip

A continuación, descargamos manualmente el archivo ZIP de Nextcloud con el siguiente comando. Obviamente, debe sustituir 30.0.13 por la versión de Nextcloud a la que deseas actualizar.

wget https://download.nextcloud.com/server/releases/nextcloud-30.0.13.zip

Una vez completada la descarga, vuelve a la aplicación de actualización basada en web y haz clic en el botón «Iniciar actualización».

Repara tu instalación de Nextcloud

Si no puedes solucionar un error con los consejos anteriores, puedes utilizar el comando de reparación de Nextcloud. Ve al directorio de instalación de Nextcloud y ejecuta el siguiente comando.

sudo -u www-data php8.1 occ maintenance:repair

¿No puedes actualizar a la próxima versión principal?

Una versión estable importante puede tardar algún tiempo en incluirse en el canal de actualización estable, ya que puede haber algunas aplicaciones que no tengan actualizaciones para ella.

Por ejemplo, Nextcloud 31 es ahora la última versión estable, en caso que la aplicación de actualización basada en web no permita actualizar a Nextcloud 31, debes cambiar el canal de actualización de estable a beta.

 

linuxbabe.com