Ev buludunun yaranma tarixi. Hissə 5. Yeniləmə 2019 – PHP 7.2, MariaDB 10.4 və Nextcloud 17

İki il əvvəl mən Debian 8 əsasında veb-server yaratmaq və onun üzərində Nextcloud 11 xidmətini işə salmaq mövzusunda bir sıra məqalələr dərc etmişdim.Bir neçə ay sonra Debian-da Nextcloud 13-ün quraşdırılması ilə bağlı “diferensial” məlumatı ehtiva edən əlavə peyda oldu. 9. 2018-ci ilin sonunda mən sadəcə Debian və Nextcloud-u yenilədim və heç bir qeyri-adi və ya maraqlı problemlə qarşılaşmadım. 2019-cu ilin sonundakı yeniləmə artıq daha maraqlı və yazmağa dəyər idi.

Ev buludunun yaranma tarixi. Hissə 5. Yeniləmə 2019 – PHP 7.2, MariaDB 10.4 və Nextcloud 17

Bu məqalə, ilk növbədə, əvvəlki dörd məqalənin göstərişlərinə əsasən, Debian 13-da Nextcloud 9-ü “yığmış”lar üçün faydalı olacaq (Nextcloud mövzusunda onlarla yaxın abunəçimə, xüsusən də onlar üçün salam deyirəm. bu onların Linux dünyasında ilk təcrübəsi idi). Sıfırdan bir xidmət yaratmağı planlaşdıranlar üçün sizə Debian 10 və Nextcloud 17-nin cari versiyalarına uyğunlaşdırılmış bu seriyanın ilk dörd məqaləsini əsas götürməyi məsləhət görürəm. Təcrübəli Linux istifadəçiləri üçün məqalə bir az vaxt apara bilər. "xırda və faydasız" və "pis deyil, hamısı bir yerdə fırıldaqçı vərəq" arasında yerləşdirin.

Mündəricat

Hissə 1: Gündəlik istifadə üçün Debian mühitinin qurulması
2-ci hissə: Serverin yaradılması - Debian-da LAMP-ın qurulması
Hissə 3. Şəxsi buludun yaradılması - Nextcloud-un quraşdırılması və konfiqurasiyası
Hissə 4. Yeniləmə 2018 – Debian 9 və Nextcloud 13
Hissə 5. Yeniləmə 2019 – PHP 7.2, MariaDB 10.4 və Nextcloud 17

Sürətli bölmə naviqasiyası

Müqəddimə
Debian yeniləməsi
PHP 7.2 versiyasına yenilənir
MariaDB-nin 10.4 versiyasına yüksəldilməsi
Nextcloud 17-ci versiyaya yenilənir
Sözündən sonra

Müqəddimə

Əvvəlcə mən Nginx-i Debian 10-da quraşdırmaq və konfiqurasiya etmək istəyirdim, bunun üzərinə indiki Nextcloud 17 heç bir problem olmadan quraşdırıla bilərdi.Lakin bütün bunlara vaxt tapa bilmədim, ona görə də bu məqalə yeniləmə üçün təlimatlar toplusudur. Nextcloud 13-dən cari versiya 17-ə qədər veb serverin ilkin hazırlanması ilə.

