Sejarah menciptakan cloud rumah. Bagian 5. Memperbarui 2019 - PHP 7.2, MariaDB 10.4 dan Nextcloud 17

Dua tahun lalu, saya menerbitkan serangkaian artikel tentang topik membuat server web berbasis Debian 8 dan meluncurkan layanan Nextcloud 11. Beberapa bulan kemudian ada add-on yang berisi informasi "diferensial" tentang menginstal Nextcloud 13 pada Debian 9. Pada akhir 2018, saya baru saja memperbarui Debian dan Nextcloud dan tidak menemukan masalah yang tidak biasa atau menarik. Pembaruan pada akhir 2019 sudah lebih menarik dan layak untuk ditulis.



Artikel ini akan bermanfaat terutama bagi mereka yang, sesuai dengan instruksi dari empat artikel terakhir, "mengumpulkan" Nextcloud 13 pada Debian 9 (Saya mengirim salam kepada sepuluh pelanggan saya di Nextcloud, terutama mereka yang merupakan pengalaman pertama di dunia Linux). Bagi mereka yang akan membuat layanan dari awal, saya menyarankan Anda untuk mengambil sebagai dasar empat artikel pertama dari seri ini, disesuaikan dengan versi Debian 10 dan Nextcloud saat ini. Untuk pengguna Linux yang berpengalaman, artikel tersebut dapat berlangsung antara “sepele dan tidak berguna” dan “tidak buruk, lembar contekan semua tempat. ”



Daftar isi


Bagian 1. Mengatur lingkungan Debian Anda untuk penggunaan sehari-hari
Bagian 2. Membuat server - mengatur LAMP di Debian
Bagian 3. Membuat cloud pribadi - menginstal dan mengkonfigurasi Nextcloud
Bagian 4. Pembaruan 2018 - Debian 9 dan Nextcloud 13
Bagian 5. Memperbarui 2019 - PHP 7.2, MariaDB 10.4 dan Nextcloud 17



Navigasi bab cepat


Kata Pengantar
Pembaruan Debian
Pembaruan PHP ke versi 7.2
Perbarui MariaDB ke versi 10.4
Pembaruan Nextcloud ke versi 17
Kata penutup



Kata Pengantar


Awalnya, saya ingin menginstal dan mengkonfigurasi Nginx pada Debian 10, yang mana Nextcloud 17 saat ini akan diinstal tanpa masalah, tetapi untuk semua ini, saya tidak dapat memilih waktu, jadi artikel ini adalah sekumpulan instruksi untuk meningkatkan Nextcloud dari 13 ke versi saat ini dari pendahuluan menyiapkan server web.

Pertama, Anda perlu menjelaskan mengapa perubahan radikal diperlukan di sisi server web. Server kami didasarkan pada Debian saat ini dan yang didukung 9. Anda dapat memperbarui sistem operasi dan semua komponen server web akan menerima setidaknya pembaruan keamanan. Semuanya akan lebih baik jika kita lebih lanjut menggunakan Nextcloud 13 atau ditingkatkan hanya ke versi 14. Tetapi Nextcloud 13 tidak lagi didukung, dan dukungan untuk versi ke-14 sedang berjalan. Dimulai dengan versi ke-15, Nexctcloud akan menawarkan untuk mengonversi basis data ke int besar untuk mendukung pengodean empat byte, dan dengan MariaDB 10.1 ini akan sangat bermasalah. Nexctcloud 17 membutuhkan PHP 7.1-7.3, sementara Debian 9 hanya berisi versi 7.0 di repositori aslinya. Akan lebih benar, dalam hal keandalan dan prediktabilitas, untuk memutakhirkan ke versi kedua dari Nextcloud, tetapi selama beberapa tahun saya begitu yakin dengan keandalan layanan ini sehingga saya ingin memutakhirkan ke versi terbaru dan memperbarui server web dengan cadangan untuk masa depan. Oleh karena itu, untuk meningkatkan ke Nexctcloud 17, optimal untuk meningkatkan MariaDB ke versi stabil saat ini 10.4, dan PHP ke 7.2. Ini 7.2, dan tidak relevan 7.4. Faktanya adalah bahwa Nextcloud 13 membutuhkan PHP 5.6, 7.0 - 7.2, dan Nexctcloud 17 membutuhkan PHP 7.1 - 7.3. Menggunakan PHP 7.2 itu mudah untuk meminimalkan tindakan peningkatan. Server Apache tidak perlu diperbarui - cukup instal pembaruan keamanan yang didistribusikan oleh tim dukungan Debian. Tetapi untuk pembaruan, MariaDB dan PHP harus menghubungkan repositori eksternal.

