Историја стварања кућног облака. Део 5. Ажурирање 2019 – ПХП 7.2, МариаДБ 10.4 и Нектцлоуд 17

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

Историја стварања кућног облака. Део 5. Ажурирање 2019 – ПХП 7.2, МариаДБ 10.4 и Нектцлоуд 17

Овај чланак ће првенствено бити користан онима који су, према упутствима претходна четири чланка, „саставили“ Нектцлоуд 13 на Дебиан 9 (поздрављам десетак мојих претплатника на тему Нектцлоуд, посебно оне за које ово је било њихово прво искуство у свету Линука). За оне који планирају да креирају сервис од нуле, саветујем вам да за основу узмете прва четири чланка из ове серије, прилагођена актуелним верзијама Дебиана 10 и Нектцлоуд 17. За искусне кориснике Линук-а, чланак ће можда потрајати место између „тривијалног и бескорисног“ и „није лоше, све на једном месту варалице“.

Преглед садржаја

Део 1: Подешавање Дебиан окружења за свакодневну употребу
Део 2: Креирање сервера - подешавање ЛАМП-а на Дебиан-у
Део 3. Креирање личног облака - инсталирање и конфигурисање Нектцлоуда
Део 4. Ажурирање 2018 – Дебиан 9 и Нектцлоуд 13
Део 5. Ажурирање 2019 – ПХП 7.2, МариаДБ 10.4 и Нектцлоуд 17

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

Предговор
Дебиан ажурирање
Ажурирање ПХП-а на верзију 7.2
Надоградња МариаДБ-а на верзију 10.4
Ажурирање Нектцлоуда на верзију 17
Афтерворд

Предговор

У почетку сам желео да инсталирам и конфигуришем Нгинк на Дебиан 10, на који би се без проблема могао инсталирати тренутни Нектцлоуд 17. Али нисам могао да нађем времена за све ово, па је овај чланак скуп упутстава за ажурирање Нектцлоуд од 13 до тренутне верзије 17 са прелиминарном припремом веб сервера.

Прво, морамо да објаснимо зашто су потребне радикалне промене на страни веб сервера. Наш сервер је заснован на тренутном и подржаном Дебиан-у 9. Можете једноставно ажурирати оперативни систем и све компоненте веб сервера ће добити најмање безбедносна ажурирања. Све би било сјајно ако бисмо наставили да користимо Нектцлоуд 13 или ажурирали само на верзију 14. Али Нектцлоуд 13 више није подржан, а подршка за 14. верзију је на изласку. Почевши од верзије 15, Некцтцлоуд ће понудити конверзију базе података у биг инт да би подржао четворобајтно кодирање, а са МариаДБ 10.1 то ће бити веома проблематично. Некцтцлоуд 17 захтева ПХП 7.1-7.3, док Дебиан 9 садржи само верзију 7.0 у својим изворним репозиторијумима. Било би исправније, у смислу поузданости и предвидљивости, да надоградим на претпоследњу верзију Нектцлоуда, али сам после неколико година постао толико сигуран у поузданост овог сервиса да сам желео да надоградим на најновију верзију и ажурирам веб сервер са резервом за будућност. Стога, да бисте ажурирали на Некцтцлоуд 17, оптимално је ажурирати МариаДБ на тренутну стабилну верзију 10.4, а ПХП на 7.2. Тачно 7.2, не садашњи 7.4. Чињеница је да Нектцлоуд 13 захтева ПХП 5.6, 7.0 - 7.2, а Некцтцлоуд 17 ПХП 7.1 - 7.3. Погодно је користити ПХП 7.2 како би се минимизирали напори за ажурирање. Нема потребе да ажурирате свој Апацхе сервер - само инсталирајте безбедносне исправке које дистрибуира Дебиан тим за подршку. Али за ажурирања МариаДБ-а и ПХП-а мораћете да повежете спољна спремишта.

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

Дебаин упдате

Зауставите веб сервер:

# service apache2 stop


И ажурирамо:

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


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

# cat /etc/debian_version
# reboot


Ажурирање ПХП-а на верзију 7.2

Зауставите веб сервер:

# service apache2 stop


Додајте сертификат и ППА кључеве, ПХП спремиште:

# 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