Birincisi, veb server tərəfində niyə köklü dəyişikliklərin tələb olunduğunu izah etməliyik. Bizim serverimiz cari və dəstəklənən Debian 9-a əsaslanır. Siz sadəcə olaraq əməliyyat sistemini yeniləyə bilərsiniz və veb serverin bütün komponentləri ən azı təhlükəsizlik yeniləmələrini alacaq. Nextcloud 13-dən istifadə etməyə davam etsək və ya yalnız 14-cü versiyaya yenilənsəydik, hər şey əla olardı. Lakin Nextcloud 13 artıq dəstəklənmir və 14-cü versiyaya dəstək çıxmaq üzrədir. 15-ci versiyadan başlayaraq Nexctcloud dörd baytlıq kodlaşdırmanı dəstəkləmək üçün verilənlər bazasını big int-ə çevirməyi təklif edəcək və MariaDB 10.1 ilə bu çox problemli olacaq. Nexctcloud 17 PHP 7.1-7.3 tələb edir, Debian 9 isə öz yerli repozitoriyalarında yalnız 7.0 versiyasını ehtiva edir. Etibarlılıq və proqnozlaşdırıla bilənlik baxımından Nextcloud-un sondan əvvəlki versiyasına yüksəltmək daha düzgün olardı, lakin bir neçə ildən sonra bu xidmətin etibarlılığına o qədər əmin oldum ki, ən son versiyaya yüksəltmək və yeniləmək istədim. gələcək üçün ehtiyatı olan veb server. Buna görə də, Nexctcloud 17-ə yeniləmək üçün MariaDB-ni cari stabil versiya 10.4-ə və PHP-ni 7.2-ə yeniləmək optimaldır. Dəqiq 7.2, indiki 7.4 deyil. Fakt budur ki, Nextcloud 13 PHP 5.6, 7.0 - 7.2, Nexctcloud 17 isə PHP 7.1 - 7.3 tələb edir. Yeniləmə səylərini minimuma endirmək üçün PHP 7.2-dən istifadə etmək rahatdır. Apache serverinizi yeniləməyə ehtiyac yoxdur - sadəcə Debian dəstək komandası tərəfindən paylanan təhlükəsizlik yeniləmələrini quraşdırın. Lakin MariaDB və PHP yeniləmələri üçün siz xarici repozitoriyaları birləşdirməli olacaqsınız.

Nextcloud ilə yeni tanış olanda onu “əl ilə” yenilədim: konsoldan xüsusi əmrdən istifadə edərək sayt texniki xidmət rejiminə keçirildi, saytın yeni versiyası olan arxiv əl ilə yükləndi və paketdən çıxarıldı, fayllar yeniləndi və yeniləmə proseduruna başlandı. Belə bir yeniləmə adətən gözlənilən nəticələrə gətirib çıxarırdı, baxmayaraq ki, saytın, verilənlər bazasının və istifadəçi məlumatlarının ehtiyat nüsxəsini hazırlamaqda tənbəllik etməmişəm. Lakin avtomatik yeniləmələr bəzən hər cür sürprizlərə səbəb olurdu. Ancaq bu, çoxdan idi, o vaxtdan bəri mühərrikin dayanıqlığı çox artdı və bu dəfə mən yeniləmələri yalnız veb interfeysi vasitəsilə etdim. Düzdür, mən hələ də komanda xəttindən uzaqlaşa bilmədim. Hər bir yeni versiyaya təkrarlanan yeniləmə zamanı idarəetmə panelində müxtəlif xəbərdarlıqlar və bildirişlər görünəcək ki, bu da əmr satırında əmrləri mənalı şəkildə yerinə yetirməklə "silmək" tələb olunur. Bunu etmək lazım deyil - xidmət hələ də işləyəcək. Bu yanaşma kökündən yanlış olsa da, qarşıya çıxan məsələləri məqsədyönlü şəkildə həll etməzdən əvvəl Nextcloud mənim üçün bu rejimdə 3 ay işlədi.

Debain yeniləməsi

Veb serveri dayandırın:

# service apache2 stop


Və yeniləyirik:

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


Yeniləmədən sonra siz OS versiyasını yoxlaya və yeniləmədən sonra hər şeyin normal şəkildə başladığına əmin olmaq üçün yenidən sınaqdan keçirə bilərsiniz:

# cat /etc/debian_version
# reboot


PHP 7.2 versiyasına yenilənir

Veb serveri dayandırın:

# service apache2 stop


Sertifikat və PPA açarları, PHP repozitoriyası əlavə edin:

# 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 köhnə versiyasını silən zaman phpmyadmin də silinəcək, çünki biz autoremove vasitəsilə silinmiş paketlərdən “izləri” təmizləyəcəyik. Bu, heç bir xüsusi çətinlik yaratmayacaq, çünki phpmyadmin üçün xüsusi parametrlər edilməyib və onu yenidən quraşdırmaq heç bir problem yaratmayacaq.

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


