Fa dos anys vaig publicar una sèrie d'articles sobre el tema de la creació d'un servidor web basat en Debian 8 i llançant-hi el servei Nextcloud 11. Uns mesos més tard, va aparèixer una addenda que contenia informació "diferencial" sobre la instal·lació del Nextcloud 13 a Debian 9. A finals del 2018 acabo d'actualitzar Debian i Nextcloud i no vaig trobar cap problema inusual o interessant. L'actualització de finals del 2019 va ser més interessant i val la pena escriure-hi.

Aquest article serà principalment útil per a aquells que, seguint les instruccions dels quatre articles anteriors, han "muntat" Nextcloud 13 per si mateixos. Debian 9 (Envio salutacions als meus deu subscriptors sobre el tema de Nextcloud, especialment a aquells per als quals aquesta va ser la primera experiència al món) Linux). Per a aquells que planegen construir el servei des de zero, recomano utilitzar els primers quatre articles d'aquesta sèrie com a base, amb ajustaments per a les versions actuals. Debian 10 i Nextcloud 17. Per a usuaris avançats Linux L'article podria estar entre "trivial i inútil" i "no està malament, una guia completa".
Taula de continguts
Navegació ràpida per capítols
Prefaci
Inicialment volia Debian 10, instal·leu i configureu Nginx, que hauria estat compatible fàcilment amb l'últim Nextcloud 17. Tanmateix, no vaig tenir temps per a tot això, així que aquest article és un conjunt d'instruccions per actualitzar Nextcloud de la versió 13 a l'última versió 17, amb la preparació preliminar del servidor web.
Primer, hem d'explicar per què van caldre canvis radicals al servidor web. El nostre servidor està basat en un sistema actual i compatible Debian 9. Simplement podeu actualitzar el sistema operatiu i tots els components del servidor web rebran com a mínim actualitzacions de seguretat. Tot aniria bé si continuéssim utilitzant Nextcloud 13 o només actualitzéssim a la versió 14. Tanmateix, Nextcloud 13 ja no és compatible i la compatibilitat amb la versió 14 està disminuint. A partir de la versió 15, Nextcloud oferirà convertir la base de dades a big int per admetre la codificació de quatre bytes, i amb MariaDB 10.1, això serà molt problemàtic. Nextcloud 17 requereix PHP 7.1-7.3, mentre que Debian La versió 9 només conté la versió 7.0 als seus repositoris nadius. La solució correcta, pel que fa a la fiabilitat i la predictibilitat, seria actualitzar a la penúltima versió de Nextcloud, però durant els darrers dos anys, he agafat tanta confiança en la fiabilitat del servei que volia actualitzar a la darrera versió i actualitzar el servidor web per al futur. Per tant, per actualitzar a Nextcloud 17, és òptim actualitzar MariaDB a la versió estable actual 10.4 i PHP a 7.2. Concretament, 7.2, no l'actual 7.4. El fet és que Nextcloud 13 requereix PHP 5.6, 7.0 requereix 7.2 i Nextcloud 17 requereix PHP 7.1-7.3. L'ús de PHP 7.2 és convenient per minimitzar l'esforç d'actualització. No caldrà actualitzar el servidor Apache; n'hi ha prou amb instal·lar les actualitzacions de seguretat distribuïdes per l'equip de suport. DebianTanmateix, per a les actualitzacions de MariaDB i PHP, haureu de connectar repositoris externs.
Quan acabava de familiaritzar-me amb Nextcloud, el vaig actualitzar "a mà": mitjançant una comanda especial de la consola, el lloc es va canviar al mode de manteniment, l'arxiu amb la nova versió del lloc es va descarregar i desempaquetar manualment, els fitxers s'han actualitzat i s'ha iniciat el procediment d'actualització. Aquesta actualització normalment portava als resultats esperats, tot i que no em feia mandra fer una còpia de seguretat del lloc, la base de dades i les dades dels usuaris. Però les actualitzacions automàtiques de vegades portaven a tot tipus de sorpreses. Però d'això fa molt de temps, l'estabilitat del motor ha augmentat molt des de llavors, i aquesta vegada he fet actualitzacions exclusivament a través de la interfície web. És cert que encara no he pogut allunyar-me de la línia d'ordres. Durant una actualització iterativa de cada versió nova, apareixeran diversos avisos i notificacions al tauler de control, que s'hauran d'"eliminar" executant ordres de manera significativa a la línia d'ordres. No cal que feu això: el servei continuarà funcionant. Tot i que aquest enfocament és fonamentalment incorrecte, Nextcloud va treballar per a mi en aquest mode durant 3 mesos abans de tractar deliberadament els problemes que van sorgir.
Debain actualització
Atura el servidor web:
# service apache2 stop
I actualitzem:
# apt-get update
# apt-get dist-upgrade
Després de l'actualització, podeu comprovar la versió del sistema operatiu i fer una prova de reinici per assegurar-vos que tot comença amb normalitat després de l'actualització:
# cat /etc/debian_version
# reboot
S'està actualitzant PHP a la versió 7.2
Atura el servidor web:
# service apache2 stop
Afegiu certificat i claus PPA, dipòsit PHP:
# apt install ca-certificates apt-transport-https
# wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
# echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list
En eliminar la versió antiga de PHP 7.0, phpmyadmin també s'eliminarà, ja que esborrarem les "traces" dels paquets suprimits mitjançant l'eliminació automàtica. Això no causarà cap dificultat particular, ja que no es va fer cap configuració especial per a phpmyadmin i tornar-lo a instal·lar no suposarà cap problema.
# apt-get purge php7*
# apt-get --purge autoremove
# apt-get update
# apt-get install php7.2 phpmyadmin
Instal·lació dels mòduls necessaris per a Nextcloud 17:
# apt-get install php7.2-mysql php7.2-curl php7.2-xml php7.2-gd php7.2-json php7.2-mbstring php7.2-zip php7.2-intl
# apt-get install php-memcached php-apcu php-redis php-imagick
[ escrit específicament per al lloc per l'autor .
Un enllaç a la font és opcional, però es recomana esmentar-lo! ]
Comprovem la versió de PHP, iniciem el servidor web i comprovem la funcionalitat de Nextcloud:
# php -v
# service apache2 start
Actualització de MariaDB a la versió 10.4
A la web del projecte hi ha , on heu d'indicar el vostre sistema operatiu, el seu llançament i seleccionar la versió de la base de dades. Un cop seleccionat, es generarà el codi per afegir el repositori.
Atura el servidor web:
# service apache2 stop
Afegiu un repositori i actualitzeu paquets:
# apt-get install software-properties-common dirmngr
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.mirror.iweb.com/repo/10.4/debian stretch main'
# apt-get update
En instal·lar MariaDB, el gestor de paquets eliminarà correctament la versió anterior i n'instal·larà la nova, mentre que totes les bases de dades es conservaran. Tanmateix, per descomptat, es recomana fer una còpia de seguretat de la base de dades Nextcloud.
Instal·leu MariaDB i inicieu el procediment d'actualització:
# apt-get install mariadb-server
# mysql_upgrade u root -p
Després d'introduir la contrasenya, MariaDB s'actualitzarà i podeu configurar-la seguint :
# mysql_secure_installation
Llencem el servidor web i comprovem la funcionalitat de Nextcloud:
# service apache2 start
Actualització de Nextcloud a la versió 17
Per iniciar l'actualització, cal que inicieu sessió al servei amb un compte d'administrador, aneu a la configuració i obriu "Configuració general" a la secció administrativa. Nextcloud mostra la versió instal·lada i la versió disponible per a l'actualització, que es pot iniciar fent clic al botó "Obre la finestra d'actualització". Un cop iniciat, Nextcloud fa una còpia de seguretat, baixa i verifica la integritat dels fitxers d'actualització, activa el mode de manteniment i actualitza els fitxers. A continuació ve la pregunta "Mantenir el mode de manteniment actiu"? Cal anar amb compte aquí. Una resposta positiva deixarà el lloc en mode de manteniment: se suposa que l'administrador sap què ha de fer a continuació i ho farà manualment. En cas contrari, Nextcloud ho farà tot ell mateix, així que feu clic al botó "No" per continuar.
Les actualitzacions es realitzen de manera iterativa. En primer lloc, Nextcloud 13.x s'actualitzarà a la darrera versió de la branca 14.x. Després d'això, haureu d'anar de nou al centre d'administració i iniciar l'actualització, ara de 14.x a 15.x. I així successivament fins que s'arribi a l'última versió actual possible. Després de cada actualització, a la pàgina "Configuració general" de la secció administrativa, es mostrarà una llista de suggeriments i problemes trobats, així com recomanacions per resoldre'ls. A continuació parlarem del que cal fer després de cada actualització.
Abans de l'actualització
A les últimes versions de Nextcloud, es recomana habilitar PHP OPcache per millorar el rendiment. És estrany que d'alguna manera em vaig perdre aquest punt fa un parell d'anys, ja que OPcache va aparèixer a PHP 5. A /etc/php/7.2/apache2/php.ini cal descomentar i editar els paràmetres següents:
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
Actualització 13.x -> 14.x
Restauració d'índexs de taules:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Actualització 14.x -> 15.x
Preparem la base de dades nextcloud per habilitar la codificació de quatre bytes:
# mysql -u root -p
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> quit
Activeu el suport per a la codificació de quatre bytes a Nextcloud:
# sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
Taules de conversió:
# sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
Recuperació d'índexs de taules perduts:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Converteix els índexs de la taula a bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Actualització 15.x -> 16.x
Recuperació d'índexs de taules perduts:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Converteix els índexs de la taula a bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Actualització 16.x -> 17.x
No es requereix cap acció addicional.
Paraula posterior
Seguint aquestes instruccions, s'ha actualitzat una màquina virtual amb Nextcloud 13. L'ús d'una màquina virtual permet no fer còpies de seguretat dels fitxers de Nextcloud i de la seva base de dades, ja que en cas de problemes només podeu tornar el fitxer de la màquina virtual desat anteriorment i començar de nou. de nou. Tanmateix, això no s'aplica a la carpeta amb dades d'usuari, que també recomano fer una còpia de seguretat juntament amb la màquina virtual amb Nextcloud. En el meu cas, el "núvol" s'utilitza com a carpeta remota amb versions automàtica i amb la direcció de sincronització "només allà", i perdre aquestes dades no va ser crític per a mi; només hauria de tornar a fer la sincronització durant diverses hores. . Malgrat el meu menyspreu per la regla "desa per si de cas" de tota la vida, l'actualització es va fer sense cap problema i tots els clients van començar a treballar amb Nextcloud 17 sense cap problema. Estic impressionat, Frank Karlitshek: tu i el teu equip esteu fent un gran treball. feina!
Després de l'actualització, vaig decidir esborrar les dades de l'usuari, que, a jutjar per les estadístiques, ocupaven uns dos terabytes. No tenia tantes dades operatives: la major part del volum estava ocupada per fitxers de versió i fitxers suprimits. El problema que em vaig trobar va ser que per a un usuari hi havia tantes dades esborrades (ni tan sols és una qüestió de volum, sinó de quantitat, molts fitxers petits) que Nextcloud no podia mostrar-les a la interfície web. Després d'estudiar el manual d'administració, vaig trobar una solució mitjançant la línia d'ordres. Potser això serà útil per a algú.
Per esborrar els fitxers d'usuari suprimits:
# sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user
Per esborrar els fitxers de versió d'usuari:
# sudo -u www-data php /var/www/nextcloud/occ versions:cleanup userTorna .
La història de la creació d'un núvol domèstic. Part 5. Actualització 2019: PHP 7.2, MariaDB 10.4 i Nextcloud 17
Versió de text: 1.1.1.
Data primera publicació: 15.01.2020/XNUMX/XNUMX.
Data de l'última modificació: 15.01.2020/XNUMX/XNUMX.
Actualitza el registre1.1.1 [15-01-2020]
Correcció de faltes tipogràfiques.
1.1.0 [15-01-2020]
S'ha corregit el codi de preparació de la base de dades de nexcloud per habilitar la codificació de quatre bytes.
1.0.0 [15-01-2020]
Primera versió.
Font: www.habr.com
