Историјата на создавање на домашен облак. Дел 5. Ажурирање 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17

Пред две години објавив серија написи на тема создавање веб-сервер базиран на Debian 8 и водење на услугата Nextcloud 11 на него. Неколку месеци подоцна се појави додаток кој содржи „диференцијални“ информации за инсталирање на Nextcloud 13 на Debian 9. На крајот на 2018 година, само што ги ажурирав Debian и Nextcloud и не наидов на необични или интересни проблеми. Ажурирањето на крајот на 2019 година веќе беше поинтересно и вредеше да се пишува.

Историјата на создавање на домашен облак. Дел 5. Ажурирање 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17

Оваа статија првенствено ќе биде корисна за оние кои, според упатствата од претходните четири статии, го „собраа“ Nextcloud 13 на Debian 9 (се поздравувам со десетина мои претплатници на тема Nextcloud, особено на оние за кои ова беше нивното прво искуство во светот на Linux). За оние кои планираат да создадат услуга од нула, ве советувам да ги земете како основа првите четири статии од оваа серија, приспособени за тековните верзии на Debian 10 и Nextcloud 17. За искусни корисници на Linux, статијата може да потрае неколку место помеѓу „тривијално и бескорисно“ и „не е лошо, сè на едно место измамнички лист“.

Содржина

Дел 1: Поставување на Debian околина за секојдневна употреба
Дел 2: Создавање сервер - поставување LAMP на Debian
Дел 3. Создавање личен облак - инсталирање и конфигурирање на Nextcloud
Дел 4. Ажурирање 2018 – Debian 9 и Nextcloud 13
Дел 5. Ажурирање 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17

Брза навигација на поглавја

предговорот
Ажурирање на Дебиан
Ажурирање на PHP до верзија 7.2
Надградба на MariaDB на верзија 10.4
Ажурирање на Nextcloud на верзијата 17
Поговор

предговорот

Првично сакав да го инсталирам и конфигурирам Nginx на Debian 10, над кој може да се инсталира тековниот Nextcloud 17 без никакви проблеми. Nextcloud од 13 до тековната верзија 17 со прелиминарна подготовка на веб-серверот.

Прво, треба да објасниме зошто беа потребни радикални промени на страната на веб-серверот. Нашиот сервер се базира на тековниот и поддржан Debian 9. Можете едноставно да го ажурирате оперативниот систем и сите компоненти на веб-серверот ќе добиваат најмалку безбедносни ажурирања. Сè би било одлично ако продолжиме да го користиме Nextcloud 13 или ажурираме само на верзијата 14. Но, Nextcloud 13 повеќе не е поддржан, а поддршката за 14-та верзија е на излез. Почнувајќи од верзијата 15, Nexctcloud ќе понуди да ја претвори базата на податоци во big int за да поддржува кодирање од четири бајти, а со MariaDB 10.1 ова ќе биде многу проблематично. Nexctcloud 17 бара PHP 7.1-7.3, додека Debian 9 ја содржи само верзијата 7.0 во своите матични складишта. Би било поправилно, во однос на доверливоста и предвидливоста, да се надополни на претпоследната верзија на Nextcloud, но по неколку години станав толку уверен во веродостојноста на оваа услуга што сакав да ја надградам до најновата верзија и да ја ажурирам веб сервер со резерва за иднината. Затоа, за ажурирање на Nexctcloud 17, оптимално е да се ажурира MariaDB на тековната стабилна верзија 10.4, а PHP на 7.2. Точно 7.2, а не сегашната 7.4. Факт е дека Nextcloud 13 бара PHP 5.6, 7.0 - 7.2, а Nexctcloud 17 бара PHP 7.1 - 7.3. Удобно е да се користи PHP 7.2 за да се минимизираат напорите за ажурирање. Нема потреба да го ажурирате вашиот Apache-сервер - само инсталирајте ги безбедносните ажурирања дистрибуирани од тимот за поддршка на Debian. Но, за ажурирањата на MariaDB и PHP ќе мора да поврзете надворешни складишта.