Nextcloud 17 üçün tələb olunan modulların quraşdırılması:

# 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


[ Bu mətn sayt üçün xüsusi olaraq yazılmışdır www.habr.com müəllif AlexanderS.
Mənbəyə keçid isteğe bağlıdır, lakin onu qeyd etmək çox tövsiyə olunur! ]

PHP versiyasını yoxlayırıq, veb serveri işə salırıq və Nextcloud-un funksionallığını yoxlayırıq:

# php -v
# service apache2 start


MariaDB-nin 10.4 versiyasına yüksəldilməsi

Layihənin saytında var maraqlı səhifə, burada OS-ni, onun buraxılışını göstərməli və verilənlər bazası versiyasını seçməlisiniz. Seçildikdən sonra depo əlavə etmək üçün kod yaradılacaq.

Veb serveri dayandırın:

# service apache2 stop


Anbar əlavə edin və paketləri yeniləyin:

# 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-ni quraşdırarkən paket meneceri əvvəlki versiyanı düzgün siləcək və yenisini quraşdıracaq, eyni zamanda bütün verilənlər bazaları qorunub saxlanılacaq. Bununla belə, əlbəttə ki, Nextcloud verilənlər bazasının ehtiyat nüsxəsini çıxarmaq tövsiyə olunur.

MariaDB-ni quraşdırın və yeniləmə proseduruna başlayın:

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


Şifrəni daxil etdikdən sonra MariaDB yenilənəcək və siz onu izləməklə konfiqurasiya edə bilərsiniz ikinci hissədən təlimatlar:

# mysql_secure_installation


Veb serveri işə salırıq və Nextcloud-un funksionallığını yoxlayırıq:

# service apache2 start


Nextcloud 17-ci versiyaya yenilənir

Yenilənməyə başlamaq üçün inzibati hesabla xidmətə daxil olmalı, parametrlərə keçməli və inzibati bölmədə “Ümumi parametrlər”i açmalısınız. Nextcloud quraşdırılmış versiyanı və yeniləmə üçün mövcud olan versiyanı göstərir, onu “Yeniləmə pəncərəsini aç” düyməsini klikləməklə işə salmaq olar. Başlandıqdan sonra Nextcloud ehtiyat nüsxəsini çıxarır, yeniləmə fayllarının bütövlüyünü yükləyir və yoxlayır, texniki xidmət rejimini yandırır və faylları yeniləyir. Sonra "Təxminat rejimini aktiv saxla" sualı gəlir? Burada diqqətli olmaq lazımdır. Müsbət cavab saytı texniki xidmət rejimində tərk edəcək - güman edilir ki, administrator bundan sonra nə edəcəyini bilir və bunu əl ilə edəcək. Əks halda Nextcloud hər şeyi özü edəcək, ona görə də davam etmək üçün “Xeyr” düyməsini klikləyin.

Yeniləmələr iterativ olaraq həyata keçirilir. Əvvəlcə Nextcloud 13.x 14.x filialının ən son versiyasına yenilənəcək. Bundan sonra siz yenidən idarəetmə mərkəzinə getməli və 14.x-dən 15.x-ə qədər yeniləməyə başlamalısınız. Və s. son mümkün cari versiyaya çatana qədər. Hər yeniləmədən sonra, inzibati bölmədəki "Ümumi Parametrlər" səhifəsində təkliflərin və qarşılaşılan problemlərin siyahısı, habelə onların həlli üçün tövsiyələr göstərilir. Aşağıda hər yeniləmədən sonra nə edilməli olduğunu danışacağıq.

Yeniləmə qədər

Nextcloud-un ən son versiyalarında performansı yaxşılaşdırmaq üçün PHP OPcache-ni aktivləşdirmək tövsiyə olunur. OPcache PHP 5-də göründüyü üçün bir neçə il əvvəl bu məqamı nədənsə qaçırmağım qəribədir. /etc/php/7.2/apache2/php.ini-də aşağıdakı parametrləri şərh etməli və redaktə etməlisiniz:

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


