- Requisitos y entorno del servidor utilizado.
- ¿Dónde puedo encontrar las advertencias de seguridad y configuración en Nextcloud?
- Preparativos: administrar Nextcloud a través de SSH
- ¿Qué es OCC en Nextcloud?
- Haz una copia de seguridad de antemano
- Advertencia de Nextcloud: establecer el inicio de la ventana de mantenimiento
- Configurar ventanas de mantenimiento a través de OCC
- Verificar ventana de mantenimiento
- Migraciones de tipo MIME de Nextcloud disponibles: corregir errores
- Realizar migraciones de tipo MIME
- Nextcloud: Agregar índices de bases de datos faltantes
- Crear automáticamente índices de bases de datos faltantes
- Nextcloud: Reparar la resolución del proveedor OCS y el proveedor OCM
- Verifique el módulo de reescritura de Apache2
- Marque Apache2 AllowOverride
- Actualizar Nextcloud .htaccess
- Anular la URL de la CLI de Nextcloud
- Establecer el dominio público de Nextcloud
- Configure correctamente Nextcloud detrás de Nginx Proxy Manager
- ¿Qué son los dominios_de_confianza?
- ¿Qué son los proxy_confiados?
- Configurar HTTPS con protocolo de sobrescritura
- Nextcloud: establecer la región del teléfono predeterminada
- Configurar o deshabilitar el demonio de aprovisionamiento de Nextcloud AppAPI
- ¿Qué es un demonio de implementación de AppAPI?
- Deshabilite AppAPI cuando no sea necesario
- Habilite la autenticación de dos factores de Nextcloud
- Hacer obligatoria la autenticación de dos factores
- Configurar la ID del servidor Nextcloud
- Verificar ID del servidor
- Encuentre y corrija errores del protocolo Nextcloud
- Encuentre el archivo de registro de Nextcloud
- Verifique los registros de Apache2
- Causas comunes de errores de registro de Nextcloud
- Configure correctamente los trabajos cron de Nextcloud
- Verifique el trabajo cron de Nextcloud
- Actualice Nextcloud correctamente: actualización y actualizador de OCC
- Verifique la versión instalada de Nextcloud
- Actualice Nextcloud a través de la línea de comando
- Verifique el modo de mantenimiento después de una actualización
- Ejecute comandos de mantenimiento adicionales después de la actualización
- Verifique la versión de PHP y la configuración de PHP
- Diferencia entre PHP CLI y PHP en servidor web
- Acelere Nextcloud con Redis y APCu
- Utilice APCu como caché local
- Usando Redis para bloquear archivos
- Limpiar la papelera y las versiones de archivos de Nextcloud
- Vaciar la papelera de un usuario
- Eliminar versiones antiguas de archivos
- Otras configuraciones importantes de seguridad y rendimiento de Nextcloud
- Certificados HTTPS y SSL
- encabezado de seguridad HTTP
- Verificar permisos de archivos
- Proteger el directorio de datos de Nextcloud
- Mantener la base de datos regularmente
- Preguntas frecuentes sobre cómo solucionar las alertas de Nextcloud
- ¿Todas las alertas de seguridad de Nextcloud son críticas?
- ¿Pueden desaparecer las advertencias de Nextcloud después de una actualización?
- ¿Qué significa No se requiere actualización en Nextcloud?
- ¿Tienes que reparar Nextcloud después de cada actualización?
- ¿Nextcloud necesita absolutamente Redis?
- ¿Puedes ejecutar Nextcloud sin Docker?
- ¿Tiene que reiniciar Apache2 después de realizar cambios en config.php?
Cualquiera que ejecute Nextcloud en su propio servidor encontrará periódicamente varias advertencias de seguridad y configuración en la configuración de administración. Aparecen, por ejemplo, tras una actualización, un cambio en la configuración del servidor o cuando se han añadido nuevas funciones.
No todas las advertencias significan automáticamente que Nextcloud no es seguro o no funciona correctamente. A menudo se trata de entradas de configuración que faltan, índices de bases de datos adicionales, migraciones incompletas o problemas con el servidor web. Sin embargo, no debes ignorar permanentemente los mensajes, ya que algunos de ellos pueden afectar la seguridad, el rendimiento o la confiabilidad de tu instalación de Nextcloud.
En mi caso, ejecuto Nextcloud en un servidor Ubuntu dentro de un contenedor Proxmox LXC. Apache2, PHP y los demás componentes necesarios se instalan directamente en Ubuntu. Para acceder a través de Internet, también utilizo Nginx Proxy Manager como proxy inverso.
Después de actualizar a Nextcloud 34.0.5, comencé a ver varias advertencias de seguridad y configuración. Estos incluyen índices de bases de datos faltantes, migraciones de tipo MIME, problemas con las URL .well-known y un tiempo de mantenimiento no configurado.
En esta guía, le mostraré cómo solucionar estas advertencias de Nextcloud, qué comandos OCC son necesarios y a qué debe prestar especial atención al instalar detrás de un proxy inverso.
Requisitos y entorno del servidor utilizado.
Los siguientes pasos se aplican a una instancia de Nextcloud instalada manualmente en Ubuntu.
Como ejemplo utilizo la siguiente configuración de servidor:
| componente | Entorno utilizado |
|---|---|
| Virtualización | Proxmox VE |
| recipiente | Ubuntu LXC |
| software en la nube | Nextcloud 34.0.5, actualizado a 35.0.2 |
| servidor web | apache2 |
| PHP | PHP 8.4 |
| base de datos | MariaDB o MySQL |
| proxy inverso | Administrador de proxy Nginx |
| HTTPS | A través del proxy inverso |
| Directorio de la nube siguiente | /var/www/html |
| usuario del servidor web | www-data |
La mayoría de los comandos también funcionan en Debian o en un servidor Ubuntu que se instaló directamente en una PC o máquina virtual.
Para instalaciones de Docker, paquetes Nextcloud AIO o Snap, los directorios y los comandos requeridos pueden diferir.
También es importante que la versión de PHP utilizada y la base de datos estén dentro de los requisitos del sistema de la versión de Nextcloud instalada.
¿Dónde puedo encontrar las advertencias de seguridad y configuración en Nextcloud?
Los mensajes se pueden encontrar directamente en la interfaz web de Nextcloud.
Para hacer esto, inicie sesión con una cuenta de administrador y abra la configuración administrativa a través del menú de perfil.
Luego vaya al elemento de menú Descripción general.