Приликом брисања старе верзије ПХП-а 7.0, пхпмиадмин ће такође бити обрисан, пошто ћемо обрисати „трагове“ из избрисаних пакета помоћу ауторемове. Ово неће изазвати никакве посебне потешкоће, јер нису направљена посебна подешавања за пхпмиадмин и његово поновно инсталирање неће представљати никакав проблем.

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


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


[ Овај текст написан посебно за сајт ввв.хабр.цом Аутор АлекандерС.
Веза ка извору није обавезна, али је веома препоручљиво! ]

Проверавамо ПХП верзију, покрећемо веб сервер и проверавамо функционалност Нектцлоуда:

# php -v
# service apache2 start


Надоградња МариаДБ-а на верзију 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


Приликом инсталирања МариаДБ-а, менаџер пакета ће исправно уклонити претходну верзију и инсталирати нову, док ће све базе података бити сачуване. Међутим, наравно, препоручује се да направите резервну копију Нектцлоуд базе података.

Инсталирајте МариаДБ и покрените процедуру ажурирања:

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


Након што унесете лозинку, МариаДБ ће се ажурирати и можете је конфигурисати тако што ћете пратити упутства из другог дела:

# mysql_secure_installation


Покрећемо веб сервер и проверавамо функционалност Нектцлоуда:

# service apache2 start


Ажурирање Нектцлоуда на верзију 17

Да бисте започели ажурирање, потребно је да се пријавите на услугу под административним налогом, идите на подешавања и отворите „Општа подешавања“ у административном одељку. Нектцлоуд приказује инсталирану верзију и верзију доступну за ажурирање, која се може покренути кликом на дугме „Отвори прозор за ажурирање“. Када се покрене, Нектцлоуд прави резервну копију, преузима и проверава интегритет датотека ажурирања, укључује режим одржавања и ажурира датотеке. Следеће питање „Одржавање режима одржавања активним“? Овде треба бити опрезан. Позитиван одговор ће оставити сајт у режиму одржавања - претпоставља се да администратор зна шта даље да ради и да ће то урадити ручно. У супротном, Нектцлоуд ће све урадити сам, па кликните на дугме „Не“ да бисте наставили.

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

До ажурирања

На најновијим верзијама Нектцлоуда, препоручује се да омогућите ПХП ОПцацхе да бисте побољшали перформансе. Чудно је да сам некако пропустио ову тачку пре неколико година, пошто се ОПцацхе појавио у ПХП 5. У /етц/пхп/7.2/апацхе2/пхп.ини морате да декоментирате и измените следеће параметре:

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.к -> 14.к

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

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


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

Припремамо следећу клауд базу података да омогућимо кодирање од четири бајта:

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


Омогућите подршку за четворобајтно кодирање у Нектцлоуд-у:

# 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.к -> 16.к

Опоравак изгубљених индекса табеле:

# 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.к -> 17.к

Нису потребне никакве додатне радње.

Афтерворд

Пратећи ова упутства, ажурирана је виртуелна машина са Нектцлоуд 13. Коришћење виртуелне машине вам омогућава да не правите резервне копије Нектцлоуд датотека и његове базе података, јер у случају проблема можете једноставно да вратите претходно сачувану датотеку виртуелне машине и да почнете испочетка опет. Међутим, ово се не односи на фасциклу са корисничким подацима, за коју такође препоручујем да направите резервну копију заједно са виртуелном машином помоћу Нектцлоуда. У мом случају, „облак“ се користи као удаљена фасцикла са аутоматским верзионисањем, а са смером синхронизације „само тамо“, и губитак ових података за мене није био критичан – само бих морао поново да радим синхронизацију неколико сати . Упркос мом занемаривању доживотног правила „сачувајте за сваки случај“, ажурирање је прошло без икаквих проблема и сви клијенти су без проблема почели да раде са Нектцлоуд 17. Импресиониран сам, Франк Карлитсхек - ти и твој тим се одлично сналазите посао!

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

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

# 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 – ПХП 7.2, МариаДБ 10.4 и Нектцлоуд 17
Текст верзија: 1.1.1.
Датум првог објављивања: 15.01.2020.
Датум последње измене: 15.01.2020.

Дневник ажурирања1.1.1 [15-01-2020] Исправка грешака у куцању.

1.1.0 [15-01-2020] Исправљен некцлоуд припремни код базе података да би се омогућило четворобајтно кодирање.

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

Извор: ввв.хабр.цом