Mājas mākoņa radÄ«Å”anas vēsture. 5. daļa. 2019. gada atjauninājums ā€” PHP 7.2, MariaDB 10.4 un Nextcloud 17

Pirms diviem gadiem es publicēju rakstu sēriju par tÄ«mekļa servera izveidi uz Debian 8 bāzes un pakalpojuma Nextcloud 11 palaiÅ”anu tajā. Dažus mēneÅ”us vēlāk parādÄ«jās papildinājums, kurā bija ietverta ā€œdiferenciālaā€ informācija par Nextcloud 13 instalÄ“Å”anu Debian. 9. 2018. gada beigās es tikko atjaunināju Debian un Nextcloud un nesaskāros ar neparastām vai interesantām problēmām. Atjauninājums 2019. gada beigās jau bija interesantāks un rakstÄ«Å”anas vērts.

Mājas mākoņa radÄ«Å”anas vēsture. 5. daļa. 2019. gada atjauninājums ā€” PHP 7.2, MariaDB 10.4 un Nextcloud 17

Å is raksts galvenokārt bÅ«s noderÄ«gs tiem, kuri saskaņā ar iepriekŔējo četru rakstu norādÄ«jumiem ā€œsamontējaā€ Nextcloud 13 operētājsistēmā Debian 9 (es sveicu apmēram duci savu abonentu par Nextcloud tēmu, Ä«paÅ”i tiem, kuriem Ŕī bija viņu pirmā pieredze Linux pasaulē). Tiem, kas plāno izveidot pakalpojumu no nulles, iesaku par pamatu ņemt pirmos četrus Ŕīs sērijas rakstus, kas pielāgoti paÅ”reizējām Debian 10 un Nextcloud 17 versijām. PieredzējuÅ”iem Linux lietotājiem raksts var aizņemt kādu vieta starp ā€œtriviāli un bezjēdzÄ«giā€ un ā€œnav slikti, viss vienā vietā krāpÅ”anās lapaā€.

Satura

1. daļa: Debian vides iestatīŔana ikdienas lietoŔanai
2. daļa: Servera izveide ā€” LAMP iestatÄ«Å”ana Debian
3. daļa. PersonÄ«gā mākoņa izveide - Nextcloud instalÄ“Å”ana un konfigurÄ“Å”ana
4. daļa. 2018. gada atjauninājums ā€” Debian 9 un Nextcloud 13
5. daļa. 2019. gada atjauninājums ā€” PHP 7.2, MariaDB 10.4 un Nextcloud 17

Ātra navigācija sadaļās

priekŔvārds
Debian atjauninājums
PHP atjaunināŔana uz versiju 7.2
MariaDB jaunināŔana uz versiju 10.4
Nextcloud atjaunināŔana uz versiju 17
Pēcvārds

priekŔvārds

Sākotnēji vēlējos instalēt un konfigurēt Nginx uz Debian 10, kam virsÅ« bez problēmām varēja uzinstalēt paÅ”reizējo Nextcloud 17. Bet nevarēju tam visam atrast laiku, tāpēc Å”is raksts ir instrukciju kopums atjaunināŔanai. Nextcloud no 13 uz paÅ”reizējo versiju 17 ar iepriekŔēju tÄ«mekļa servera sagatavoÅ”anu.

