Hace dos años, publiqué una serie de artículos sobre el tema de la creación de un servidor web basado en Debian 8 y el lanzamiento del servicio Nextcloud 11. Algunos meses más tarde había un complemento que contenía información "diferencial" sobre la instalación de Nextcloud 13 en Debian 9. A finales de 2018, simplemente Debian actualizado y Nextcloud y no encontró ningún problema inusual o interesante. La actualización a finales de 2019 ya era más interesante y sobre la que valía la pena escribir.

Este artículo será principalmente útil para aquellos que, según las instrucciones de los últimos cuatro artículos, "recopilaron" Nextcloud 13 en Debian 9 (envío saludos a diez de mis suscriptores en Nextcloud, especialmente aquellos para quienes fue la primera experiencia en el mundo Linux). Para aquellos que van a hacer un servicio desde cero, les aconsejo que tomen como base los primeros cuatro artículos de esta serie, ajustados para las versiones actuales de Debian 10 y Nextcloud 17. Para usuarios experimentados de Linux, el artículo puede ocupar un lugar entre "trivial e inútil" y "no está mal". hoja de trucos todo en uno ".
Tabla de contenidos
Parte 1. Configurar su entorno Debian para el uso diarioParte 2. Crear un servidor - configurar LAMP en DebianParte 3. Crear una nube personal: instalar y configurar NextcloudParte 4. Actualización 2018 - Debian 9 y Nextcloud 13Parte 5. Actualización 2019 - PHP 7.2, MariaDB 10.4 y Nextcloud 17
Navegación rápida de capítulos
PrólogoActualización de DebianActualización de PHP a la versión 7.2Actualice MariaDB a la versión 10.4Actualización de Nextcloud a la versión 17Epílogo
Prólogo
Inicialmente, quería instalar y configurar Nginx en Debian 10, además de lo cual el Nextcloud 17 actual se habría instalado sin problemas. Pero por todo esto, no pude elegir el momento, por lo que este artículo es un conjunto de instrucciones para actualizar Nextcloud de 13 a la versión actual 17 desde la versión preliminar preparando un servidor web.
Primero debe explicar por qué se requieren cambios radicales en el lado del servidor web. Nuestro servidor está basado en Debian 9. actual y compatible. Simplemente puede actualizar el sistema operativo y todos los componentes del servidor web recibirán al menos actualizaciones de seguridad. Todo sería genial si utilizáramos Nextcloud 13 o si actualizáramos solo a la versión 14. Pero Nextcloud 13 ya no es compatible, y la compatibilidad con la versión 14 está sobre la marcha. A partir de la versión 15, Nexctcloud ofrecerá convertir la base de datos a big int para admitir la codificación de cuatro bytes, y con MariaDB 10.1 esto será muy problemático. Nexctcloud 17 requiere PHP 7.1-7.3, mientras que Debian 9 solo contiene la versión 7.0 en sus repositorios nativos. Sería más correcto, en términos de confiabilidad y previsibilidad, actualizar a la penúltima versión de Nextcloud, pero durante un par de años estuve tan seguro de la confiabilidad de este servicio que quise actualizar a la última versión y actualizar el servidor web con una reserva para el futuro. Por lo tanto, para actualizar a Nexctcloud 17, es óptimo actualizar MariaDB a la versión estable actual 10.4 y PHP a 7.2. Es 7.2, y no es relevante 7.4. El hecho es que Nextcloud 13 requiere PHP 5.6, 7.0 - 7.2, y Nexctcloud 17 requiere PHP 7.1 - 7.3. Usar PHP 7.2 es conveniente para minimizar las acciones de actualización. El servidor Apache no necesita ser actualizado, solo instale las actualizaciones de seguridad que distribuye el equipo de soporte de Debian. Pero para las actualizaciones, MariaDB y PHP tendrán que conectar repositorios externos.
Cuando conocí Nextcloud, lo actualicé "a mano": un equipo especial puso el sitio web en modo de mantenimiento desde la consola, el archivo con la nueva versión del sitio se descargó y desempaquetó manualmente, los archivos se actualizaron y comenzó el procedimiento de actualización. Dicha actualización usualmente condujo a los resultados esperados, aunque no fui flojo para hacer una copia de respaldo del sitio, la base de datos y los datos del usuario. Pero las actualizaciones automáticas a veces llevaron a todo tipo de sorpresas. Pero fue hace mucho tiempo, la estabilidad del motor ha aumentado mucho desde entonces, y esta vez hice actualizaciones exclusivamente a través de la interfaz web. Es cierto que todavía no era posible salir de la línea de comando. Durante una actualización iterativa para cada nueva versión, aparecerán varias advertencias y notificaciones en el panel de control, que deberán "eliminarse" ejecutando comandos de manera significativa en la línea de comandos. No puede hacer esto: el servicio funcionará de todos modos. Aunque este enfoque es fundamentalmente incorrecto, Nextcloud trabajó para mí durante 3 meses en este modo antes de resolver deliberadamente los problemas que surgieron.
Actualización de Debain
Detenga el servidor web:
Y actualizado:
Después de la actualización, puede verificar la versión del sistema operativo y hacer un reinicio de verificación para asegurarse de que todo comience normalmente después de la actualización:
Actualización de PHP a la versión 7.2
Detenga el servidor web:
Agregar certificado y claves PPA, repositorio PHP:
Si elimina la versión anterior de PHP 7.0, phpmyadmin también se eliminará, ya que limpiaremos los "rastros" de los paquetes eliminados utilizando autoremove. Esto no causará mucha dificultad, ya que no se realizaron ajustes especiales para phpmyadmin y la instalación de nuevo no será un problema.
Instalación de módulos necesarios para Nextcloud 17:
[ Este texto fue escrito específicamente para habr.com por AlexanderS .
El enlace a la fuente es opcional, ¡pero su referencia es altamente deseable! ]Verificamos la versión de PHP, iniciamos el servidor web y verificamos la operatividad de Nextcloud:
Actualice MariaDB a la versión 10.4
El sitio web del proyecto tiene una
página interesante en la que debe indicar su sistema operativo, su lanzamiento y seleccionar la versión de la base de datos. Una vez seleccionado, se generará código para agregar el repositorio.
Detenga el servidor web:
Agregar repositorio y paquetes de actualización:
Al instalar MariaDB, el administrador de paquetes eliminará correctamente la versión anterior e instalará la nueva, se guardarán todas las bases de datos. Sin embargo, por supuesto, se recomienda hacer una copia de seguridad de la base de datos de Nextcloud.
Instale MariaDB y ejecute el procedimiento de actualización:
Después de ingresar la contraseña, MariaDB se actualizará y será posible configurarla, siguiendo las
instrucciones de la segunda parte :
Iniciamos el servidor web y verificamos el rendimiento de Nextcloud:
Actualización de Nextcloud a la versión 17
Para iniciar la actualización, debe iniciar sesión en el servicio con una entrada administrativa, proceder a la configuración y abrir la "Configuración general" en la sección administrativa. Nextcloud muestra la versión instalada y la versión disponible para actualizar, que se puede iniciar haciendo clic en el botón "Abrir ventana de actualización". Después del inicio, Nextcloud realiza una copia de seguridad, descarga y verifica la integridad de los archivos de actualización, activa el modo de mantenimiento y actualiza los archivos. ¿Qué sigue es la pregunta "Mantener el modo de mantenimiento activo"? Tienes que tener cuidado aquí. Una respuesta positiva dejará el sitio en modo de mantenimiento: se supone que el administrador sabe qué hacer a continuación y lo hace manualmente. De lo contrario, Nextcloud hará todo por sí mismo, así que haga clic en "No" para continuar.
Las actualizaciones se realizan de forma iterativa. Nextcloud 13.x se actualizará primero a la última versión de la rama 14.x. Después de eso, deberá volver al centro de administración e iniciar la actualización, ahora de 14.xa 15.x. Y así sucesivamente, hasta llegar a la última versión actual posible. Después de cada actualización, en la página Configuración general en la sección administrativa, se mostrará una lista de sugerencias y problemas encontrados, así como recomendaciones para resolverlos. A continuación, hablaremos sobre lo que deberá hacerse después de cada actualización.
Antes de actualizarEn versiones recientes de Nextcloud, se recomienda habilitar PHP OPcache para mejorar el rendimiento. Es extraño que de alguna manera me perdí este momento hace un par de años, ya que OPcache apareció en PHP 5. En /etc/php/7.2/apache2/php.ini necesitas descomentar y editar los siguientes parámetros:
opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 pcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
Actualización 13.x -> 14.xRestauramos los índices de las tablas:
Actualización 14.x -> 15.xPreparación de la base de datos nextcloud para habilitar la codificación de cuatro bytes:
Habilite la compatibilidad con la codificación de cuatro bytes en Nextcloud:
Transformamos tablas:
Recuperar índices de tabla perdidos:
Convierta los índices de la tabla a bigint:
Actualización 15.x -> 16.xRecuperar índices de tabla perdidos:
Convierta los índices de la tabla a bigint:
Actualización 16.x -> 17.xNo se requiere ninguna otra acción.
Epílogo
Siguiendo estas instrucciones, se actualizó la máquina virtual con Nextcloud 13. El uso de la máquina virtual le permite no hacer una copia de seguridad de los archivos de Nextcloud y su base de datos, porque en caso de problemas, simplemente puede devolver el archivo de la máquina virtual guardado anteriormente y comenzar de nuevo. Sin embargo, esto no se aplica a la carpeta de datos del usuario, que también recomiendo hacer una copia de seguridad con la máquina virtual Nextcloud. En mi caso, la "nube" se usa como una carpeta remota con versiones automáticas, además, con la dirección de sincronización "solo allí", y para mí la pérdida de estos datos no fue crítica: solo tendría que sincronizar nuevamente durante varias horas. A pesar de mi negligencia de la regla "mantente a salvo por si acaso" desarrollada por mi vida, la actualización se realizó sin problemas y todos los clientes también ganaron dinero con Nextcloud 17. Sin ningún problema. Estoy impresionado, Frank Karlitshek, ¡tú y tu equipo están haciendo un excelente trabajo!
Después de la actualización, decidí limpiar los datos del usuario, que, a juzgar por las estadísticas, ocuparon dos terabytes. No tenía tantos datos operativos: la mayor parte del volumen estaba ocupado por archivos de versión y archivos eliminados. El problema que encontré fue que había tantos datos eliminados para un usuario (ni siquiera es el volumen, sino la cantidad, muchos archivos pequeños) que Nextcloud no podía mostrarlos en la interfaz web. Después de estudiar la guía de administración, encontré la solución a través de la línea de comando. Tal vez esto sea útil para alguien.
Para borrar archivos borrados del usuario usuario:
Para borrar archivos de versión de usuario:
Regrese
al principio, a la tabla de contenido .
La historia de la creación de una nube doméstica. Parte 5. Actualización 2019 - PHP 7.2, MariaDB 10.4 y Nextcloud 17
Versión de texto: 1.1.1.
Fecha de primera publicación: 15/01/2020.
Última edición: 15/01/2020.
Actualizar registro1.1.1 [15-01-2020]
Corrección de errores tipográficos.
1.1.0 [15-01-2020]
El código para preparar la base de datos nexcloud para habilitar la codificación de cuatro bytes ha sido corregido.
1.0.0 [15-01-2020]
Primera versión