Nextcloud realiza allí diversos controles automáticos. Entre otras cosas, se comprueban la base de datos, el servidor web, la configuración de seguridad, las tareas en segundo plano y determinadas funciones de las aplicaciones instaladas.
Nextcloud diferencia entre advertencias y avisos.
Los símbolos de advertencia amarillos indican problemas de configuración que deben verificarse o corregirse. Los iconos de información azules, por otro lado, suelen indicar configuraciones recomendadas u opcionales.
Los mensajes típicos son:
| Mensaje de error | causado | Solución |
|---|---|---|
| Error en el protocolo | Errores causados por aplicaciones, PHP, bases de datos o trabajos en segundo plano | Investigar registros |
| Inicio de la ventana de mantenimiento | No hay hora de inicio para las tareas de mantenimiento. | Configurar ventanas de mantenimiento |
| Migraciones tipo MIME disponibles | Se requieren migraciones de tipos de archivos adicionales | Ejecutar comando de reparación |
| Resolución del proveedor de OCS | El servidor web no procesa /ocm-provider/ correctamente | Verifique la configuración de Apache |
URL .well-known | Redirecciones faltantes o incorrectas | Configurar Apache o proxy inverso |
| Índices de bases de datos faltantes | Los nuevos índices no se crearon automáticamente | Agregar índices |
| Anular la URL de la CLI | Dirección pública de Nextcloud no almacenada | overwrite.cli.urlcolocar |
| Demonio de implementación de AppAPI | No hay ningún demonio de implementación configurado | Configurar o deshabilitar AppAPI |
| Configuración de dos factores | 2FA no es obligatorio | Activar opcionalmente |
| Región del teléfono predeterminada | Sin código de país estándar | Establecer región del teléfono |
| ID del servidor de configuración | No hay ID de servidor fijo disponible | Opcionalmente, configure la ID del servidor |
Las siguientes secciones explican cada problema y muestran cómo solucionarlo.
Preparativos: administrar Nextcloud a través de SSH
Para muchas tareas de mantenimiento es necesario acceder al terminal del servidor de Nextcloud.
Al instalar dentro de un contenedor Proxmox LXC, puede abrir la consola directamente a través de la interfaz web de Proxmox. Alternativamente, puede conectarse al servidor Ubuntu a través de SSH.
Después de iniciar sesión, vaya al directorio de instalación de Nextcloud:
cd /var/www/html
Luego puede verificar si Nextcloud está instalado correctamente usando el siguiente comando:
sudo -u www-data php occ status
Por ejemplo, la salida contiene:
installed: true
version: 34.0.5.1
versionstring: 34.0.5
maintenance: false
needsDbUpgrade: false
Aquí puede ver la versión de Nextcloud actualmente instalada y si el sistema está en modo de mantenimiento.
La entrada needsDbUpgrade: false significa que los archivos del programa instalado ya no están pendientes de una actualización de la base de datos.
¿Qué es OCC en Nextcloud?
OCC significa herramienta de línea de comandos de Nextcloud y está basada en PHP.
Se pueden realizar numerosas tareas administrativas sin tener que abrir la interfaz web.
Estos incluyen, por ejemplo:
- Actualizaciones de Nextcloud y migraciones de bases de datos
- Tareas de reparación y mantenimiento.
- Administrar usuarios y aplicaciones
- Configurar los ajustes del sistema
- Agregar índices de bases de datos faltantes
- Gestión de archivos y versiones de archivos.
- Comprobación del modo de mantenimiento
Los comandos OCC normalmente deben ejecutarse con el usuario del servidor web www-data en Ubuntu.
Si lo inicia como root, puede correr el riesgo de configurar incorrectamente los permisos de archivo.
Si aparece un mensaje de error relacionado con APCu durante la ejecución, puede indicarle a PHP que active el caché a través de la línea de comando:
sudo -u www-data php -d apc.enable_cli=1 occ status
Para los ejemplos restantes utilizo la notación más corta. Si APCu causa problemas con comandos OCC individuales, se puede agregar el mismo parámetro.
Haz una copia de seguridad de antemano
Antes de una actualización importante de Nextcloud o una reparación de la base de datos, definitivamente debes crear una copia de seguridad completa.
Este debe contener al menos los siguientes componentes:
| ingrediente | Significado |
|---|---|
| Archivos de programa de NextCloud | Archivos de la versión instalada de Nextcloud |
config.php | Configuración del servidor y conexión a la base de datos. |
| Directorio de datos de Nextcloud | Archivos cargados y datos de usuario. |
| base de datos | Usuarios, metadatos de archivos, recursos compartidos y aplicaciones |
| configuración del servidor web | Configuración de Apache y, si es necesario, PHP |
Cualquiera que utilice Proxmox también puede crear una instantánea o una copia de seguridad completa del contenedor.
Cabe señalar que una instantánea de un contenedor en ejecución no garantiza necesariamente una copia de seguridad consistente de la base de datos. Para una recuperación confiable, recomendamos una copia de seguridad coordinada de la base de datos y los archivos asociados.
Idealmente, también se debería restaurar una copia de seguridad periódicamente con fines de prueba.
Advertencia de Nextcloud: establecer el inicio de la ventana de mantenimiento
Una advertencia común que aparece está relacionada con la ventana de mantenimiento no configurada.
Nextcloud ejecuta periódicamente varias tareas en segundo plano. Esto incluye, entre otras cosas, limpieza de datos antiguos, auditorías y otras tareas administrativas.
Algunas de estas tareas pueden suponer una mayor carga para la base de datos o el servidor.
Se puede configurar una ventana de mantenimiento para garantizar que dicho trabajo se realice fuera de los tiempos de uso normales.
Configurar ventanas de mantenimiento a través de OCC
El siguiente comando establece la ventana de mantenimiento a las 02:00 UTC:
sudo -u www-data php occ config:system:set maintenance_window_start --type=integer --value=2
Nextcloud generalmente utiliza la zona horaria UTC para esto.
En Alemania esto se traduce en los siguientes tiempos:
| Huso horario | Ventana de mantenimiento |
|---|---|
| UTC | 02:00 a 06:00 |
| Horario de invierno en Alemania | 3:00 am a 7:00 am |
| Horario de verano en alemania | 4:00 am a 8:00 am |
El valor ajustado describe la hora de inicio de una ventana de tiempo de cuatro horas.
However, this does not limit all background tasks to this time. El ajuste afecta principalmente a las tareas diarias que requieren menos tiempo.
Las tareas cron normales y en las que el tiempo es crítico pueden continuar ejecutándose fuera de esta ventana de tiempo.
Además, esta configuración solo funciona si Nextcloud usa el modo de fondo Cron.
Verificar ventana de mantenimiento
Puede consultar el valor establecido en cualquier momento:
sudo -u www-data php occ config:system:get maintenance_window_start
Con la configuración descrita anteriormente, la salida debería ser 2.
Migraciones de tipo MIME de Nextcloud disponibles: corregir errores
Después de una actualización de Nextcloud, ocasionalmente aparece el mensaje de que una o más migraciones de tipo MIME están disponibles.
Los tipos MIME describen el contenido o formato de un archivo.
Ejemplos de esto son:
| tipo de archivo | tipo MIME |
|---|---|
| imagen JPEG | image/jpeg |
| imagen PNG | image/png |
| documento pdf | application/pdf |
| vídeo MP4 | video/mp4 |
| archivo ZIP | application/zip |
Nextcloud utiliza dicha información para, entre otras cosas, reconocer archivos, mostrar miniaturas apropiadas y asociarlos con aplicaciones.
Las actualizaciones pueden agregar nuevos tipos MIME o ajustes a las asignaciones existentes.
Dado que la migración puede tardar más en instalaciones con muchos archivos, Nextcloud no siempre la realiza de forma automática.
Realizar migraciones de tipo MIME
Para ejecutar las migraciones disponibles, utilice el siguiente comando OCC:
sudo -u www-data php occ maintenance:repair --include-expensive
El parámetro --include-expensive garantiza que también se tengan en cuenta los trabajos de reparación que requieren más tiempo.
Dependiendo del tamaño de la instalación de Nextcloud, el proceso puede tardar algún tiempo.
Por lo tanto, para instalaciones grandes, si es posible, debe ejecutar el comando fuera del horario pico de uso.
Durante la reparación se muestran varios pasos, como verificar metadatos, limpiar entradas antiguas o preparar trabajos en segundo plano.
Es importante dejar que el proceso transcurra por completo y no detenerlo prematuramente.
Nextcloud: Agregar índices de bases de datos faltantes
Otra advertencia común es:
Faltan índices en la base de datos
Los índices de bases de datos ayudan a encontrar registros específicos más rápidamente.
Esto es comparable al índice de un libro. En lugar de tener que buscar en todas las páginas, la base de datos puede acceder a información específica mucho más rápidamente utilizando un índice adecuado.
Para instalaciones de Nextcloud más grandes con muchos archivos, usuarios o aplicaciones, los índices faltantes pueden afectar negativamente el rendimiento.
Después de una actualización o de instalar nuevas aplicaciones, es posible que se requieran índices adicionales.
Por ejemplo, en mi caso, Nextcloud informó que faltaba el índice taskp_tasks_scheduled en la tabla taskprocessing_tasks.
Crear automáticamente índices de bases de datos faltantes
Nextcloud tiene su propio comando OCC para esto:
sudo -u www-data php occ db:add-missing-indices
Esto verifica los índices existentes y agrega las entradas faltantes si Nextcloud las reconoce.
Por ejemplo, el resultado podría verse así:
Adding additional taskp_tasks_scheduled index
to the oc_taskprocessing_tasks table,
this can take some time...
oc_taskprocessing_tasks table updated successfully.
El índice que falta ya se ha creado correctamente.
El proceso puede llevar algún tiempo para tablas más grandes y puede sobrecargar temporalmente la base de datos.
Por lo tanto, si es posible, la creación de índices no debe realizarse durante períodos de alta carga del servidor.
Por lo general, no es necesaria la edición manual de la base de datos utilizando phpMyAdmin o comandos SQL directos para esta advertencia estándar.
Nextcloud: Reparar la resolución del proveedor OCS y el proveedor OCM
En algunas instalaciones de Nextcloud aparece el siguiente mensaje:
Resolución del proveedor de OCS
La descripción indica que el servidor web no está configurado correctamente para llamar a /ocm-provider/.
El proveedor OCM forma parte del protocolo Open Cloud Mesh y se utiliza, entre otras cosas, para colaborar y compartir recursos entre diferentes sistemas en la nube.
El nombre de la advertencia y la ruta URL real afectada pueden resultar un poco confusos. Lo que es crucial aquí es la ruta especificada por Nextcloud /ocm-provider/.
A menudo, la causa no es el propio Nextcloud, sino una configuración de reescritura incorrecta o desactualizada del servidor web.
Verifique el módulo de reescritura de Apache2
Como uso Apache2, primero verifico si el módulo de reescritura requerido está activado.
apache2ctl -M | grep rewrite
Si no aparece ninguna salida, el módulo se puede activar:
sudo a2enmod rewrite
Además, los módulos headers y env se pueden comprobar o activar:
sudo a2enmod headers
sudo a2enmod env
Luego verifique la configuración de Apache:
sudo apache2ctl configtest
Si no se muestran errores, se puede recargar Apache2:
sudo systemctl reload apache2
Marque Apache2 AllowOverride
Para que Apache2 procese las reglas de reescritura del archivo .htaccess de Nextcloud, la configuración del directorio correspondiente debe permitirlo.
La configuración se encuentra en la configuración principal de Apache o en el archivo VirtualHost, según la instalación.
En Ubuntu puedes ver primero los VirtualHosts activos:
apache2ctl -S
Los archivos de configuración típicos se encuentran en:
/etc/apache2/apache2.conf
/etc/apache2/sites-available/
Para una instalación de Nextcloud directamente en /var/www/html, la configuración del directorio puede verse así:
<Directory /var/www/html>
AllowOverride All
Require all granted
</Directory>
Es importante realizar esta configuración en el VirtualHost realmente utilizado o en el bloque de directorio correspondiente.
Luego pruebe la configuración nuevamente y vuelva a cargar Apache2.
Actualizar Nextcloud .htaccess
Nextcloud utiliza su propio archivo .htaccess con diferentes reglas de reescritura y configuraciones de seguridad.
Esto se puede regenerar o actualizar a través de OCC después de ciertos cambios de configuración.
Si se puede acceder a Nextcloud directamente desde el dominio y no en un subdirectorio como /nextcloud, puede configurar la base de reescritura de la siguiente manera:
sudo -u www-data php occ config:system:set htaccess.RewriteBase --value="/"
Luego actualice el .htaccess:
sudo -u www-data php occ maintenance:update:htaccess
Antes de realizar cambios en el archivo, se recomienda hacer una copia de seguridad de una configuración individual existente.
Importante: No copie simplemente ningún archivo o directorio de versiones anteriores de Nextcloud. Especialmente con el proveedor OCM, los archivos requeridos y las reglas de reescritura pueden diferir entre las versiones.
Si la advertencia continúa apareciendo, también debes verificar si la configuración de Apache realmente coincide con la versión instalada de Nextcloud.
Anular la URL de la CLI de Nextcloud
Al instalar detrás de un proxy inverso, ocasionalmente aparece la siguiente advertencia:
Sobrescribir URL de CLI
Esta es la configuración de Nextcloud overwrite.cli.url.
Esto determina qué dirección base debe usar Nextcloud al generar URL a través de procesos de línea de comando o tareas en segundo plano.
Sin esta configuración, los enlaces pueden apuntar a una dirección IP interna, un nombre de host incorrecto o una dirección HTTP no cifrada, por ejemplo.
Establecer el dominio público de Nextcloud
Supongamos que se puede acceder a su propia instalación de Nextcloud en la siguiente dirección:
https://cloud.example.de
Luego, la URL de la CLI se puede configurar con este comando:
sudo -u www-data php occ config:system:set overwrite.cli.url --value="https://cloud.example.de"
Luego puede verificar la configuración:
sudo -u www-data php occ config:system:get overwrite.cli.url
La salida debe contener la dirección previamente configurada.
Configure correctamente Nextcloud detrás de Nginx Proxy Manager
Las configuraciones adicionales son útiles para una instalación de Nextcloud detrás de un proxy inverso.
Los parámetros trusted_domains, trusted_proxies y overwriteprotocol son particularmente importantes.
Estos se encuentran en el archivo de configuración de Nextcloud:
/var/www/html/config/config.php
¿Qué son los dominios_de_confianza?
Con trusted_domains usted especifica bajo qué nombres de host se puede acceder a Nextcloud.
Esto incluye, por ejemplo, el dominio público:
'trusted_domains' => [
'cloud.example.de',
],
Esta configuración no debe confundirse con trusted_proxies.
¿Qué son los proxy_confiados?
En trusted_proxies almacena las direcciones IP de los servidores proxy inversos en los que confía Nextcloud.
Esto permite a Nextcloud, por ejemplo, determinar la dirección IP real de un visitante a través de los encabezados proxy correspondientes.
Un ejemplo:
'trusted_proxies' => [
'192.168.1.10',
],
La dirección IP debe reemplazarse con la dirección IP real de Nginx Proxy Manager.
Importante: Sólo se deben ingresar proxies inversos confiables. La configuración no debe extenderse de forma generalizada a todas las direcciones IP.
De lo contrario, en determinadas circunstancias, los atacantes pueden manipular los encabezados y enviar direcciones IP de clientes falsas.
Configurar HTTPS con protocolo de sobrescritura
Si HTTPS finaliza en Nginx Proxy Manager y Apache2 recibe las solicitudes internamente a través de HTTP, Nextcloud puede detectar el protocolo incorrecto.
En este caso la configuración ayuda:
'overwriteprotocol' => 'https',
Esto significa que Nextcloud utiliza el protocolo HTTPS para las URL generadas.
Esto es particularmente importante si los enlaces dentro de la interfaz web o en las notificaciones comienzan incorrectamente con http://.
Además, se puede utilizar overwritehost si es necesario. Sin embargo, esta configuración normalmente no es necesaria si el proxy inverso reenvía el encabezado del host correctamente.
El config.php existente no debe reemplazarse completamente por una configuración de ejemplo, ya que contiene otras configuraciones y datos de acceso importantes.
Nextcloud: establecer la región del teléfono predeterminada
Si Nextcloud informa que no se ha configurado una región telefónica predeterminada, falta la configuración default_phone_region.
Esto determina qué código de país debe aceptarse para los números de teléfono sin un código internacional explícito.
Para Alemania se utiliza el código de país ISO DE.
La configuración se puede establecer directamente a través de OCC:
sudo -u www-data php occ config:system:set default_phone_region --value="DE"
Luego puedes consultarlos:
sudo -u www-data php occ config:system:get default_phone_region
El comando debería devolver DE.
Alternativamente, la configuración se puede almacenar en config.php:
'default_phone_region' => 'DE',
Esta configuración es particularmente útil cuando se administran perfiles de usuario con números de teléfono.
Configurar o deshabilitar el demonio de aprovisionamiento de Nextcloud AppAPI
Las versiones más nuevas de Nextcloud admiten las llamadas aplicaciones externas, o ex-aplicaciones para abreviar.
Estos pueden proporcionar funcionalidad adicional y ejecutarse fuera del proceso PHP real de Nextcloud.
Nextcloud utiliza AppAPI para esto.
Si AppAPI está activada pero no se ha configurado ningún demonio de implementación adecuado, aparece la nota correspondiente en la descripción general de administración.
¿Qué es un demonio de implementación de AppAPI?
Un demonio de implementación es responsable de implementar y administrar aplicaciones externas.
Dependiendo de la solución utilizada, es posible que se requieran servicios o contenedores adicionales.
Por ejemplo, HaRP está disponible para las versiones más nuevas de Nextcloud.
La advertencia de AppAPI no significa que las funciones normales de Nextcloud, como la sincronización de archivos, el calendario o los contactos, ya no funcionen.
Deshabilite AppAPI cuando no sea necesario
Si no desea utilizar aplicaciones externas, puede desactivar AppAPI.
Para hacer esto utiliza el siguiente comando:
sudo -u www-data php occ app:disable app_api
Esto desactivará la aplicación Nextcloud correspondiente.
Sin embargo, esto sólo debe hacerse si ninguna función instalada depende de AppAPI.
Alternativamente, puede registrar un demonio de implementación adecuado en la configuración de administración de AppAPI y configurarlo como predeterminado.
Habilite la autenticación de dos factores de Nextcloud
Otro mensaje indica que si bien existen proveedores de autenticación de dos factores, su uso no es obligatorio.
Con la autenticación de dos factores, también conocida como 2FA, la contraseña normal por sí sola no es suficiente para iniciar sesión.
Además, se necesita, por ejemplo, un código numérico de tiempo limitado que se genera a través de una aplicación de autenticación.
Esto reduce el riesgo de acceso no autorizado si se conoce una contraseña.
Nextcloud admite diferentes métodos para esto, incluidas aplicaciones TOTP y otros métodos de autenticación.
Hacer obligatoria la autenticación de dos factores
La autenticación obligatoria de dos factores se puede activar a través de la interfaz web de Nextcloud en la configuración de administración en el área de Seguridad.
Alternativamente, puedes activarlo a través de OCC.
Para todos los usuarios:
sudo -u www-data php occ twofactorauth:enforce --on
Para habilitar el uso obligatorio solo para miembros del grupo Administrador:
sudo -u www-data php occ twofactorauth:enforce --on --group=admin
Es importante asegurarse de que los usuarios afectados ya hayan configurado un método de autenticación adecuado o puedan configurarlo la próxima vez que inicien sesión.
También es recomendable generar códigos de recuperación y almacenarlos de forma segura.
Si pierde su teléfono inteligente y no ha configurado una opción de inicio de sesión alternativa, podría perder el acceso a su propia cuenta.
Para instalaciones de Nextcloud de acceso público, se recomienda especialmente proteger las cuentas de administrador.
Configurar la ID del servidor Nextcloud
Desde Nextcloud 33, para determinadas funciones se utiliza un proceso de generación de identificadores únicos basados en los llamados Snowflake ID.
Dicho ID puede contener, entre otras cosas, información sobre el momento de su creación y el servidor que lo creó.
Para instalaciones con múltiples servidores PHP, tiene sentido o es necesario que utilicen diferentes ID de servidor.
La configuración se llama serverid.
Verificar ID del servidor
Puede mostrar el valor existente con el siguiente comando:
sudo -u www-data php occ config:system:get serverid
Si aún no hay un ID de servidor, puede usar el valor 1 para un único servidor PHP, por ejemplo:
sudo -u www-data php occ config:system:set serverid --type=integer --value=1
Se permiten valores enteros entre 0 y 511.
Es importante que si hay varios servidores PHP, cada instancia utilice su propio ID.
Una vez que se hayan configurado los ID del servidor, no se deben cambiar si es posible, ya que son parte de los identificadores generados.
Para una instalación pequeña de Nextcloud con un solo servidor web, este aviso suele ser menos crítico que la configuración HTTPS incorrecta o los problemas de la base de datos.
Encuentre y corrija errores del protocolo Nextcloud
Nextcloud suele mostrar errores de los últimos días en la descripción general de administración.
Por ejemplo, se pueden informar de varias docenas o incluso cientos de errores.
Sin embargo, la cifra por sí sola dice poco sobre la causa real.
Un solo error puede ocurrir varias veces debido a un trabajo en segundo plano que se ejecuta regularmente.
Del mismo modo, después de una actualización, es posible que aún existan entradas de registro más antiguas aunque el problema real ya se haya resuelto.
Encuentre el archivo de registro de Nextcloud
De forma predeterminada, el archivo de registro de Nextcloud se llama:
nextcloud.log
Por lo general, se encuentra en el directorio de datos configurado de Nextcloud, a menos que se haya especificado una ruta de registro diferente.
El directorio de datos se puede leer a través de OCC:
sudo -u www-data php occ config:system:get datadirectory
Luego puede mostrar las últimas 100 líneas del archivo de registro:
tail -n 100 /PFAD/ZUM/DATENVERZEICHNIS/nextcloud.log
La ruta de ejemplo debe ajustarse en consecuencia.
Para instalaciones de Nextcloud con archivos de registro muy grandes, no debe generar el archivo completo de una vez.
En su lugar, es aconsejable buscar específicamente mensajes de error o examinar las entradas más recientes.
Verifique los registros de Apache2
Si el error está relacionado con Apache2 o PHP, el registro de errores de Apache también puede resultar útil.
En Ubuntu suele estar ubicado aquí:
/var/log/apache2/error.log
Las últimas entradas se pueden ver de la siguiente manera:
sudo tail -n 100 /var/log/apache2/error.log
Alternativamente, puede recuperar los mensajes actuales de Apache a través del diario del sistema:
sudo journalctl -u apache2 -n 100 --no-pager
Si Nextcloud funciona detrás de un proxy inverso, también debe verificar los registros del proxy inverso en caso de problemas de conexión.
Los códigos de estado HTTP como 403, 404, 502 o 504 son particularmente útiles.
Causas comunes de errores de registro de Nextcloud
| Tipo de error | Posible causa |
|---|---|
| error PHP | Aplicación incompatible o módulo PHP faltante |
| Error de base de datos | Problema de conexión, error de consulta o migración incorrecta |
| HTTP 404 | Ruta incorrecta o regla de reescritura |
| HTTP 502 | Servidor web backend no accesible |
| HTTP 504 | Tiempo de espera entre proxy y backend |
| error de permiso | Permisos de archivos incorrectos |
| error de cron | Error en el trabajo en segundo plano |
| error de redis | Servidor de caché no accesible |
Especialmente después de actualizaciones importantes, es recomendable volver a comprobar los registros.
Las advertencias individuales no deben ocultarse simplemente eliminando o restableciendo el archivo de registro.
Configure correctamente los trabajos cron de Nextcloud
Para que Nextcloud funcione de forma fiable a largo plazo, se deben realizar varias tareas en segundo plano con regularidad.
Para ello están disponibles AJAX, Webcron y Cron.
Para un servidor Linux autónomo, normalmente se recomienda utilizar un trabajo cron real.
Esto funciona independientemente de si alguien ha abierto actualmente la interfaz web.
Verifique el trabajo cron de Nextcloud
En Ubuntu puede ver los trabajos cron existentes del usuario del servidor web con el siguiente comando:
sudo crontab -u www-data -l
Un trabajo cron típico de Nextcloud se ve así:
*/5 * * * * /usr/bin/php -f /var/www/html/cron.php
Esto hará que cron.php de Nextcloud se ejecute cada cinco minutos.
Si es necesario activar APCu para PHP-CLI, la llamada se puede adaptar en consecuencia:
*/5 * * * * /usr/bin/php -d apc.enable_cli=1 -f /var/www/html/cron.php
Puede editar el trabajo cron con el siguiente comando:
sudo crontab -u www-data -e
Es importante adaptar la ruta de instalación a su propio entorno.
Si ya ha configurado un temporizador systemd para Nextcloud, no debería utilizar también el mismo trabajo cron.
De lo contrario, es posible que las tareas en segundo plano se inicien varias veces innecesariamente.
Además, en la configuración de administración de Nextcloud, debe verificar si el modo en segundo plano está configurado en Cron.
Actualice Nextcloud correctamente: actualización y actualizador de OCC
Para actualizaciones más grandes de Nextcloud, existe una diferencia importante entre el actualizador real y el comando OCC upgrade.
El actualizador se encarga de descargar e intercambiar los archivos del programa Nextcloud.
El comando occ upgrade, por otro lado, lleva a cabo las migraciones de la base de datos y los pasos de actualización adicionales necesarios para la versión instalada.
Verifique la versión instalada de Nextcloud
El siguiente comando muestra la versión instalada:
sudo -u www-data php occ status
Por ejemplo, si todavía dice versionstring: 34.0.5, Nextcloud 34.0.5 está instalado.
Aunque Nextcloud 35.0.2 ya se ofrece en el área de administración, eso no significa que esta versión ya esté instalada.
Actualice Nextcloud a través de la línea de comando
Para una instalación manual, se puede utilizar el actualizador de línea de comando integrado:
cd /var/www/html
Después:
sudo -E -u www-data php -d apc.enable_cli=1 updater/updater.phar
El actualizador verifica la instalación y luego lo guía por los pasos necesarios.
Después de intercambiar los archivos del programa, también puede iniciar la actualización de OCC real.
Si aún no se ha realizado este paso, puedes llamarlo manualmente:
sudo -E -u www-data php -d apc.enable_cli=1 occ upgrade
Si aparece el mensaje No upgrade required, no se requieren más migraciones de actualización para los archivos Nextcloud actualmente instalados.
Sin embargo, esto no significa automáticamente que ya esté instalada la última versión disponible.
Verifique el modo de mantenimiento después de una actualización
Después de una actualización exitosa, debes verificar si Nextcloud ha salido del modo de mantenimiento:
sudo -u www-data php occ status
Si se muestra maintenance: false, el modo de mantenimiento está deshabilitado.
Si Nextcloud permanece en modo de mantenimiento después de una actualización completamente completa, esto se puede desactivar manualmente si es necesario:
sudo -u www-data php occ maintenance:mode --off
No debe ejecutar este comando mientras aún esté en curso una actualización o migración de base de datos.
Ejecute comandos de mantenimiento adicionales después de la actualización
Después de una actualización exitosa, los siguientes comandos pueden resultar útiles:
sudo -u www-data php occ maintenance:repair --include-expensive
sudo -u www-data php occ db:add-missing-indices
Esto significa que se llevan a cabo más reparaciones y, si es necesario, se añaden los índices de la base de datos que faltan.
Si es posible, los trabajos de reparación importantes deberían realizarse durante un período de mantenimiento planificado.
Verifique la versión de PHP y la configuración de PHP
Nextcloud requiere una instalación de PHP que coincida con la versión respectiva.
Las versiones de PHP compatibles dependen de la versión de Nextcloud utilizada.
Por ejemplo, Nextcloud 35 es compatible con PHP 8.4.
Puede ver la versión de PHP instalada a través de la terminal:
php -v
También puedes comprobar qué módulos PHP están activos:
php -m
Los módulos importantes o de uso frecuente incluyen:
| módulo PHP | usar |
|---|---|
curl | Solicitudes HTTP |
gd | Procesamiento de imágenes |
imagick | Procesamiento de imágenes avanzado |
intl | Procesamiento del lenguaje y los caracteres. |
mbstring | Procesando texto |
mysqli / pdo_mysql | Conexión MariaDB y MySQL |
redis | Bloqueos de caché y archivos |
apcu | Caché local |
zip | archivos ZIP |
xml | Procesamiento XML |
opcache | Acelerando PHP |
No todos los módulos son obligatorios para cada instalación de Nextcloud.
Cuáles son realmente necesarios depende, entre otras cosas, de la base de datos y de las aplicaciones instaladas.
Diferencia entre PHP CLI y PHP en servidor web
Un punto importante es que la versión de PHP en la terminal no necesariamente coincide con la versión de PHP utilizada en el servidor web.
Por ejemplo, en Ubuntu, se pueden instalar varias versiones de PHP en paralelo.
Mientras que php -v muestra la versión de la línea de comando, Apache2 puede usar una versión diferente a través de su propio módulo PHP o PHP-FPM.
Para comprobarlo, puede, por ejemplo, hacer lo siguiente:
apache2ctl -M | grep php
Si se utiliza PHP-FPM, también se debe verificar el servicio PHP-FPM correspondiente.
Los archivos de configuración también difieren.
Las rutas típicas en Ubuntu son:
/etc/php/8.4/cli/php.ini
/etc/php/8.4/apache2/php.ini
/etc/php/8.4/fpm/php.ini
No todos estos archivos tienen que estar presentes en todos los servidores.
Después de cambiar la configuración de PHP, es posible que sea necesario reiniciar o recargar Apache2 o PHP-FPM.
Acelere Nextcloud con Redis y APCu
Además de corregir las advertencias de seguridad, también vale la pena echar un vistazo al rendimiento de su propia instalación de Nextcloud.
Los sistemas de almacenamiento en caché pueden mejorar la velocidad, especialmente en instalaciones con muchos archivos o varios usuarios conectados al mismo tiempo.
Nextcloud admite APCu y Redis, entre otros.
APCu es adecuado como caché local rápido para PHP.
Redis también se puede utilizar para caché distribuida y bloqueo de archivos.
Utilice APCu como caché local
Si APCu aún no está instalado, puede instalar el módulo en Ubuntu con el siguiente comando, por ejemplo:
sudo apt install php-apcu
Luego se puede almacenar la siguiente entrada en la configuración de Nextcloud:
'memcache.local' => '\OC\Memcache\APCu',
Usando Redis para bloquear archivos
Redis se puede instalar en Ubuntu a través del administrador de paquetes:
sudo apt install redis-server php-redis
Luego verifique si el servicio Redis se está ejecutando:
systemctl status redis-server
Por ejemplo, en la configuración de Nextcloud, Redis se puede configurar así:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],
El ejemplo supone que Redis se ejecuta en el mismo servidor y se puede acceder a él a través de la dirección local.
Si hay un servidor Redis externo o una conexión a través de un socket Unix, se debe ajustar la configuración.
También se debe garantizar que no se pueda acceder a Redis sin protección desde Internet.
Usar Redis para bloquear archivos es particularmente interesante cuando se sincronizan muchos archivos o se transfieren grandes cantidades de datos de forma regular.
Limpiar la papelera y las versiones de archivos de Nextcloud
Con el tiempo, Nextcloud puede acumular numerosos archivos eliminados y versiones de archivos más antiguas.
Estos ocupan espacio de almacenamiento adicional y pueden ascender a varios gigabytes para instalaciones más grandes.
Nextcloud viene con sus propios comandos de mantenimiento para esto.
Vaciar la papelera de un usuario
Para vaciar la papelera de un usuario específico, use:
sudo -u www-data php occ trashbin:cleanup BENUTZERNAME
BENUTZERNAME debe reemplazarse con el ID de usuario de Nextcloud correspondiente.
Eliminar versiones antiguas de archivos
Las versiones de archivos guardados también se pueden limpiar usando OCC:
sudo -u www-data php occ versions:cleanup BENUTZERNAME
Atención: Estos comandos eliminan el contenido de la papelera existente o las versiones de archivos guardados del usuario especificado. Estos datos ya no podrán restaurarse de la forma habitual a través de Nextcloud.
Por lo tanto, no deberían realizarse simplemente periódicamente sin comprobarlos previamente.
En particular, versions:cleanup no solo elimina las versiones particularmente antiguas, sino también las versiones de los archivos capturados por el comando.
Para limitar automáticamente el uso del almacenamiento, las reglas de retención de Nextcloud suelen ser una mejor solución.
Otras configuraciones importantes de seguridad y rendimiento de Nextcloud
Además de las advertencias ya descritas, hay algunas configuraciones que debe verificar periódicamente en un servidor Nextcloud autooperado.
Certificados HTTPS y SSL
Siempre se debe acceder a una instalación de Nextcloud de acceso público a través de HTTPS.
Si utiliza Nginx Proxy Manager, puede, por ejemplo, configurar un certificado Let’s Encrypt y activar la redirección de HTTP a HTTPS.
Es importante que el certificado sea válido y se renueve automáticamente.
También debes comprobar si Nextcloud reconoce correctamente la dirección HTTPS pública.
encabezado de seguridad HTTP
Otro punto importante son los encabezados de seguridad HTTP.
Esto incluye, por ejemplo, Strict-Transport-Security, abreviado HSTS.
Este encabezado le indica al navegador que en el futuro solo se debe acceder a un sitio web a través de HTTPS.
Al instalar con Nginx Proxy Manager, HSTS se puede configurar directamente en el proxy inverso, según la configuración.
Antes de activar HSTS, debe asegurarse de que HTTPS funcione correctamente a largo plazo.
Verificar permisos de archivos
Los problemas con los permisos de archivos pueden hacer que Nextcloud no pueda escribir archivos o que las actualizaciones fallen.
Al instalar Ubuntu manualmente, el usuario del servidor web debe tener acceso a los directorios requeridos.
Sin embargo, no debe otorgar permisos de escritura a todos los archivos para todos los usuarios.
En particular, permisos como 777 no son una solución sensata y pueden suponer un riesgo para la seguridad.
Proteger el directorio de datos de Nextcloud
Si es posible, el directorio de datos debe ubicarse fuera del directorio web de acceso público.
Esto reduce el riesgo de que se acceda a archivos directamente a través de Internet debido a una configuración incorrecta del servidor web.
Si el directorio de datos está dentro de webroot, las reglas de protección de acceso proporcionadas por Nextcloud deben funcionar correctamente.
No se debe cambiar el directorio de datos sin una planificación previa y una copia de seguridad completa de los datos.
Mantener la base de datos regularmente
La base de datos también debe comprobarse periódicamente.
Son importantes, entre otras cosas, las siguientes:
- Suficiente espacio de almacenamiento gratuito
- Una versión de base de datos compatible
- Copias de seguridad periódicas
- Conexiones de bases de datos en funcionamiento
- Índices faltantes después de las actualizaciones
- Configuración adecuada de memoria y caché
Especialmente con instalaciones de Nextcloud muy utilizadas, la base de datos puede volverse muy grande con el tiempo.
En tales casos, puede tener sentido analizar las tablas de la base de datos y la información almacenada con más detalle en lugar de proporcionar únicamente núcleos de CPU o memoria adicionales.
Preguntas frecuentes sobre cómo solucionar las alertas de Nextcloud
¿Todas las alertas de seguridad de Nextcloud son críticas?
No. Algunas advertencias indican problemas de seguridad específicos, mientras que otras simplemente se refieren a configuraciones adicionales u optimizaciones recomendadas.
Sin embargo, deberías comprobar cada mensaje al menos una vez y entender la causa.
¿Pueden desaparecer las advertencias de Nextcloud después de una actualización?
Sí. Algunos mensajes surgen de migraciones no completadas o configuraciones desactualizadas.
Sin embargo, otras advertencias sólo se pueden resolver mediante ajustes manuales en Apache2, PHP, la base de datos o el proxy inverso.
¿Qué significa No se requiere actualización en Nextcloud?
Este mensaje significa que no son necesarias más actualizaciones de la base de datos para los ejecutables de Nextcloud actualmente instalados.
Esto no significa automáticamente que ya se haya instalado la última versión disponible de Nextcloud.
La versión real se puede comprobar con occ status.
¿Tienes que reparar Nextcloud después de cada actualización?
No. Normalmente, Nextcloud realiza él mismo las migraciones estándar requeridas.
Sin embargo, algunas tareas complejas no siempre se llevan a cabo de forma deliberada y automática.
Si se muestran las advertencias adecuadas, es posible que se requieran comandos OCC adicionales.
¿Nextcloud necesita absolutamente Redis?
No. Las instalaciones más pequeñas de Nextcloud también se pueden operar sin Redis.
Sin embargo, Redis puede mejorar la confiabilidad y el rendimiento, especialmente con acceso frecuente a archivos y múltiples usuarios.
¿Puedes ejecutar Nextcloud sin Docker?
Sí. Nextcloud se puede instalar completamente en un servidor Linux sin necesidad de Docker.
Esto requiere, entre otras cosas, un servidor web compatible, PHP y una base de datos compatible.
La instalación se puede realizar en un servidor Ubuntu normal, una máquina virtual o dentro de un contenedor LXC.
¿Tiene que reiniciar Apache2 después de realizar cambios en config.php?
No fundamentalmente. El archivo de configuración de Nextcloud es procesado por PHP, por lo que muchos cambios surten efecto sin reiniciar el servidor web.
Sin embargo, si se cambian los módulos de Apache, VirtualHosts o la configuración de PHP, es posible que sea necesario recargar o reiniciar.
Este artículo ha sido traducido con ayuda de IA.


