Kotipilven luomisen historia. Osa 5. Päivitys 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17

Kaksi vuotta sitten julkaisin sarjan artikkeleita aiheesta Debian 8 -pohjaisen web-palvelimen luominen ja Nextcloud 11 -palvelun käyttäminen siinä. Muutamaa kuukautta myöhemmin ilmestyi lisäys, joka sisälsi "erotietoja" Nextcloud 13:n asentamisesta Debianiin. 9. Vuoden 2018 lopussa päivitin juuri Debianin ja Nextcloudin, enkä kohdannut epätavallisia tai mielenkiintoisia ongelmia. Vuoden 2019 lopun päivitys oli jo mielenkiintoisempi ja kirjoittamisen arvoinen.

Kotipilven luomisen historia. Osa 5. Päivitys 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17

Tämä artikkeli on ensisijaisesti hyödyllinen niille, jotka edellisen neljän artikkelin ohjeiden mukaan "kokosivat" Nextcloud 13:n Debian 9:ssä (sanon terveisiä noin kymmenelle tilaajalleni Nextcloud-aiheesta, erityisesti niille, joille tämä oli heidän ensimmäinen kokemuksensa Linuxin maailmassa). Niille, jotka suunnittelevat palvelun luomista tyhjästä, suosittelen ottamaan pohjaksi tämän sarjan neljä ensimmäistä artikkelia, jotka on mukautettu Debian 10:n ja Nextcloud 17:n nykyisiin versioihin. Kokeneilta Linux-käyttäjiltä artikkeli saattaa kestää jonkin verran. sijasta "triviaali ja hyödytön" ja "ei huono, kaikki yhdessä paikassa -huijauslehti" väliin.

sisällysluettelo

Osa 1: Debian-ympäristön määrittäminen jokapäiväistä käyttöä varten
Osa 2: Palvelimen luominen - LAMP-asetusten määrittäminen Debianissa
Osa 3. Henkilökohtaisen pilven luominen - Nextcloudin asennus ja konfigurointi
Osa 4. Päivitys 2018 – Debian 9 ja Nextcloud 13
Osa 5. Päivitys 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17

Nopea luvun navigointi

Esipuhe
Debianin päivitys
PHP:n päivittäminen versioon 7.2
Päivitetään MariaDB versioon 10.4
Päivitetään Nextcloud versioon 17
loppusanat

Esipuhe

Aluksi halusin asentaa ja konfiguroida Nginxin Debian 10:lle, jonka päälle nykyinen Nextcloud 17 voitiin asentaa ilman ongelmia. Mutta en löytänyt aikaa tähän kaikkeen, joten tämä artikkeli on ohjesarja päivitystä varten. Nextcloud 13:sta nykyiseen versioon 17 web-palvelimen alustavalla valmistelulla.

Ensinnäkin meidän on selitettävä, miksi verkkopalvelinpuolella vaadittiin radikaaleja muutoksia. Palvelimemme perustuu nykyiseen ja tuettuun Debian 9:ään. Voit yksinkertaisesti päivittää käyttöjärjestelmän ja kaikki web-palvelimen komponentit saavat vähintään tietoturvapäivitykset. Kaikki olisi hienoa, jos jatkaisimme Nextcloud 13:n käyttöä tai päivittäisimme vain versioon 14. Mutta Nextcloud 13:a ei enää tueta, ja tuki 14. versiolle on tulossa ulos. Versiosta 15 alkaen Nexctcloud tarjoaa tietokannan muuntamista big int -muotoon tukemaan nelitavuista koodausta, ja MariaDB 10.1:n kanssa tämä on erittäin ongelmallista. Nexctcloud 17 vaatii PHP 7.1-7.3, kun taas Debian 9 sisältää vain version 7.0 alkuperäisissä arkistoissaan. Luotettavuuden ja ennustettavuuden kannalta olisi oikeampaa päivittää Nextcloudin toiseksi viimeiseen versioon, mutta parin vuoden kuluttua tulin niin varma tämän palvelun luotettavuudesta, että halusin päivittää uusimpaan versioon ja päivittää web-palvelin varauksella tulevaisuutta varten. Siksi, jotta päivitetään Nexctcloud 17:ään, on optimaalista päivittää MariaDB nykyiseen vakaaseen versioon 10.4 ja PHP versioon 7.2. Täsmälleen 7.2, ei nykyinen 7.4. Tosiasia on, että Nextcloud 13 vaatii PHP 5.6, 7.0 - 7.2 ja Nexctcloud 17 vaatii PHP 7.1 - 7.3. On kätevää käyttää PHP 7.2:ta päivitysponnistelujen minimoimiseksi. Apache-palvelinta ei tarvitse päivittää - asenna vain Debian-tukitiimin jakamat tietoturvapäivitykset. Mutta MariaDB- ja PHP-päivityksiä varten sinun on yhdistettävä ulkoiset tietovarastot.

