Sejarah penciptaan awan rumah. Bahagian 5. Kemas Kini 2019 – PHP 7.2, MariaDB 10.4 dan Nextcloud 17

Dua tahun yang lalu saya menerbitkan satu siri artikel mengenai topik mencipta pelayan web berdasarkan Debian 8 dan melancarkan perkhidmatan Nextcloud 11 di atasnya. Beberapa bulan kemudian, satu tambahan muncul yang mengandungi maklumat "pembezaan" tentang pemasangan Nextcloud 13 pada Debian 9. Pada akhir tahun 2018 saya baru sahaja mengemas kini Debian dan Nextcloud dan tidak menghadapi sebarang isu yang luar biasa atau menarik. Kemas kini pada akhir tahun 2019 adalah lebih menarik dan berbaloi untuk ditulis.

Sejarah penciptaan awan rumah. Bahagian 5. Kemas Kini 2019 – PHP 7.2, MariaDB 10.4 dan Nextcloud 17

Artikel ini akan berguna terutamanya kepada mereka yang, mengikut arahan dalam empat artikel sebelumnya, "memasang" Nextcloud 13 untuk diri mereka sendiri Debian 9 (Saya mengucapkan salam kepada sepuluh pelanggan saya mengenai topik Nextcloud, terutamanya kepada mereka yang merupakan pengalaman pertama di dunia LinuxBagi mereka yang merancang untuk membina perkhidmatan dari awal, saya cadangkan menggunakan empat artikel pertama dalam siri ini sebagai asas, dengan pelarasan untuk versi semasa. Debian 10 dan Nextcloud 17. Untuk pengguna lanjutan Linux Artikel itu mungkin berada di antara "remeh dan tidak berguna" dan "boleh tahan, helaian contekan semua-dalam-satu".

jadual kandungan

Bahagian 1. Menyediakan persekitaran Debian untuk kegunaan harian
Bahagian 2. Mencipta pelayan - mengkonfigurasi LAMP dalam Debian
Bahagian 3. Mencipta awan peribadi - memasang dan mengkonfigurasi Nextcloud
Bahagian 4. Kemas Kini 2018 – Debian 9 dan Nextcloud 13
Bahagian 5. Kemas Kini 2019 – PHP 7.2, MariaDB 10.4 dan Nextcloud 17

Navigasi bab pantas

Perutusan
Kemas kini Debian
Mengemas kini PHP kepada versi 7.2
Menaik taraf MariaDB kepada versi 10.4
Mengemas kini Nextcloud kepada versi 17
afterword

Perutusan

Pada mulanya saya ingin Debian 10, pasang dan konfigurasikan Nginx, yang sepatutnya menyokong Nextcloud 17 terkini dengan mudah. ​​Walau bagaimanapun, saya tidak mempunyai masa untuk semua ini, jadi artikel ini merupakan satu set arahan untuk menaik taraf Nextcloud daripada 13 kepada versi terkini 17, dengan persediaan pelayan web awal.

Pertama sekali, kita perlu menjelaskan mengapa perubahan radikal diperlukan pada bahagian pelayan web. Pelayan kami adalah berdasarkan sistem semasa dan disokong Debian 9. Anda hanya perlu mengemas kini sistem pengendalian, dan semua komponen pelayan web akan menerima sekurang-kurangnya kemas kini keselamatan. Semuanya akan baik-baik saja jika kita terus menggunakan Nextcloud 13 atau hanya dikemas kini kepada versi 14. Walau bagaimanapun, Nextcloud 13 tidak lagi disokong, dan sokongan untuk versi 14 semakin berkurangan. Bermula dengan versi 15, Nextcloud akan menawarkan untuk menukar pangkalan data kepada big int untuk menyokong pengekodan empat bait, dan dengan MariaDB 10.1, ini akan menjadi sangat bermasalah. Nextcloud 17 memerlukan PHP 7.1-7.3, manakala Debian 9 hanya mengandungi versi 7.0 dalam repositori asalnya. Penyelesaian yang betul, dari segi kebolehpercayaan dan kebolehramalan, adalah dengan menaik taraf kepada versi kedua terakhir Nextcloud, tetapi sejak beberapa tahun kebelakangan ini, saya menjadi begitu yakin dengan kebolehpercayaan perkhidmatan tersebut sehingga saya ingin menaik taraf kepada versi terkini dan mengemas kini pelayan web untuk masa hadapan. Oleh itu, untuk menaik taraf kepada Nextcloud 17, adalah optimum untuk menaik taraf MariaDB kepada versi stabil semasa 10.4 dan PHP kepada 7.2. Khususnya, 7.2, bukan 7.4 semasa. Hakikatnya ialah Nextcloud 13 memerlukan PHP 5.6, 7.0 memerlukan 7.2 dan Nextcloud 17 memerlukan PHP 7.1-7.3. Menggunakan PHP 7.2 adalah mudah untuk meminimumkan usaha naik taraf. Anda tidak perlu mengemas kini pelayan Apache—ia cukup untuk memasang kemas kini keselamatan yang diedarkan oleh pasukan sokongan. DebianWalau bagaimanapun, untuk kemas kini MariaDB dan PHP, anda perlu menyambungkan repositori luaran.

Apabila saya baru berkenalan dengan Nextcloud, saya mengemas kininya "dengan tangan": menggunakan arahan khas dari konsol, tapak itu ditukar kepada mod penyelenggaraan, arkib dengan versi baharu tapak itu dimuat turun dan dibongkar secara manual, fail telah dikemas kini dan prosedur kemas kini telah dimulakan. Kemas kini sedemikian biasanya membawa kepada hasil yang diharapkan, walaupun saya tidak malas membuat salinan sandaran tapak, pangkalan data dan data pengguna. Tetapi kemas kini automatik kadangkala membawa kepada pelbagai jenis kejutan. Tetapi itu sudah lama dahulu, kestabilan enjin telah meningkat dengan pesat sejak itu, dan kali ini saya membuat kemas kini secara eksklusif melalui antara muka web. Benar, saya masih tidak dapat lari daripada baris arahan. Semasa kemas kini berulang kepada setiap versi baharu, pelbagai amaran dan pemberitahuan akan muncul dalam panel kawalan, yang perlu "dialih keluar" dengan melaksanakan perintah secara bermakna pada baris arahan. Anda tidak perlu melakukan ini - perkhidmatan masih akan berfungsi. Walaupun pendekatan ini pada asasnya salah, Nextcloud bekerja untuk saya dalam mod ini selama 3 bulan sebelum saya sengaja menangani isu yang timbul.

Kemas kini Debain

Hentikan pelayan web:

# service apache2 stop


Dan kami mengemas kini:

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


Selepas kemas kini, anda boleh menyemak versi OS dan melakukan but semula ujian untuk memastikan semuanya bermula seperti biasa selepas kemas kini:

# cat /etc/debian_version
# reboot


Mengemas kini PHP kepada versi 7.2

Hentikan pelayan web:

# service apache2 stop


Tambah sijil dan kunci PPA, repositori 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


Apabila memadamkan versi lama PHP 7.0, phpmyadmin juga akan dipadamkan, kerana kami akan mengosongkan "jejak" daripada pakej yang dipadam menggunakan autoremove. Ini tidak akan menyebabkan sebarang kesulitan tertentu, kerana tiada tetapan khas dibuat untuk phpmyadmin dan memasangnya semula tidak akan menjadi masalah.

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


Memasang modul yang diperlukan untuk 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


[ Teks ini ditulis khusus untuk tapak www.habr.com pengarang AlexanderS.
Pautan ke sumber adalah pilihan, tetapi menyebutnya sangat disyorkan! ]

Kami menyemak versi PHP, mulakan pelayan web dan semak fungsi Nextcloud:

# php -v
# service apache2 start


Menaik taraf MariaDB kepada versi 10.4

Di laman web projek ada halaman yang menarik, di mana anda perlu menunjukkan OS anda, keluarannya dan pilih versi pangkalan data. Setelah dipilih, kod untuk menambah repositori akan dihasilkan.

Hentikan pelayan web:

# service apache2 stop


Tambah repositori dan kemas kini pakej:

# 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


Apabila memasang MariaDB, pengurus pakej akan mengalih keluar versi sebelumnya dengan betul dan memasang yang baharu, manakala semua pangkalan data akan dipelihara. Walau bagaimanapun, sudah tentu disyorkan untuk membuat salinan sandaran pangkalan data Nextcloud.

Pasang MariaDB dan mulakan prosedur kemas kini:

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


Selepas memasukkan kata laluan, MariaDB akan mengemas kini dan anda boleh mengkonfigurasinya dengan mengikuti arahan dari bahagian dua:

# mysql_secure_installation


Kami melancarkan pelayan web dan menyemak kefungsian Nextcloud:

# service apache2 start


Mengemas kini Nextcloud kepada versi 17

Untuk memulakan kemas kini, anda perlu log masuk ke perkhidmatan di bawah akaun pentadbiran, pergi ke tetapan dan buka "Tetapan umum" di bahagian pentadbiran. Nextcloud menunjukkan versi yang dipasang dan versi yang tersedia untuk kemas kini, yang boleh dilancarkan dengan mengklik butang "Buka tetingkap kemas kini". Setelah dimulakan, Nextcloud membuat sandaran, memuat turun dan mengesahkan integriti fail kemas kini, menghidupkan mod penyelenggaraan dan mengemas kini fail. Seterusnya timbul soalan "Kekalkan mod penyelenggaraan aktif"? Anda perlu berhati-hati di sini. Respons positif akan meninggalkan tapak dalam mod penyelenggaraan - diandaikan bahawa pentadbir tahu apa yang perlu dilakukan seterusnya dan akan melakukannya secara manual. Jika tidak, Nextcloud akan melakukan semuanya sendiri, jadi klik butang "Tidak" untuk meneruskan.

Kemas kini dilakukan secara berulang. Pertama, Nextcloud 13.x akan dikemas kini kepada versi terkini cawangan 14.x. Selepas ini, anda perlu pergi ke pusat pentadbir sekali lagi dan mulakan kemas kini, sekarang dari 14.x hingga 15.x. Dan seterusnya sehingga versi terkini yang mungkin terakhir dicapai. Selepas setiap kemas kini, pada halaman "Tetapan Umum" dalam bahagian pentadbiran, senarai cadangan dan masalah yang dihadapi, serta cadangan untuk menyelesaikannya, akan dipaparkan. Di bawah ini kita akan bercakap tentang perkara yang perlu dilakukan selepas setiap kemas kini.

Sebelum kemas kini

Pada versi terkini Nextcloud, adalah disyorkan untuk membolehkan PHP OPcache meningkatkan prestasi. Adalah pelik bahawa saya entah bagaimana terlepas perkara ini beberapa tahun yang lalu, kerana OPcache muncul dalam PHP 5. Dalam /etc/php/7.2/apache2/php.ini anda perlu menyahkomen dan mengedit parameter berikut:

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


Kemas kini 13.x -> 14.x

Memulihkan indeks jadual:

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


Kemas kini 14.x -> 15.x

Kami menyediakan pangkalan data nextcloud untuk mendayakan pengekodan empat bait:

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


Dayakan sokongan untuk pengekodan empat bait dalam Nextcloud:

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


Menukar jadual:

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


Memulihkan indeks jadual yang hilang:

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


Tukar indeks jadual kepada bigint:

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


Kemas kini 15.x -> 16.x

Memulihkan indeks jadual yang hilang:

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


Tukar indeks jadual kepada bigint:

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


Kemas kini 16.x -> 17.x

Tiada tindakan tambahan diperlukan.

afterword

Mengikuti arahan ini, mesin maya dengan Nextcloud 13 telah dikemas kini. Menggunakan mesin maya membolehkan anda tidak membuat salinan sandaran fail Nextcloud dan pangkalan datanya, kerana sekiranya berlaku masalah, anda boleh memulangkan fail mesin maya yang disimpan sebelum ini dan mulakan semula sekali lagi. Walau bagaimanapun, ini tidak terpakai pada folder dengan data pengguna, yang saya juga cadangkan untuk membuat sandaran bersama mesin maya dengan Nextcloud. Dalam kes saya, "awan" digunakan sebagai folder jauh dengan versi automatik, dan dengan arah penyegerakan "hanya di sana", dan kehilangan data ini tidak kritikal bagi saya - saya hanya perlu melakukan penyegerakan semula selama beberapa jam . Walaupun saya mengabaikan peraturan "simpan untuk berjaga-jaga" sepanjang hayat, kemas kini berjalan tanpa sebarang masalah dan semua pelanggan mula bekerja dengan Nextcloud 17 tanpa sebarang masalah. Saya kagum, Frank Karlitshek - anda dan pasukan anda melakukan yang terbaik kerja!

Selepas kemas kini, saya memutuskan untuk mengosongkan data pengguna, yang, berdasarkan statistik, menduduki kira-kira dua terabait. Saya tidak mempunyai data operasi sebanyak itu - kebanyakan volum diduduki oleh fail versi dan fail yang dipadamkan. Masalah yang saya hadapi ialah untuk seorang pengguna terdapat begitu banyak data yang dipadam (ia bukan soal volum, tetapi kuantiti - banyak fail kecil) sehingga Nextcloud tidak dapat memaparkannya dalam antara muka web. Selepas mengkaji manual pentadbiran, saya menemui penyelesaian melalui baris arahan. Mungkin ini akan berguna kepada seseorang.

Untuk mengosongkan fail pengguna yang dipadamkan:

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


Untuk mengosongkan fail versi pengguna:

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

Kembali ke permulaan, ke jadual kandungan.

Sejarah penciptaan awan rumah. Bahagian 5. Kemas Kini 2019 – PHP 7.2, MariaDB 10.4 dan Nextcloud 17
Versi teks: 1.1.1.
Tarikh penerbitan pertama: 15.01.2020/XNUMX/XNUMX.
Tarikh akhir suntingan: 15.01.2020/XNUMX/XNUMX.

Kemas kini log1.1.1 [15-01-2020]
Pembetulan kesalahan taip.

1.1.0 [15-01-2020]
Kod penyediaan pangkalan data nexcloud telah dibaiki untuk mendayakan pengekodan empat bait.

1.0.0 [15-01-2020]
Первая версия.

Sumber: www.habr.com

Beli pengehosan yang boleh dipercayai untuk tapak dengan perlindungan DDoS, pelayan VPS VDS 🔥 Beli pengehosan laman web yang boleh dipercayai dengan perlindungan DDoS, pelayan VPS VDS | ProHoster