Az otthoni felhő létrehozásának története. 5. rész. 2019-es frissítés – PHP 7.2, MariaDB 10.4 és Nextcloud 17

Két éve publikáltam egy cikksorozatot a Debian 8 alapú webszerver létrehozásáról és a Nextcloud 11 szolgáltatás futtatásáról, majd néhány hónappal később megjelent egy kiegészítés, amely a Nextcloud 13 Debianra történő telepítésével kapcsolatos „különbözeti” információkat tartalmazott. 9. 2018 végén frissítettem a Debiant és a Nextcloudot, és nem találkoztam szokatlan vagy érdekes problémákkal. A 2019 végi frissítés már érdekesebb volt, és érdemes volt róla írni.

Az otthoni felhő létrehozásának története. 5. rész. 2019-es frissítés – PHP 7.2, MariaDB 10.4 és Nextcloud 17

Ez a cikk elsősorban azoknak lesz hasznos, akik az előző négy cikk utasításai szerint a Nextcloud 13-at Debian 9-en „összerakták” (Körülbelül egy tucat előfizetőmnek köszönök a Nextcloud témájában, különösen azoknak, akiknek ez volt az első tapasztalatuk a Linux világában). Azoknak, akik a semmiből terveznek szolgáltatást létrehozni, azt tanácsolom, hogy vegyék alapul ennek a sorozatnak az első négy cikkét, amelyek a Debian 10 és a Nextcloud 17 jelenlegi verzióihoz igazodnak. Tapasztalt Linux-felhasználók számára a cikk némi időt vehet igénybe. helyet a „triviális és haszontalan” és a „nem rossz, minden az egy helyen csalólap” között.

tartalomjegyzék

1. rész: Debian környezet beállítása mindennapi használatra
2. rész: Szerver létrehozása – LAMP beállítása Debianon
3. rész Személyes felhő létrehozása - Nextcloud telepítése és konfigurálása
4. rész. 2018-as frissítés – Debian 9 és Nextcloud 13
5. rész. 2019-es frissítés – PHP 7.2, MariaDB 10.4 és Nextcloud 17

Gyors fejezetnavigáció

Előszó
Debian frissítés
PHP frissítése 7.2-es verzióra
A MariaDB frissítése a 10.4-es verzióra
A Nextcloud frissítése a 17-es verzióra
utószó

Előszó

Kezdetben Debian 10-re szerettem volna telepíteni és konfigurálni az Nginx-et, amelyre a jelenlegi Nextcloud 17 probléma nélkül telepíthető, de nem találtam erre időt, ezért ez a cikk a frissítéshez szükséges utasításokat tartalmazza. Nextcloud 13-tól a jelenlegi 17-es verzióig a webszerver előzetes előkészítésével.

Először is meg kell magyaráznunk, miért volt szükség radikális változtatásokra a webszerver oldalon. Szerverünk a jelenlegi és támogatott Debian 9-en alapul. Egyszerűen frissítheti az operációs rendszert, és a webszerver minden összetevője megkapja legalább a biztonsági frissítéseket. Minden nagyszerű lenne, ha továbbra is a Nextcloud 13-at használnánk, vagy csak a 14-es verzióra frissítenénk. De a Nextcloud 13 már nem támogatott, és a 14. verzió támogatása hamarosan megszűnik. A 15-ös verziótól kezdve a Nexctcloud felajánlja az adatbázis big int-re való konvertálását, hogy támogassa a négybájtos kódolást, és a MariaDB 10.1-nél ez nagyon problémás lesz. A Nexctcloud 17-hez PHP 7.1-7.3 szükséges, míg a Debian 9 csak a 7.0-s verziót tartalmazza a natív tárolókban. A megbízhatóság és kiszámíthatóság szempontjából helyesebb lenne a Nextcloud utolsó előtti verziójára frissíteni, de pár év után annyira megbizonyosodtam a szolgáltatás megbízhatóságáról, hogy szerettem volna frissíteni a legújabb verzióra és frissíteni a webszerver tartalékkal a jövőre nézve. Ezért a Nexctcloud 17-re való frissítéshez optimális a MariaDB frissítése a jelenlegi stabil 10.4-es verzióra, a PHP-t pedig a 7.2-re. Pontosan 7.2, nem a jelenlegi 7.4. A helyzet az, hogy a Nextcloud 13-hoz PHP 5.6, 7.0-7.2, a Nexctcloud 17-hez pedig PHP 7.1-7.3 szükséges. A frissítési erőfeszítések minimalizálása érdekében kényelmes a PHP 7.2 használata. Nincs szükség az Apache-kiszolgáló frissítésére – csak telepítse a Debian támogatási csapata által terjesztett biztonsági frissítéseket. A MariaDB és PHP frissítésekhez azonban külső tárolókat kell csatlakoztatnia.