Kun olin juuri tutustumassa Nextcloudiin, päivitin sen "käsin": erityisellä konsolin komennolla sivusto siirrettiin ylläpitotilaan, arkisto sivuston uudella versiolla ladattiin ja purettiin manuaalisesti, tiedostot päivitettiin ja päivitysprosessi aloitettiin. Tällainen päivitys johti yleensä odotettuihin tuloksiin, vaikka en ollut laiska tekemässä varmuuskopiota sivustosta, tietokannasta ja käyttäjätiedoista. Mutta automaattiset päivitykset johtivat joskus kaikenlaisiin yllätyksiin. Mutta se oli kauan sitten, moottorin vakaus on kasvanut suuresti sen jälkeen, ja tällä kertaa tein päivitykset yksinomaan verkkokäyttöliittymän kautta. Totta, en silti päässyt pois komentoriviltä. Jokaisen uuden version iteratiivisen päivityksen aikana ohjauspaneeliin tulee erilaisia ​​varoituksia ja ilmoituksia, jotka on "poistettava" suorittamalla mielekkäästi komentorivillä olevia komentoja. Sinun ei tarvitse tehdä tätä - palvelu toimii edelleen. Vaikka tämä lähestymistapa on pohjimmiltaan väärä, Nextcloud työskenteli minulle tässä tilassa 3 kuukautta ennen kuin käsitin tarkoituksella esiin tulleita ongelmia.

Debain päivitys

Pysäytä verkkopalvelin:

# service apache2 stop


Ja päivitämme:

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


Päivityksen jälkeen voit tarkistaa käyttöjärjestelmän version ja tehdä testiuudelleenkäynnistyksen varmistaaksesi, että kaikki käynnistyy normaalisti päivityksen jälkeen:

# cat /etc/debian_version
# reboot


PHP:n päivittäminen versioon 7.2

Pysäytä verkkopalvelin:

# service apache2 stop


Lisää varmenne ja PPA-avaimet, PHP-arkisto:

# 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:n vanhan version poistamisen yhteydessä poistetaan myös phpmyadmin, koska poistamme "jäljet" poistetuista paketeista käyttämällä autoremovea. Tämä ei aiheuta erityisiä vaikeuksia, koska phpmyadminille ei tehty erityisiä asetuksia, eikä sen uudelleenasentaminen aiheuta ongelmia.

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


Nextcloud 17:n edellyttämien moduulien asentaminen:

# 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


[ Tämä teksti kirjoitettu nimenomaan sivustoa varten will.com kirjoittaja AlexanderS.
Linkki lähteeseen on valinnainen, mutta sen mainitseminen on erittäin suositeltavaa! ]

Tarkistamme PHP-version, käynnistämme verkkopalvelimen ja tarkistamme Nextcloudin toimivuuden:

# php -v
# service apache2 start


Päivitetään MariaDB versioon 10.4

Hankkeen verkkosivuilla on mielenkiintoinen sivu, jossa sinun on ilmoitettava käyttöjärjestelmäsi, sen julkaisu ja valittava tietokantaversio. Kun olet valinnut, koodi arkiston lisäämistä varten luodaan.

Pysäytä verkkopalvelin:

# service apache2 stop


Lisää arkisto ja päivitä paketteja:

# 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:tä asennettaessa paketinhallinta poistaa edellisen version oikein ja asentaa uuden, samalla kun kaikki tietokannat säilyvät. On kuitenkin suositeltavaa tehdä varmuuskopio Nextcloud-tietokannasta.

Asenna MariaDB ja aloita päivitys:

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


Salasanan syöttämisen jälkeen MariaDB päivittää ja voit määrittää sen seuraavasti ohjeet toisesta osasta:

# mysql_secure_installation


Käynnistämme verkkopalvelimen ja tarkistamme Nextcloudin toimivuuden:

# service apache2 start


Päivitetään Nextcloud versioon 17

Päivityksen aloittamiseksi sinun on kirjauduttava palveluun järjestelmänvalvojan tilillä, siirryttävä asetuksiin ja avattava "Yleiset asetukset" hallintaosiossa. Nextcloud näyttää asennetun version ja päivitettävissä olevan version, joka voidaan käynnistää napsauttamalla "Avaa päivitysikkuna" -painiketta. Kun Nextcloud on aloitettu, se tekee varmuuskopion, lataa ja varmistaa päivitystiedostojen eheyden, ottaa ylläpitotilan käyttöön ja päivittää tiedostot. Seuraavaksi tulee kysymys "Pidä ylläpitotila aktiivisena"? Sinun on oltava varovainen täällä. Myönteinen vastaus jättää sivuston ylläpitotilaan - oletetaan, että järjestelmänvalvoja tietää mitä tehdä seuraavaksi ja tekee sen manuaalisesti. Muussa tapauksessa Nextcloud tekee kaiken itse, joten napsauta "Ei" -painiketta jatkaaksesi.