Ketika saya pertama kali bertemu Nextcloud, saya memperbaruinya "dengan tangan": situs web dimasukkan ke dalam mode pemeliharaan dari konsol oleh tim khusus, arsip dengan versi baru situs diunduh dan dibuka secara manual, file diperbarui dan prosedur pembaruan dimulai. Pembaruan seperti itu biasanya menghasilkan hasil yang diharapkan, meskipun saya tidak malas membuat salinan cadangan dari situs, basis data, dan data pengguna. Tetapi pembaruan otomatis terkadang menyebabkan segala macam kejutan. Tapi itu sudah lama sekali, stabilitas mesin telah meningkat pesat sejak saat itu, dan kali ini saya melakukan pembaruan secara eksklusif melalui antarmuka web. Benar, itu masih tidak mungkin untuk keluar dari baris perintah. Selama pembaruan berulang untuk setiap versi baru, berbagai peringatan dan pemberitahuan akan muncul di panel kontrol, yang perlu "dihapus" dengan mengeksekusi perintah pada baris perintah. Anda tidak dapat melakukan ini - layanan akan tetap bekerja. Meskipun pendekatan ini pada dasarnya salah, Nextcloud bekerja untuk saya selama 3 bulan dalam mode ini sebelum saya sengaja memilah masalah yang muncul.



Pembaruan Debain


Hentikan server web:

# service apache2 stop 

Dan diperbarui:

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

Setelah pembaruan, Anda dapat memeriksa versi OS dan melakukan pemeriksaan ulang untuk memastikan semuanya berjalan normal setelah pembaruan:

 # cat /etc/debian_version # reboot 



Pembaruan PHP ke versi 7.2


Hentikan server web:

 # service apache2 stop 

Tambahkan kunci sertifikat dan 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 

Jika Anda menghapus versi lama PHP 7.0, phpmyadmin juga akan dihapus, karena kami akan membersihkan "jejak" dari paket yang dihapus menggunakan autoremove. Ini tidak akan menyebabkan banyak kesulitan, karena tidak ada pengaturan khusus yang dibuat untuk phpmyadmin dan menginstalnya lagi 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 habr.com oleh AlexanderS .
Tautan ke sumber itu opsional, tetapi rujukannya sangat diinginkan! ]

Kami memeriksa versi PHP, memulai server web dan memeriksa operabilitas Nextcloud:

 # php -v # service apache2 start 



Perbarui MariaDB ke versi 10.4


Situs web proyek memiliki halaman yang menarik di mana Anda perlu menunjukkan OS Anda, rilisnya dan pilih versi database. Setelah dipilih, kode akan dihasilkan untuk menambahkan repositori.

Hentikan server web:

 # service apache2 stop 

Tambahkan repositori dan perbarui paket:

 # 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 

Saat memasang MariaDB, manajer paket akan menghapus versi sebelumnya dengan benar dan menginstal yang baru, semua basis data akan disimpan. Namun, membackup database Nextcloud tentu saja direkomendasikan.

Instal MariaDB dan jalankan prosedur pembaruan:

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

Setelah memasukkan kata sandi, MariaDB akan diperbarui dan akan mungkin untuk mengonfigurasinya, mengikuti instruksi dari bagian kedua :

 # mysql_secure_installation 

Kami memulai server web dan memeriksa kinerja Nextcloud:

 # service apache2 start 



Pembaruan Nextcloud ke versi 17


Untuk memulai pembaruan, Anda harus masuk ke layanan di bawah entri administratif, lanjutkan ke pengaturan dan buka "Pengaturan Umum" di bagian administrasi. Nextcloud menunjukkan versi yang diinstal dan versi yang tersedia untuk memperbarui, yang dapat diluncurkan dengan mengklik tombol "Buka jendela pembaruan". Setelah inisiasi, Nextcloud membuat cadangan, mengunduh dan memeriksa integritas file pembaruan, menyalakan mode perawatan, dan memperbarui file. Berikut ini pertanyaan "Tetap aktifkan mode pemeliharaan"? Anda harus berhati-hati di sini. Jawaban positif akan membuat situs dalam mode pemeliharaan - diasumsikan bahwa administrator tahu apa yang harus dilakukan selanjutnya dan melakukannya secara manual. Jika tidak, Nextcloud akan melakukan semuanya sendiri, jadi klik "Tidak" untuk melanjutkan.