Pirmkārt, mums ir jāpaskaidro, kāpēc tÄ«mekļa servera pusē bija nepiecieÅ”amas radikālas izmaiņas. MÅ«su serveris ir balstÄ«ts uz paÅ”reizējo un atbalstÄ«to Debian 9. JÅ«s varat vienkārÅ”i atjaunināt operētājsistēmu, un visi tÄ«mekļa servera komponenti saņems vismaz droŔības atjauninājumus. Viss bÅ«tu lieliski, ja mēs turpinātu lietot Nextcloud 13 vai atjauninātu tikai lÄ«dz 14. versijai. Taču Nextcloud 13 vairs netiek atbalstÄ«ts, un 14. versijas atbalsts ir drÄ«zumā. Sākot no 15. versijas, Nexctcloud piedāvās konvertēt datubāzi uz big int, lai atbalstÄ«tu četru baitu kodējumu, un ar MariaDB 10.1 tas bÅ«s ļoti problemātiski. Programmai Nexctcloud 17 ir nepiecieÅ”ama PHP 7.1ā€“7.3, savukārt Debian 9 sākotnējās krātuvēs satur tikai versiju 7.0. UzticamÄ«bas un paredzamÄ«bas ziņā pareizāk bÅ«tu jaunināt uz Nextcloud priekÅ”pēdējo versiju, taču pēc pāris gadiem es kļuvu tik pārliecināts par Ŕī pakalpojuma uzticamÄ«bu, ka gribēju jaunināt uz jaunāko versiju un atjaunināt tÄ«mekļa serveris ar rezervi nākotnei. Tāpēc, lai atjauninātu uz Nexctcloud 17, ir optimāli atjaunināt MariaDB uz paÅ”reizējo stabilo versiju 10.4 un PHP uz 7.2. TieÅ”i 7.2, nevis paÅ”reizējais 7.4. Fakts ir tāds, ka Nextcloud 13 prasa PHP 5.6, 7.0ā€“7.2, bet Nexctcloud 17 prasa PHP 7.1ā€“7.3. Lai samazinātu atjaunināŔanas centienus, ir ērti izmantot PHP 7.2. Apache serveris nav jāatjaunina ā€“ vienkārÅ”i instalējiet droŔības atjauninājumus, ko izplata Debian atbalsta komanda. Bet MariaDB un PHP atjauninājumiem jums bÅ«s jāpievieno ārējie repozitoriji.

Kad es tikko iepazinos ar Nextcloud, es to atjaunināju ā€œar rokuā€: izmantojot Ä«paÅ”u komandu no konsoles, vietne tika pārslēgta uz uzturÄ“Å”anas režīmu, arhÄ«vs ar jauno vietnes versiju tika manuāli lejupielādēts un izpakots, faili tika atjaunināti un tika sākta atjaunināŔanas procedÅ«ra. Šāds atjauninājums parasti noveda pie gaidÄ«tajiem rezultātiem, lai gan man nebija slinkums izveidot vietnes, datu bāzes un lietotāja datu rezerves kopiju. Taču automātiskie atjauninājumi dažkārt radÄ«ja visdažādākos pārsteigumus. Bet tas bija sen, kopÅ” tā laika dzinēja stabilitāte ir ievērojami palielinājusies, un Å”oreiz es veicu atjauninājumus tikai caur tÄ«mekļa saskarni. Tiesa, es joprojām nevarēju atrauties no komandrindas. IteratÄ«vās atjaunināŔanas laikā katrai jaunajai versijai vadÄ«bas panelÄ« parādÄ«sies dažādi brÄ«dinājumi un paziņojumi, kas bÅ«s ā€œjānoņemā€, jēgpilni izpildot komandas komandrindā. Jums tas nav jādara ā€” pakalpojums joprojām darbosies. Lai gan Ŕī pieeja ir fundamentāli nepareiza, Nextcloud Å”ajā režīmā man strādāja 3 mēneÅ”us, pirms es mērÄ·tiecÄ«gi tiku galā ar raduÅ”ajām problēmām.

Debain atjauninājums

Apturēt tīmekļa serveri:

# service apache2 stop


Un mēs atjauninām:

# apt-get update
# apt-get dist-upgrade


Pēc atjaunināŔanas varat pārbaudÄ«t OS versiju un veikt pārbaudes atsāknÄ“Å”anu, lai pārliecinātos, ka pēc atjaunināŔanas viss sākas kā parasti:

# cat /etc/debian_version
# reboot


PHP atjaunināŔana uz versiju 7.2

Apturēt tīmekļa serveri:

# service apache2 stop


Pievienojiet sertifikātu un PPA atslēgas, PHP repozitoriju:

# 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


DzÄ“Å”ot veco PHP 7.0 versiju, tiks dzēsts arÄ« phpmyadmin, jo mēs nodzēsÄ«sim ā€œpēdasā€ no izdzēstajām pakotnēm, izmantojot autoremove. Tas neradÄ«s Ä«paÅ”as grÅ«tÄ«bas, jo phpmyadmin netika veikti Ä«paÅ”i iestatÄ«jumi, un tā atkārtota instalÄ“Å”ana neradÄ«s nekādas problēmas.

# apt-get purge php7*
# apt-get --purge autoremove
# apt-get update
# apt-get install php7.2 phpmyadmin