Amikor még csak ismerkedtem a Nextclouddal, „kézzel” frissítettem: egy speciális konzolos paranccsal az oldal karbantartási módba kapcsolt, az archívum az oldal új verziójával manuálisan letöltődött és kicsomagolva, a fájlok frissítésre kerültek, és elindult a frissítési eljárás. Egy ilyen frissítés általában meghozta a várt eredményt, bár nem voltam lusta biztonsági másolatot készíteni a webhelyről, az adatbázisról és a felhasználói adatokról. De az automatikus frissítések néha mindenféle meglepetéshez vezettek. De ez nagyon régen volt, azóta nagyot nőtt a motor stabilitása, és ezúttal kizárólag a webes felületen keresztül frissítettem. Igaz, továbbra sem tudtam kikerülni a parancssorból. Az egyes új verziók iteratív frissítése során különféle figyelmeztetések és értesítések jelennek meg a vezérlőpulton, amelyeket a parancssoron lévő parancsok értelmes végrehajtásával kell „eltávolítani”. Ezt nem kell megtennie - a szolgáltatás továbbra is működik. Bár ez a megközelítés alapvetően hibás, a Nextcloud nekem ebben a módban dolgozott 3 hónapig, mire céltudatosan foglalkoztam a felmerülő problémákkal.

Debain frissítés

A webszerver leállítása:

# service apache2 stop


És frissítjük:

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


A frissítés után ellenőrizheti az operációs rendszer verzióját, és teszt-újraindítást végezhet, hogy megbizonyosodjon arról, hogy a frissítés után minden a szokásos módon indul:

# cat /etc/debian_version
# reboot


PHP frissítése 7.2-es verzióra

A webszerver leállítása:

# service apache2 stop


Tanúsítvány és PPA-kulcsok hozzáadása, PHP-tárház:

# 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


A PHP 7.0 régi verziójának törlésekor a phpmyadmin is törlésre kerül, mivel a törölt csomagok „nyomait” az autoremove segítségével eltávolítjuk. Ez nem okoz különösebb nehézséget, mivel a phpmyadmin számára nem történt speciális beállítás, és az újratelepítés sem okoz gondot.

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


A Nextcloud 17-hez szükséges modulok telepítése:

# 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


[ Ez a szöveg kifejezetten az oldalra írva will.com szerző AlexanderS.
A forrás hivatkozása nem kötelező, de ennek megemlítése erősen ajánlott! ]

Ellenőrizzük a PHP verziót, elindítjuk a webszervert és ellenőrizzük a Nextcloud működését:

# php -v
# service apache2 start


A MariaDB frissítése a 10.4-es verzióra

A projekt honlapján található érdekes oldal, ahol meg kell adni az operációs rendszert, annak kiadását és kiválasztani az adatbázis verzióját. A kiválasztást követően a rendszer létrehozza a tároló hozzáadásához szükséges kódot.

A webszerver leállítása:

# service apache2 stop


Adjon hozzá egy tárat és frissítse a csomagokat:

# 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


A MariaDB telepítésekor a csomagkezelő megfelelően eltávolítja az előző verziót, és telepíti az újat, miközben az összes adatbázis megőrződik. Természetesen ajánlott biztonsági másolatot készíteni a Nextcloud adatbázisról.

Telepítse a MariaDB-t, és indítsa el a frissítési eljárást:

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


A jelszó megadása után a MariaDB frissíteni fog, és a következő lépésekkel konfigurálhatja utasítások a második részből:

# mysql_secure_installation


Elindítjuk a webszervert, és ellenőrizzük a Nextcloud működését:

# service apache2 start


A Nextcloud frissítése a 17-es verzióra

A frissítés elindításához adminisztrátori fiókkal be kell jelentkeznie a szolgáltatásba, menjen a beállításokhoz, és nyissa meg az „Általános beállítások” elemet az adminisztrációs részben. A Nextcloud megjeleníti a telepített verziót és a frissíthető verziót, amely a „Frissítési ablak megnyitása” gombra kattintva indítható el. Az indítást követően a Nextcloud biztonsági másolatot készít, letölti és ellenőrzi a frissítési fájlok integritását, bekapcsolja a karbantartási módot, és frissíti a fájlokat. Ezután jön a „Karbantartási mód aktív tartása” kérdés? Itt óvatosnak kell lenni. Pozitív válasz esetén a webhely karbantartási módban marad – feltételezzük, hogy az adminisztrátor tudja, mit kell tennie, és azt manuálisan fogja megtenni. Ellenkező esetben a Nextcloud mindent maga fog megtenni, ezért kattintson a „Nem” gombra a folytatáshoz.