Pembaruan dilakukan secara berulang. Nextcloud 13.x akan meningkatkan ke versi terbaru dari cabang 14.x terlebih dahulu. Setelah itu, Anda harus kembali ke pusat admin dan memulai pembaruan, sekarang dari 14.x hingga 15.x. Dan seterusnya, hingga versi terakhir yang mungkin saat ini tercapai. Setelah setiap pembaruan, pada halaman Pengaturan Umum di bagian administrasi, daftar saran dan masalah yang dihadapi, serta rekomendasi untuk menyelesaikannya, akan ditampilkan. Di bawah ini kita akan berbicara tentang apa yang perlu dilakukan setelah setiap pembaruan.

Sebelum pembaruan

Pada versi Nextcloud terbaru, Anda disarankan untuk mengaktifkan PHP OPcache untuk meningkatkan kinerja. Sungguh aneh bahwa saya entah bagaimana melewatkan momen ini beberapa tahun yang lalu, karena OPcache muncul di PHP 5. Di /etc/php/7.2/apache2/php.ini Anda perlu menghapus komentar 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 

Perbarui 13.x -> 14.x

Kami mengembalikan indeks tabel:

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

Perbarui 14.x -> 15.x

Mempersiapkan database awan berikutnya untuk mengaktifkan pengodean empat byte:

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

Aktifkan dukungan untuk pengodean empat byte di Nextcloud:

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

Kami mengubah tabel:

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

Pulihkan indeks tabel yang hilang:

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

Ubah indeks tabel menjadi bigint:

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

Perbarui 15.x -> 16.x

Pulihkan indeks tabel yang hilang:

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

Ubah indeks tabel menjadi bigint:

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

Perbarui 16.x -> 17.x

Tidak diperlukan tindakan lebih lanjut.



Kata penutup



Mengikuti instruksi ini, mesin virtual dengan Nextcloud 13 telah diperbarui. Menggunakan mesin virtual memungkinkan Anda untuk tidak mencadangkan file Nextcloud dan database-nya, karena jika terjadi masalah, Anda dapat dengan mudah mengembalikan file mesin virtual yang disimpan sebelumnya dan memulai dari awal lagi. Namun, ini tidak berlaku untuk folder data pengguna, yang saya sarankan juga membuat cadangan dengan mesin virtual Nextcloud. Dalam kasus saya, "cloud" digunakan sebagai folder jarak jauh dengan versi otomatis, apalagi, dengan arah sinkronisasi "hanya di sana", dan bagi saya hilangnya data ini tidak penting - saya hanya perlu menyinkronkan lagi selama beberapa jam. Meskipun saya mengabaikan aturan "tetap aman kalau-kalau" berjalan baik dalam hidup saya, pembaruan berjalan lancar dan semua klien juga menghasilkan uang dengan Nextcloud 17 tanpa masalah. Saya terkesan, Frank Karlitshek - Anda dan tim Anda melakukan pekerjaan yang sangat baik!

Setelah pembaruan, saya memutuskan untuk membersihkan data pengguna, yang, jika dilihat dari statistik, menghabiskan dua terabyte. Saya tidak memiliki begitu banyak data operasional - sebagian besar volume ditempati oleh file versi dan file yang dihapus. Masalah yang saya temui adalah bahwa ada begitu banyak data yang dihapus untuk satu pengguna (bahkan bukan volume, tetapi kuantitas - banyak file kecil) sehingga Nextcloud tidak bisa menampilkannya di antarmuka web. Setelah mempelajari panduan administrasi, saya menemukan solusinya melalui baris perintah. Mungkin ini akan berguna bagi seseorang.

Untuk menghapus file yang dihapus dari pengguna pengguna:

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

Untuk menghapus file versi pengguna:

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



Kembali ke awal, ke daftar isi .



Sejarah menciptakan cloud rumah. Bagian 5. Memperbarui 2019 - PHP 7.2, MariaDB 10.4 dan Nextcloud 17
Versi teks: 1.1.1.
Tanggal publikasi pertama: 01/15/2020.
Terakhir diedit: 15/01/2020.

Perbarui log
1.1.1 [15-01-2020]
Koreksi kesalahan ketik.

1.1.0 [15-01-2020]
Kode untuk mempersiapkan basis data nexcloud untuk mengaktifkan pengodean empat byte telah diperbaiki.

1.0.0 [15-01-2020]
Versi pertama.

Source: https://habr.com/ru/post/id483842/


All Articles