Moduļu instalÄ“Å”ana, kas nepiecieÅ”ami 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


[ Šis teksts rakstīts tieŔi vietnei www.habr.com autors AleksandrsS.
Saite uz avotu nav obligāta, taču ļoti ieteicams to pieminēt! ]

Mēs pārbaudām PHP versiju, startējam tīmekļa serveri un pārbaudām Nextcloud funkcionalitāti:

# php -v
# service apache2 start


MariaDB jaunināŔana uz versiju 10.4

Projekta mājaslapā ir interesanta lapa, kur jānorāda sava OS, tās izlaidums un jāizvēlas datu bāzes versija. Kad tas ir atlasÄ«ts, tiks Ä£enerēts kods repozitorija pievienoÅ”anai.

Apturēt tīmekļa serveri:

# service apache2 stop


Pievienojiet repozitoriju un atjauniniet pakotnes:

# 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


Instalējot MariaDB, pakotņu pārvaldnieks pareizi noņems iepriekŔējo versiju un instalēs jauno, bet visas datu bāzes tiks saglabātas. Tomēr, protams, ieteicams izveidot Nextcloud datu bāzes rezerves kopiju.

Instalējiet MariaDB un sāciet atjaunināŔanas procedÅ«ru:

# apt-get install mariadb-server
# mysql_upgrade u root -p


Pēc paroles ievadÄ«Å”anas MariaDB tiks atjaunināts, un jÅ«s varat to konfigurēt, veicot tālāk norādÄ«tās darbÄ«bas instrukcijas no otrās daļas:

# mysql_secure_installation


Mēs palaižam tīmekļa serveri un pārbaudām Nextcloud funkcionalitāti:

# service apache2 start


Nextcloud atjaunināŔana uz versiju 17

Lai sāktu atjaunināŔanu, jums ir jāpiesakās pakalpojumā ar administratÄ«vo kontu, dodieties uz iestatÄ«jumiem un administratÄ«vajā sadaļā atveriet ā€œVispārÄ«gie iestatÄ«jumiā€. Nextcloud parāda instalēto versiju un atjauninājumam pieejamo versiju, kuru var palaist, noklikŔķinot uz pogas ā€œAtvērt atjaunināŔanas loguā€. Pēc palaiÅ”anas Nextcloud izveido dublējumu, lejupielādē un pārbauda atjaunināŔanas failu integritāti, ieslēdz apkopes režīmu un atjaunina failus. Nākamais ir jautājums ā€œSaglabāt apkopes režīmu aktÄ«vuā€? Å eit jums jābÅ«t uzmanÄ«giem. PozitÄ«va atbilde atstās vietni uzturÄ“Å”anas režīmā - tiek pieņemts, ka administrators zina, kas jādara tālāk, un darÄ«s to manuāli. Pretējā gadÄ«jumā Nextcloud visu darÄ«s pats, tāpēc noklikŔķiniet uz pogas "Nē", lai turpinātu.

Atjauninājumi tiek veikti iteratÄ«vi. Pirmkārt, Nextcloud 13.x tiks atjaunināts uz jaunāko 14.x filiāles versiju. Pēc tam jums bÅ«s vēlreiz jādodas uz administrÄ“Å”anas centru un jāsāk atjaunināŔana, tagad no 14.x lÄ«dz 15.x. Un tā tālāk, lÄ«dz tiek sasniegta pēdējā iespējamā paÅ”reizējā versija. Pēc katra atjauninājuma administratÄ«vās sadaļas lapā ā€œVispārÄ«gie iestatÄ«jumiā€ tiks parādÄ«ts ieteikumu un raduÅ”os problēmu saraksts, kā arÄ« ieteikumi to risināŔanai. Tālāk mēs runāsim par to, kas jādara pēc katra atjauninājuma.

Līdz atjaunināŔanai

Jaunākajās Nextcloud versijās ir ieteicams iespējot PHP OPcache, lai uzlabotu veiktspēju. DÄ«vaini, ka es kaut kā palaidu garām Å”o punktu pirms pāris gadiem, jo ā€‹ā€‹OPcache parādÄ«jās PHP 5. Mapē /etc/php/7.2/apache2/php.ini ir jāatņem komentāri un jārediģē Ŕādi parametri:

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


Atjaunināt 13.x ā€”> 14.x

Tabulu indeksu atjaunoŔana:

# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices


Atjaunināt 14.x ā€”> 15.x

Mēs sagatavojam nextcloud datu bāzi, lai iespējotu četru baitu kodējumu:

# mysql -u root -p
MariaDB [(none)]> ALTER DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> quit


Iespējot atbalstu četru baitu kodÄ“Å”anai programmā Nextcloud:

# sudo -u www-data php /var/www/nextcloud/occ config:system:set mysql.utf8mb4 --type boolean --value="true"


Tabulu konvertēŔana:

# sudo -u www-data php /var/www/nextcloud/occ maintenance:repair


Zaudēto tabulas indeksu atkopÅ”ana:

# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices


Konvertēt tabulas indeksus uz bigint:

# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint


Atjaunināt 15.x ā€”> 16.x

Zaudēto tabulas indeksu atkopÅ”ana:

# sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices


Konvertēt tabulas indeksus uz bigint:

# sudo -u www-data php /var/www/nextcloud/occ db:convert-filecache-bigint


Atjaunināt 16.x ā€”> 17.x

Papildu darbība nav nepiecieŔama.

Pēcvārds

Pēc Å”iem norādÄ«jumiem tika atjaunināta virtuālā maŔīna ar Nextcloud 13. Virtuālās maŔīnas izmantoÅ”ana ļauj neveidot Nextcloud failu un tās datu bāzes dublējumkopijas, jo problēmu gadÄ«jumā var vienkārÅ”i atgriezt iepriekÅ” saglabāto virtuālās maŔīnas failu un sākt visu no sākuma. atkal. Tomēr tas neattiecas uz mapi ar lietotāja datiem, kuras es arÄ« iesaku dublēt kopā ar virtuālo maŔīnu, izmantojot Nextcloud. Manā gadÄ«jumā ā€œmākonisā€ tiek izmantots kā attālā mape ar automātisku versiju veidoÅ”anu un ar sinhronizācijas virzienu ā€œtikai turā€, un Å”o datu pazaudÄ“Å”ana man nebija kritiska - man vienkārÅ”i bÅ«tu jāveic sinhronizācija vairākas stundas. . Neskatoties uz to, ka es neievēroju mūža noteikumu ā€œsaglabāt katram gadÄ«jumamā€, atjaunināŔana noritēja bez problēmām, un visi klienti bez problēmām sāka strādāt ar Nextcloud 17. Esmu pārsteigts, Frenk Karlitshek ā€” jums un jÅ«su komandai veicas lieliski. darbs!

Pēc atjaunināŔanas nolēmu notÄ«rÄ«t lietotāja datus, kas, spriežot pēc statistikas, aizņēma aptuveni divus terabaitus. Man nebija tik daudz darbÄ«bas datu ā€” lielāko daļu apjoma aizņēma versiju faili un izdzēstie faili. Problēma, ar kuru es saskāros, bija tāda, ka vienam lietotājam bija tik daudz izdzēstu datu (tas nav pat apjoma jautājums, bet gan daudzums - daudz mazu failu), ka Nextcloud nevarēja tos parādÄ«t tÄ«mekļa saskarnē. IzpētÄ«jis administrÄ“Å”anas rokasgrāmatu, es atradu risinājumu, izmantojot komandrindu. VarbÅ«t kādam Å”is noderēs.

Lai notīrītu izdzēstos lietotāja failus:

# sudo -u www-data php /var/www/nextcloud/occ trashbin:cleanup user


Lai notīrītu lietotāja versiju failus:

# sudo -u www-data php /var/www/nextcloud/occ versions:cleanup user

Atgriezties uz sākumu, uz satura rādītāju.

Mājas mākoņa radÄ«Å”anas vēsture. 5. daļa. 2019. gada atjauninājums ā€” PHP 7.2, MariaDB 10.4 un Nextcloud 17
Teksta versija: 1.1.1.
Pirmās publikācijas datums: 15.01.2020.
Pēdējā rediģēŔanas datums: 15.01.2020.

Atjaunināt žurnālu1.1.1 [15-01-2020] Drukas kļūdu laboŔana.

1.1.0 [15-01-2020] Fiksēts nexcloud datu bāzes sagatavoÅ”anas kods, lai iespējotu četru baitu kodējumu.

1.0.0 [15-01-2020] Pirmā versija.

Avots: www.habr.com