Päivitykset suoritetaan iteratiivisesti. Ensin Nextcloud 13.x päivitetään uusimpaan versioon 14.x haarasta. Tämän jälkeen sinun on mentävä uudelleen hallintakeskukseen ja aloitettava päivitys nyt 14.x:stä 15.x:ään. Ja niin edelleen, kunnes viimeinen mahdollinen nykyinen versio saavutetaan. Jokaisen päivityksen jälkeen järjestelmänvalvojan "Yleiset asetukset" -sivulla näkyy luettelo ehdotuksista ja havaituista ongelmista sekä suosituksia niiden ratkaisemiseksi. Alla puhumme siitä, mitä on tehtävä jokaisen päivityksen jälkeen.

Päivitykseen asti

Nextcloudin uusimmissa versioissa on suositeltavaa ottaa PHP OPcache käyttöön suorituskyvyn parantamiseksi. On outoa, että minulta tämä kohta jäi jotenkin ohi pari vuotta sitten, koska OPcache ilmestyi PHP 5:ssä. Tiedostossa /etc/php/7.2/apache2/php.ini täytyy poistaa kommentit ja muokata seuraavia parametreja:

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


Päivitys 13.x -> 14.x

Taulukkoindeksien palauttaminen:

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


Päivitys 14.x -> 15.x

Valmistelemme nextcloud-tietokannan nelitavuisen koodauksen mahdollistamiseksi:

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


Ota käyttöön neljän tavun koodauksen tuki Nextcloudissa:

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


Taulukoiden muuntaminen:

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


Kadonneiden taulukkoindeksien palauttaminen:

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


Muunna taulukkoindeksit bigintiksi:

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


Päivitys 15.x -> 16.x

Kadonneiden taulukkoindeksien palauttaminen:

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


Muunna taulukkoindeksit bigintiksi:

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


Päivitys 16.x -> 17.x

Lisätoimia ei tarvita.

loppusanat

Näiden ohjeiden mukaisesti päivitettiin virtuaalikoneen Nextcloud 13. Virtuaalikoneen avulla et tee varmuuskopioita Nextcloud-tiedostoista ja sen tietokannasta, koska ongelmatilanteissa voit palauttaa aiemmin tallennetun virtuaalikoneen tiedoston ja aloittaa alusta. uudelleen. Tämä ei kuitenkaan koske käyttäjätietoja sisältävää kansiota, jonka suosittelen myös varmuuskopioimaan virtuaalikoneen kanssa Nextcloudilla. Minun tapauksessani "pilveä" käytetään etäkansiona, jossa on automaattinen versiointi ja synkronointisuunta "vain siellä", eikä näiden tietojen menettäminen ollut minulle kriittistä - minun täytyisi vain tehdä synkronointi uudelleen useita tunteja . Huolimatta välinpitämättömyydestäni elinikäisen "saa varmuuden vuoksi" -säännön suhteen, päivitys sujui ilman ongelmia ja kaikki asiakkaat aloittivat työskentelyn Nextcloud 17:n kanssa ilman ongelmia. Olen vaikuttunut, Frank Karlitshek - sinä ja tiimisi pärjäät loistavasti Job!

Päivityksen jälkeen päätin tyhjentää käyttäjätiedot, jotka tilastojen perusteella veivät noin kaksi teratavua. Minulla ei ollut niin paljon toiminnallisia tietoja - suurimman osan asemasta valtasivat versiotiedostot ja poistetut tiedostot. Kohdamani ongelma oli, että yhdelle käyttäjälle oli niin paljon poistettua dataa (kyse ei ole edes määrästä, vaan määrästä - paljon pieniä tiedostoja), että Nextcloud ei voinut näyttää sitä verkkokäyttöliittymässä. Hallinto-opasta tutkittuani löysin ratkaisun komentorivin kautta. Ehkä tästä on jollekin hyötyä.

Poista poistetut käyttäjätiedostot seuraavasti:

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


Voit tyhjentää käyttäjäversiotiedostot seuraavasti:

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

Palata alkuun, sisällysluetteloon.

Kotipilven luomisen historia. Osa 5. Päivitys 2019 – PHP 7.2, MariaDB 10.4 ja Nextcloud 17
Tekstiversio: 1.1.1.
Ensimmäinen julkaisupäivä: 15.01.2020.
Viimeisin muokkauspäivä: 15.01.2020.

Päivitä loki1.1.1 [15-01-2020] Kirjoitusvirheiden korjaus.

1.1.0 [15-01-2020] Korjattu nexcloud-tietokannan valmistelukoodi nelitavuisen koodauksen mahdollistamiseksi.

1.0.0 [15-01-2020] Ensimmäinen versio.

Lähde: will.com