Antaŭ du jaroj mi publikigis serion da artikoloj pri la temo krei retservilon bazitan sur Debian 8 kaj ruli sur ĝi la servon Nextcloud 11. Kelkajn monatojn poste aperis aldono enhavanta "diferencajn" informojn pri instalo de Nextcloud 13 sur Debian. 9. Fine de 2018, mi ĵus ĝisdatigis Debian kaj Nextcloud kaj ne renkontis nekutimajn aŭ interesajn problemojn. La ĝisdatigo fine de 2019 jam estis pli interesa kaj priskribinda.
Ĉi tiu artikolo estos ĉefe utila al tiuj, kiuj laŭ la instrukcioj de la antaŭaj kvar artikoloj "kunmetis" Nextcloud 13 sur Debian 9 (mi salutas ĉirkaŭ dekduon da miaj abonantoj pri la temo Nextcloud, precipe al tiuj, por kiuj tio estis ilia unua sperto en la mondo de Linukso). Por tiuj, kiuj planas krei servon de nulo, mi konsilas al vi preni kiel bazon la unuajn kvar artikolojn de ĉi tiu serio, alĝustigitaj por la nunaj versioj de Debian 10 kaj Nextcloud 17. Por spertaj uzantoj de Linukso, la artikolo povas preni kelkajn. loko inter "triviala kaj senutila" kaj "ne malbona, tute-en-unu-loka trompfolio."
Enhavtabelo
Rapida navigado de ĉapitroj
Antaŭparolo
Komence, mi volis instali kaj agordi Nginx sur Debian 10, super kiu la nuna Nextcloud 17 povus esti instalita senprobleme.Sed mi ne povis trovi la tempon por ĉio ĉi, do ĉi tiu artikolo estas aro de instrukcioj por ĝisdatigo. Nextcloud de 13 ĝis la nuna versio 17 kun prepara preparado de la retservilo.
Unue, ni devas klarigi kial radikalaj ŝanĝoj estis postulataj ĉe la retejo-servilo. Nia servilo baziĝas sur la nuna kaj subtenata Debian 9. Vi povas simple ĝisdatigi la operaciumon kaj ĉiuj komponantoj de la retservilo ricevos almenaŭ sekurecajn ĝisdatigojn. Ĉio estus bonega se ni daŭrigus uzi Nextcloud 13 aŭ ĝisdatigi nur al versio 14. Sed Nextcloud 13 ne plu estas subtenata, kaj subteno por la 14-a versio estas eliranta. Komencante kun versio 15, Nexctcloud proponos konverti la datumbazon al big int por subteni kvar-bajtan kodigon, kaj kun MariaDB 10.1 tio estos tre problema. Nexctcloud 17 postulas PHP 7.1-7.3, dum Debian 9 nur enhavas version 7.0 en siaj indiĝenaj deponejoj. Estus pli ĝuste, laŭ fidindeco kaj antaŭvidebleco, ĝisdatigi al la antaŭlasta versio de Nextcloud, sed post kelkaj jaroj mi iĝis tiom memfida pri la fidindeco de ĉi tiu servo, ke mi volis ĝisdatigi al la plej nova versio kaj ĝisdatigi la retservilo kun rezervo por la estonteco. Tial, por ĝisdatigi al Nexctcloud 17, estas optimume ĝisdatigi MariaDB al la nuna stabila versio 10.4, kaj PHP al 7.2. Ĝuste 7.2, ne la nuna 7.4. Fakte, Nextcloud 13 postulas PHP 5.6, 7.0 - 7.2, kaj Nexctcloud 17 postulas PHP 7.1 - 7.3. Estas oportune uzi PHP 7.2 por minimumigi ĝisdatigajn klopodojn. Ne necesas ĝisdatigi vian Apache-servilon - nur instalu la sekurecajn ĝisdatigojn distribuitajn de la Debian-subtena teamo. Sed por ĝisdatigoj de MariaDB kaj PHP vi devos konekti eksterajn deponejojn.
Kiam mi ĵus konatiĝis kun Nextcloud, mi ĝisdatigis ĝin "mane": uzante specialan komandon de la konzolo, la retejo estis ŝanĝita al prizorga reĝimo, la arkivo kun la nova versio de la retejo estis mane elŝutita kaj malpakita, la dosieroj. estis ĝisdatigitaj kaj la ĝisdatiga proceduro estis komencita. Tia ĝisdatigo kutime kondukis al la atendataj rezultoj, kvankam mi ne maldiligentis fari sekurkopion de la retejo, datumbazo kaj uzantdatumoj. Sed aŭtomataj ĝisdatigoj foje kaŭzis ĉiajn surprizojn. Sed tio estis antaŭ longa tempo, la stabileco de la motoro multe pliiĝis ekde tiam, kaj ĉi-foje mi faris ĝisdatigojn ekskluzive per la retejo-interfaco. Vere, mi ankoraŭ ne povis foriri de la komandlinio. Dum ripeta ĝisdatigo de ĉiu nova versio, diversaj avertoj kaj sciigoj aperos en la kontrolpanelo, kiu devos esti "forigita" signife plenumante komandojn sur la komandlinio. Vi ne devas fari ĉi tion - la servo ankoraŭ funkcios. Kvankam ĉi tiu aliro estas esence malĝusta, Nextcloud laboris por mi en ĉi tiu reĝimo dum 3 monatoj antaŭ ol mi celkonscie traktis la problemojn kiuj aperis.
Debain ĝisdatigo
Haltu la retservilon:
# service apache2 stop
Kaj ni ĝisdatigas:
# apt-get update
# apt-get dist-upgrade
Post la ĝisdatigo, vi povas kontroli la OS-version kaj fari provan rekomencon por certigi, ke ĉio komenciĝas normale post la ĝisdatigo:
# cat /etc/debian_version
# reboot
Ĝisdatigante PHP al versio 7.2
Haltu la retservilon:
# service apache2 stop
Aldonu atestilon kaj PPA-ŝlosilojn, PHP-deponejon:
# 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
Kiam vi forigas la malnovan version de PHP 7.0, phpmyadmin ankaŭ estos forigita, ĉar ni forigos la "spurojn" de la forigitaj pakaĵoj per aŭtoremove. Ĉi tio ne kaŭzos apartajn malfacilaĵojn, ĉar neniuj specialaj agordoj estis faritaj por phpmyadmin kaj instali ĝin denove ne estos problemoj.
# apt-get purge php7*
# apt-get --purge autoremove
# apt-get update
# apt-get install php7.2 phpmyadmin
Instalado de moduloj necesaj por 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
[
Ligo al la fonto estas nedeviga, sed mencii ĝin estas tre rekomendinda! ]
Ni kontrolas la PHP-version, lanĉas la retservilon kaj kontrolas la funkciojn de Nextcloud:
# php -v
# service apache2 start
Ĝisdatigante MariaDB al versio 10.4
En la retejo de la projekto estas
Haltu la retservilon:
# service apache2 stop
Aldonu deponejon kaj ĝisdatigu pakaĵojn:
# 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
Instalante MariaDB, la pakaĵmanaĝero ĝuste forigos la antaŭan version kaj instalos la novan, dum ĉiuj datumbazoj estos konservitaj. Tamen, estas kompreneble rekomendite fari rezervan kopion de la Nextcloud-datumbazo.
Instalu MariaDB kaj komencu la ĝisdatigan proceduron:
# apt-get install mariadb-server
# mysql_upgrade u root -p
Post enigi la pasvorton, MariaDB ĝisdatigos kaj vi povas agordi ĝin sekvante
# mysql_secure_installation
Ni lanĉas la retservilon kaj kontrolas la funkciojn de Nextcloud:
# service apache2 start
Ĝisdatigante Nextcloud al versio 17
Por komenci la ĝisdatigon, vi devas ensaluti al la servo sub administra konto, iru al agordoj kaj malfermi "Ĝeneralajn agordojn" en la administra sekcio. Nextcloud montras la instalitan version kaj la disponeblan version por ĝisdatigo, kiuj povas esti lanĉitaj alklakante la butonon "Malfermu ĝisdatigfenestron". Post kiam komencite, Nextcloud faras sekurkopion, elŝutas kaj kontrolas la integrecon de la ĝisdatigaj dosieroj, ŝaltas prizorgan reĝimon kaj ĝisdatigas la dosierojn. Poste venas la demando "Konservu prizorgan reĝimon aktiva"? Vi devas esti singarda ĉi tie. Pozitiva respondo lasos la retejon en bontena reĝimo - oni supozas, ke la administranto scias kion fari poste kaj faros ĝin permane. Alie, Nextcloud faros ĉion mem, do alklaku la butonon "Ne" por daŭrigi.
Ĝisdatigoj estas faritaj ripete. Unue, Nextcloud 13.x estos ĝisdatigita al la plej nova versio de la branĉo 14.x. Post ĉi tio, vi devos iri al la administra centro denove kaj komenci la ĝisdatigon, nun de 14.x al 15.x. Kaj tiel plu ĝis la lasta ebla aktuala versio estos atingita. Post ĉiu ĝisdatigo, sur la paĝo "Ĝeneralaj Agordoj" en la administra sekcio, listo de sugestoj kaj problemoj renkontitaj, same kiel rekomendoj por solvi ilin, estos montrita. Malsupre ni parolos pri tio, kion oni devas fari post ĉiu ĝisdatigo.
Antaŭ ĝisdatigo
En la plej novaj versioj de Nextcloud, oni rekomendas ebligi PHP OPcache por plibonigi rendimenton. Estas strange, ke mi iel maltrafis ĉi tiun punkton antaŭ kelkaj jaroj, ĉar OPcache aperis en PHP 5. En /etc/php/7.2/apache2/php.ini vi devas malkomenti kaj redakti la jenajn parametrojn:
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
Ĝisdatigo 13.x -> 14.x
Restarigante tabelindeksojn:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Ĝisdatigo 14.x -> 15.x
Ni preparas la nextcloud-datumbazon por ebligi kvar-bajtan kodigon:
# mysql -u root -p
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> quit
Ebligu subtenon por kvar-bajta kodado en Nextcloud:
# sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"
Konverti tabeloj:
# sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
Reakiro de perditaj tabelindeksoj:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Konverti tabelindeksojn al bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Ĝisdatigo 15.x -> 16.x
Reakiro de perditaj tabelindeksoj:
# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
Konverti tabelindeksojn al bigint:
# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint
Ĝisdatigo 16.x -> 17.x
Neniu kroma ago estas bezonata.
Antaŭparolo
Sekvante ĉi tiujn instrukciojn, virtuala maŝino kun Nextcloud 13 estis ĝisdatigita. Uzado de virtuala maŝino ebligas al vi ne fari rezervajn kopiojn de Nextcloud-dosieroj kaj ĝia datumbazo, ĉar en kazo de problemoj vi povas simple resendi la antaŭe konservitan virtualan maŝinan dosieron kaj rekomenci. denove. Tamen, ĉi tio ne validas por la dosierujo kun uzantdatenoj, kiun mi ankaŭ rekomendas subteni kune kun la virtuala maŝino kun Nextcloud. En mia kazo, la "nubo" estas uzata kiel fora dosierujo kun aŭtomata versio, kaj kun la sinkroniga direkto "nur tie", kaj perdi ĉi tiujn datumojn ne estis maltrankviliga por mi - mi nur devus fari la sinkronigon denove dum kelkaj horoj. . Malgraŭ mia malrespekto por la dumviva "konservi por se okaze" regulo, la ĝisdatigo iris senprobleme kaj ĉiuj klientoj komencis labori kun Nextcloud 17 senprobleme. Mi estas impresita, Frank Karlitshek - vi kaj via teamo bonege faras laboro!
Post la ĝisdatigo, mi decidis forigi la uzantdatumojn, kiuj, se juĝante laŭ la statistiko, okupis ĉirkaŭ du terabajtojn. Mi ne havis tiom da operaciaj datumoj - plejparto de la volumo estis okupita de versio-dosieroj kaj forigitaj dosieroj. La problemo, kiun mi renkontis, estis, ke por unu uzanto estis tiom da forigitaj datumoj (eĉ ne temas pri volumeno, sed kvanto - multaj malgrandaj dosieroj), ke Nextcloud ne povis montri ĝin en la retinterfaco. Studinte la administran manlibron, mi trovis solvon per la komandlinio. Eble ĉi tio utilos al iu.
Por forigi forigitajn uzantdosierojn:
# sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user
Por forigi uzantajn versiodosierojn:
# sudo -u www-data php /var/www/nextcloud/occ versions:cleanup user
Reveno
La historio de la kreado de hejma nubo. Parto 5. Ĝisdatigo 2019 - PHP 7.2, MariaDB 10.4 kaj Nextcloud 17
Teksta versio: 1.1.1.
Dato de unua publikigo: 15.01.2020/XNUMX/XNUMX.
Lasta redakta dato: 15.01.2020/XNUMX/XNUMX.
Ĝisdatigi protokolon1.1.1 [15-01-2020] Korekto de eraroj.
1.1.0 [15-01-2020] Fiksa nexcloud datumbaza preparkodo por ebligi kvar-bajtan kodigon.
1.0.0 [15-01-2020] Unua versio.
fonto: www.habr.com