Кога штотуку се запознав со Nextcloud, го ажурирав „рачно“: користејќи специјална команда од конзолата, страницата беше префрлена во режим на одржување, архивата со новата верзија на страницата беше рачно преземена и отпакувана, датотеките беа ажурирани и започна процедурата за ажурирање. Таквото ажурирање обично доведуваше до очекуваните резултати, иако не бев мрзлив во правењето резервна копија на страницата, базата на податоци и корисничките податоци. Но, автоматските ажурирања понекогаш доведоа до секакви изненадувања. Но, тоа беше одамна, стабилноста на моторот е многу зголемена оттогаш, и овој пат направив ажурирања исклучиво преку веб-интерфејсот. Точно, сè уште не можев да се извлечам од командната линија. За време на итеративно ажурирање на секоја нова верзија, во контролната табла ќе се појавуваат различни предупредувања и известувања, кои ќе треба да се „отстранат“ со смислено извршување на команди на командната линија. Не мора да го направите ова - услугата сè уште ќе работи. Иако овој пристап е фундаментално погрешен, Nextcloud работеше за мене во овој режим 3 месеци пред намерно да се занимавам со проблемите што се појавија.

Ажурирање на Debain

Запрете го веб-серверот:

# service apache2 stop


И ние ажурираме:

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


По ажурирањето, можете да ја проверите верзијата на ОС и да направите тест рестартирање за да бидете сигурни дека сè започнува нормално по ажурирањето:

# cat /etc/debian_version
# reboot


Ажурирање на PHP до верзија 7.2

Запрете го веб-серверот:

# service apache2 stop


Додадете сертификат и клучеви PPA, складиште за 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


При бришење на старата верзија на PHP 7.0, ќе се избрише и phpmyadmin, бидејќи ќе ги избришеме „трагите“ од избришаните пакети користејќи автоматско отстранување. Ова нема да предизвика некои посебни потешкотии, бидејќи не беа направени посебни поставки за phpmyadmin и неговото повторно инсталирање нема да има никакви проблеми.

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


Инсталирање на модули потребни за 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


[ Овој текст напишано специјално за страницата www.habr.com автор АлександарС.
Врската до изворот е незадолжителна, но препорачливо е да се спомене! ]

Ја проверуваме верзијата на PHP, го стартуваме веб-серверот и ја проверуваме функционалноста на Nextcloud:

# php -v
# service apache2 start


Надградба на MariaDB на верзија 10.4

На веб-страницата на проектот постои интересна страница, каде што треба да го наведете вашиот ОС, неговото ослободување и да ја изберете верзијата на базата на податоци. Откако ќе се избере, ќе се генерира кодот за додавање на складиштето.

Запрете го веб-серверот:

# service apache2 stop


Додајте складиште и ажурирајте пакети:

# 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


При инсталирање на MariaDB, менаџерот на пакети правилно ќе ја отстрани претходната верзија и ќе ја инсталира новата, додека сите бази на податоци ќе бидат зачувани. Сепак, секако се препорачува да се направи резервна копија од базата на податоци Nextcloud.

Инсталирајте го MariaDB и започнете ја процедурата за ажурирање:

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


Откако ќе ја внесете лозинката, MariaDB ќе се ажурира и можете да ја конфигурирате следејќи инструкции од вториот дел:

# mysql_secure_installation


Го стартуваме веб-серверот и ја проверуваме функционалноста на Nextcloud:

# service apache2 start


Ажурирање на Nextcloud на верзијата 17

За да го започнете ажурирањето, треба да се најавите на услугата под административна сметка, да отидете во поставките и да отворите „Општи поставки“ во административниот дел. Nextcloud ја прикажува инсталираната верзија и верзијата достапна за ажурирање, која може да се стартува со кликнување на копчето „Отвори прозорец за ажурирање“. Откако ќе се иницира, Nextcloud прави резервна копија, презема и го потврдува интегритетот на датотеките за ажурирање, го вклучува режимот за одржување и ги ажурира датотеките. Следно доаѓа прашањето „Да се ​​задржи активен режимот на одржување“? Тука треба да бидете внимателни. Позитивниот одговор ќе ја остави страницата во режим на одржување - се претпоставува дека администраторот знае што да прави следно и ќе го направи тоа рачно. Во спротивно, Nextcloud ќе стори сé што е сам, па кликнете на копчето „Не“ за да продолжите.