A frissítések iteratív módon történnek. Először is, a Nextcloud 13.x frissítésre kerül a 14.x ág legújabb verziójára. Ezt követően ismét fel kell lépnie az adminisztrációs központba, és el kell indítania a frissítést, most 14.x-ről 15.x-re. És így tovább, amíg el nem éri az utolsó lehetséges aktuális verziót. Minden frissítés után az adminisztrációs rész „Általános beállítások” oldalán megjelenik a felmerült javaslatok és problémák listája, valamint a megoldásukra vonatkozó javaslatok. Az alábbiakban arról fogunk beszélni, hogy mit kell tenni minden frissítés után.

A frissítésig

A Nextcloud legújabb verzióiban ajánlott a PHP OPcache engedélyezése a teljesítmény javítása érdekében. Furcsa, hogy pár éve valahogy kihagytam ezt a pontot, mivel az OPcache megjelent a PHP 5-ben. Az /etc/php/7.2/apache2/php.ini fájlban a következő paramétereket kell kivenni és szerkeszteni:

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


Frissítés 13.x -> 14.x

Tábla indexek visszaállítása:

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


Frissítés 14.x -> 15.x

Felkészítjük a nextcloud adatbázist a négybájtos kódolás engedélyezéséhez:

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


Engedélyezze a négybájtos kódolás támogatását a Nextcloudban:

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


Táblázatok konvertálása:

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


Elveszett táblaindexek helyreállítása:

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


A táblázat indexeinek konvertálása bigintre:

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


Frissítés 15.x -> 16.x

Elveszett táblaindexek helyreállítása:

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


A táblázat indexeinek konvertálása bigintre:

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


Frissítés 16.x -> 17.x

Nincs szükség további teendőkre.

utószó

Ezeket az utasításokat követve frissítettük a Nextcloud 13-as virtuális gépet. A virtuális gép használata lehetővé teszi, hogy ne készítsünk biztonsági másolatot a Nextcloud fájlokról és azok adatbázisáról, mivel probléma esetén egyszerűen visszaadhatjuk a korábban elmentett virtuális gép fájlt, és kezdhetjük elölről. újra. Ez azonban nem vonatkozik a felhasználói adatokat tartalmazó mappára, amelyről szintén javaslom a virtuális géppel együtt biztonsági mentést a Nextcloud segítségével. Az én esetemben a „felhőt” távoli mappaként használják automatikus verziózással, és „csak ott” szinkronizálási iránnyal, és ezeknek az adatoknak az elvesztése nem volt kritikus számomra - csak néhány órán keresztül újra kell szinkronizálnom. . Annak ellenére, hogy figyelmen kívül hagytam az egész életen át tartó „mentés minden esetre” szabályt, a frissítés minden probléma nélkül ment, és minden kliens gond nélkül elkezdett dolgozni a Nextcloud 17-el. Lenyűgözött, Frank Karlitshek – Ön és csapata remekül teljesít. munka!

A frissítés után a felhasználói adatok törlése mellett döntöttem, amelyek a statisztikákból ítélve körülbelül két terabájtot foglaltak el. Nem volt annyi működési adatom – a kötet nagy részét a verziófájlok és a törölt fájlok foglalták el. A probléma, amivel találkoztam, az volt, hogy egy felhasználónál annyi törölt adat volt (ez nem is mennyiség, hanem mennyiség kérdése - sok kis fájl), hogy a Nextcloud nem tudta megjeleníteni a webes felületen. Az adminisztrációs kézikönyv áttanulmányozása után a parancssoron keresztül találtam megoldást. Talán ez hasznos lesz valakinek.

A törölt felhasználói fájlok törlése:

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


A felhasználói verzió fájlok törlése:

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

Visszatérés az elejére, a tartalomjegyzékbe.

Az otthoni felhő létrehozásának története. 5. rész. 2019-es frissítés – PHP 7.2, MariaDB 10.4 és Nextcloud 17
Szöveges verzió: 1.1.1.
Első megjelenés dátuma: 15.01.2020.
Utolsó szerkesztés dátuma: 15.01.2020.

Napló frissítése1.1.1 [15-01-2020] Elírási hibák javítása.

1.1.0 [15-01-2020] Javítva a nexcloud adatbázis-előkészítő kód, amely lehetővé teszi a négybájtos kódolást.

1.0.0 [15-01-2020] Első verzió.

Forrás: will.com