Yeniləmə 13.x -> 14.x

Cədvəl indekslərinin bərpası:

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


Yeniləmə 14.x -> 15.x

Dörd baytlıq kodlaşdırmanı aktivləşdirmək üçün nextcloud verilənlər bazasını hazırlayırıq:

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


Nextcloud-da dörd baytlıq kodlaşdırma dəstəyini aktivləşdirin:

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


Cədvəllərin dəyişdirilməsi:

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


İtirilmiş cədvəl indekslərinin bərpası:

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


Cədvəl indekslərini bigint-ə çevirin:

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


Yeniləmə 15.x -> 16.x

İtirilmiş cədvəl indekslərinin bərpası:

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


Cədvəl indekslərini bigint-ə çevirin:

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


Yeniləmə 16.x -> 17.x

Əlavə hərəkət tələb olunmur.

Sözündən sonra

Bu təlimatlardan sonra Nextcloud 13 ilə virtual maşın yeniləndi.Virtual maşından istifadə Nextcloud fayllarının və onun verilənlər bazasının ehtiyat nüsxələrini yaratmamağa imkan verir, çünki problem yaranarsa, sadəcə olaraq əvvəllər saxlanmış virtual maşın faylını qaytarıb hər şeyi yenidən başlaya bilərsiniz. yenidən. Bununla belə, bu, istifadəçi məlumatları olan qovluğa aid deyil, mən də Nextcloud ilə virtual maşınla birlikdə ehtiyat nüsxəsini çıxarmağı məsləhət görürəm. Mənim vəziyyətimdə "bulud" avtomatik versiyaya malik uzaq bir qovluq kimi istifadə olunur və sinxronizasiya istiqaməti "yalnız orada" və bu məlumatların itirilməsi mənim üçün kritik deyildi - sadəcə bir neçə saat sinxronizasiyanı yenidən etməli olacaqdım. . Ömürlük “hər halda qənaət et” qaydasına məhəl qoymamağıma baxmayaraq, yeniləmə heç bir problem olmadan keçdi və bütün müştərilər Nextcloud 17 ilə heç bir problem olmadan işləməyə başladılar.Məni heyran etdim, Frank Karlitşek – siz və komandanız əla iş görürsünüz. iş!

Yeniləmədən sonra, statistikaya əsasən, təxminən iki terabayt tutan istifadəçi məlumatlarını təmizləmək qərarına gəldim. Məndə o qədər də operativ məlumat yox idi - həcmin çoxunu versiya faylları və silinmiş fayllar tuturdu. Qarşılaşdığım problem ondan ibarət idi ki, bir istifadəçi üçün o qədər silinmiş məlumat (hətta həcm məsələsi deyil, kəmiyyət məsələsidir - çoxlu kiçik fayllar) var ki, Nextcloud onu veb interfeysində göstərə bilmir. İdarəetmə təlimatını öyrəndikdən sonra əmr satırı vasitəsilə həll tapdım. Bəlkə də bu kiməsə faydalı olacaq.

Silinmiş istifadəçi fayllarını təmizləmək üçün:

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


İstifadəçi versiya fayllarını təmizləmək üçün:

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

Geri qayıt əvvəlinə, məzmun cədvəlinə.

Ev buludunun yaranma tarixi. Hissə 5. Yeniləmə 2019 – PHP 7.2, MariaDB 10.4 və Nextcloud 17
Mətn versiyası: 1.1.1.
İlk nəşr tarixi: 15.01.2020.
Son redaktə tarixi: 15.01.2020.

Güncəlləmə jurnalı1.1.1 [15-01-2020] Yazı xətalarının düzəldilməsi.

1.1.0 [15-01-2020] Dörd baytlıq kodlaşdırmanı aktivləşdirmək üçün sabit nexcloud verilənlər bazası hazırlama kodu.

1.0.0 [15-01-2020] İlk versiya.

Mənbə: www.habr.com