Ажурирањата се вршат повторливо. Прво, Nextcloud 13.x ќе се ажурира на најновата верзија на гранката 14.x. После ова, ќе треба повторно да отидете во администраторскиот центар и да го започнете ажурирањето, сега од 14.x на 15.x. И така натаму додека не се достигне последната можна моментална верзија. По секое ажурирање, на страницата „Општи поставки“ во административниот дел, ќе се прикаже список со предлози и проблеми со кои се соочиле, како и препораки за нивно решавање. Подолу ќе зборуваме за тоа што треба да се направи по секое ажурирање.

До ажурирањето

На најновите верзии на Nextcloud, се препорачува да се овозможи PHP OPcache за да се подобрат перформансите. Чудно е што некако ја пропуштив оваа точка пред неколку години, бидејќи OPcache се појави во PHP 5. Во /etc/php/7.2/apache2/php.ini треба да ги отстраните коментарите и да ги уредите следните параметри:

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


Ажурирање 13.x -> 14.x

Враќање на индекси на табели:

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


Ажурирање 14.x -> 15.x

Ја подготвуваме следната база на податоци за облак за да овозможиме кодирање од четири бајти:

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


Овозможете поддршка за кодирање од четири бајти во Nextcloud:

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


Конвертирање на табели:

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


Враќање на индекси на изгубени табели:

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


Претворете ги индексите на табелите во бигинт:

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


Ажурирање 15.x -> 16.x

Враќање на индекси на изгубени табели:

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


Претворете ги индексите на табелите во бигинт:

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


Ажурирање 16.x -> 17.x

Не е потребно дополнително дејство.

Поговор

Следејќи ги овие упатства, беше ажурирана виртуелна машина со Nextcloud 13. Користењето виртуелна машина ви овозможува да не правите резервни копии на датотеките Nextcloud и неговата база на податоци, бидејќи во случај на проблеми можете едноставно да ја вратите претходно зачуваната датотека на виртуелната машина и да започнете од почеток повторно. Сепак, ова не се однесува на папката со кориснички податоци, што исто така препорачувам да направите резервна копија заедно со виртуелната машина со Nextcloud. Во мојот случај, „облакот“ се користи како далечинска папка со автоматско верзиирање и со насоката за синхронизација „само таму“, а губењето на овие податоци не беше критично за мене - само ќе треба да ја направам синхронизацијата повторно неколку часа . И покрај моето непочитување на доживотното правило „зачувај за секој случај“, ажурирањето помина без никакви проблеми и сите клиенти почнаа да работат со Nextcloud 17 без никакви проблеми. Импресиониран сум, Френк Карлитшек - ти и твојот тим правиш одлично работа!

По ажурирањето, решив да ги исчистам корисничките податоци, кои, судејќи според статистиката, зафаќаа околу два терабајти. Немав толку многу оперативни податоци - поголемиот дел од волуменот беше окупиран од датотеки со верзија и избришани датотеки. Проблемот што го наидов беше дека за еден корисник имаше толку многу избришани податоци (не е прашање ни за волумен, туку за количина - многу мали датотеки) што Nextcloud не можеше да ги прикаже во веб-интерфејсот. Откако го проучував прирачникот за администрација, најдов решение преку командната линија. Можеби ова ќе биде корисно за некого.

За да ги избришете избришаните кориснички датотеки:

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


За да ги избришете датотеките со корисничка верзија:

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

Врати се до почетокот, до содржината.

Историјата на создавање на домашен облак. Дел 5. Ажурирање 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17
Текст верзија: 1.1.1.
Датум на прво објавување: 15.01.2020.
Датум на последно уредување: 15.01.2020 година.

Ажурирање на дневникот1.1.1 [15-01-2020] Исправување на печатни грешки.

1.1.0 [15-01-2020] Поправен код за подготовка на базата на податоци на nexcloud за да се овозможи кодирање од четири бајти.

1.0.0 [15-01-2020] Првата верзија.

Извор: www.habr.com