تاريخ إنشاء سحابة المنزل. الجزء 5. تحديث 2019 - PHP 7.2 ، MariaDB 10.4 و Nextcloud 17

منذ عامين ، قمت بنشر سلسلة من المقالات حول موضوع إنشاء خادم ويب يستند إلى Debian 8 وإطلاق خدمة Nextcloud 11. وبعد بضعة أشهر ، كانت هناك معلومات إضافية تحتوي على معلومات "تفاضلية" حول تثبيت Nextcloud 13 على Debian 9. في نهاية عام 2018 ، تحديث ديبيان و Nextcloud ولم تواجه أي مشاكل غير عادية أو مثيرة للاهتمام. كان التحديث في نهاية عام 2019 أكثر إثارة بالفعل ويستحق الكتابة عنه.



ستكون هذه المقالة مفيدة بشكل أساسي لأولئك الذين ، وفقًا لتعليمات المقالات الأربعة الأخيرة ، "جمعوا" Nextcloud 13 على Debian 9 (أرسل تحياتي إلى عشرة من مشتركي على Nextcloud ، خاصةً أولئك الذين كانت أول تجربة لهم في عالم Linux). بالنسبة لأولئك الذين سيقومون بتقديم خدمة من الصفر ، أنصحك أن تأخذ كأساس للمقالات الأربعة الأولى من هذه السلسلة ، المعدلة للإصدارات الحالية من Debian 10 و Nextcloud 17. بالنسبة لمستخدمي Linux ذوي الخبرة ، يمكن أن تحدث المقالة بين "تافهة وغير مجدية" و "ليست سيئة ، ورقة الغش في مكان واحد. "



جدول المحتويات


الجزء 1. إعداد بيئة دبيان للاستخدام اليومي
الجزء 2. إنشاء خادم - إعداد LAMP في دبيان
الجزء 3. إنشاء سحابة الشخصية - تثبيت وتكوين Nextcloud
الجزء 4. تحديث 2018 - دبيان 9 و Nextcloud 13
الجزء 5. تحديث 2019 - PHP 7.2 ، MariaDB 10.4 و Nextcloud 17



الفصل سريع الملاحة


مقدمة
تحديث دبيان
تحديث PHP إلى الإصدار 7.2
تحديث MariaDB إلى الإصدار 10.4
تحديث Nextcloud إلى الإصدار 17
خاتمة



مقدمة


في البداية ، كنت أرغب في تثبيت وتكوين Nginx على Debian 10 ، وعلى رأسه تم تثبيت Nextcloud 17 الحالي دون مشاكل ، لكن لهذا كله ، لم أتمكن من اختيار الوقت ، لذلك هذه المقالة عبارة عن مجموعة من التعليمات لترقية Nextcloud من 13 إلى الإصدار الحالي 17 من النسخة الأولية تحضير خادم الويب.

تحتاج أولاً إلى شرح سبب الحاجة إلى إجراء تغييرات جذرية على جانب خادم الويب. يعتمد خادمنا على Debian 9. الحالي والمدعوم. يمكنك ببساطة تحديث نظام التشغيل وستتلقى جميع مكونات خادم الويب تحديثات أمنية على الأقل. سيكون كل شيء رائعًا إذا استخدمنا Nextcloud 13 أو تمت ترقيته فقط إلى الإصدار 14. لكن Nextcloud 13 لم يعد مدعومًا ، كما أن دعم الإصدار الرابع عشر أصبح سريعًا. بدءًا من الإصدار الخامس عشر ، ستعرض Nexctcloud تحويل قاعدة البيانات إلى int الكبيرة لدعم ترميز البايتات الأربعة ، ومع MariaDB 10.1 سيكون هذا مشكلة كبيرة. يتطلب Nexctcloud 17 PHP 7.1-7.3 ، بينما يحتوي Debian 9 فقط على الإصدار 7.0 في مستودعاته الأصلية. سيكون من الأصح ، من حيث الموثوقية والقدرة على التنبؤ ، الترقية إلى الإصدار قبل الأخير من Nextcloud ، لكنني لبضعة أعوام كنت واثقًا من موثوقية هذه الخدمة التي أردت الترقية إلى أحدث إصدار وتحديث خادم الويب باحتياطي للمستقبل. لذلك ، للترقية إلى Nexctcloud 17 ، من الأفضل ترقية MariaDB إلى الإصدار الحالي الثابت 10.4 ، و PHP إلى 7.2. هو 7.2 ، وليس ذات الصلة 7.4. الحقيقة هي أن Nextcloud 13 يتطلب PHP 5.6 ، 7.0 - 7.2 ، و Nexctcloud 17 يتطلب PHP 7.1 - 7.3. يعد استخدام PHP 7.2 مناسبًا لتقليل إجراءات الترقية. لا يلزم تحديث خادم Apache - فقط قم بتثبيت التحديثات الأمنية التي يوزعها فريق دعم دبيان. ولكن للحصول على التحديثات ، سيتعين على MariaDB و PHP توصيل المستودعات الخارجية.

عندما قابلت Nextcloud لأول مرة ، قمت بتحديثه "يدويًا": تم وضع موقع الويب في وضع الصيانة من وحدة التحكم بواسطة فريق خاص ، وتم تنزيل الأرشيف مع الإصدار الجديد من الموقع يدويًا وتفريغه ، وتم تحديث الملفات وبدء إجراء التحديث. عادةً ما يؤدي هذا التحديث إلى النتائج المتوقعة ، على الرغم من أنني لم أكن كسولًا لعمل نسخة احتياطية من الموقع وقاعدة البيانات وبيانات المستخدم. لكن التحديثات التلقائية أدت في بعض الأحيان إلى كل أنواع المفاجآت. ولكن منذ زمن طويل ، ازداد استقرار المحرك زيادة كبيرة منذ ذلك الحين ، وهذه المرة قمت بالتحديثات حصريًا من خلال واجهة الويب. صحيح أنه لم يكن من الممكن الخروج من سطر الأوامر. أثناء التحديث التكراري لكل إصدار جديد ، ستظهر العديد من التحذيرات والإشعارات في لوحة التحكم ، والتي ستحتاج إلى "إزالتها" عن طريق تنفيذ الأوامر بشكل مفيد في سطر الأوامر. لا يمكنك القيام بذلك - الخدمة ستعمل على أي حال. على الرغم من أن هذا النهج خاطئ بشكل أساسي ، فقد عملت Nextcloud من أجلك لمدة 3 أشهر في هذا الوضع قبل أن أعمد إلى حل المشكلات التي نشأت.



تحديث Debain


أوقف خادم الويب:

# service apache2 stop 

وتحديثها:

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

بعد التحديث ، يمكنك التحقق من إصدار نظام التشغيل والقيام بإعادة تشغيل التحقق للتأكد من أن كل شيء يبدأ بشكل طبيعي بعد التحديث:

 # cat /etc/debian_version # reboot 



تحديث PHP إلى الإصدار 7.2


أوقف خادم الويب:

 # service apache2 stop 

إضافة شهادة ومفاتيح PPA ، مستودع 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 

إذا قمت بحذف الإصدار القديم من PHP 7.0 ، فسيتم أيضًا حذف phpmyadmin ، حيث سنقوم بتنظيف "التتبعات" من الحزم التي تمت إزالتها باستخدام autoremove. لن يسبب ذلك صعوبة كبيرة ، حيث لم يتم إعداد إعدادات خاصة لـ phpmyadmin ولن يكون تثبيته مرة أخرى مشكلة.

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

تركيب الوحدات اللازمة ل 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 

[كتب هذا النص خصيصًا لـ habr.com بواسطة AlexanderS .
الارتباط بالمصدر اختياري ، لكن مرجعه مرغوب فيه للغاية! ]

نتحقق من إصدار PHP ، ونبدأ تشغيل خادم الويب ونتحقق من إمكانية تشغيل Nextcloud:

 # php -v # service apache2 start 



تحديث MariaDB إلى الإصدار 10.4


يحتوي موقع المشروع على صفحة مثيرة للاهتمام تحتاج إلى الإشارة إلى نظام التشغيل لديك وإصدارها وتحديد إصدار قاعدة البيانات. بمجرد تحديده ، سيتم إنشاء كود لإضافة المستودع.

أوقف خادم الويب:

 # service apache2 stop 

إضافة مستودع وحزم التحديث:

 # 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 ، سيقوم مدير الحزمة بحذف الإصدار السابق وتثبيت الإصدار الجديد بشكل صحيح ، وسيتم حفظ جميع قواعد البيانات. ومع ذلك ، النسخ الاحتياطي لقاعدة البيانات Nextcloud يوصى بالطبع.

قم بتثبيت MariaDB وقم بتشغيل إجراء التحديث:

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

بعد إدخال كلمة المرور ، سيتم تحديث MariaDB وسيكون من الممكن تهيئته ، باتباع الإرشادات الواردة من الجزء الثاني :

 # mysql_secure_installation 

نبدأ خادم الويب ونتحقق من أداء Nextcloud:

 # service apache2 start 



تحديث Nextcloud إلى الإصدار 17


لبدء التحديث ، تحتاج إلى تسجيل الدخول إلى الخدمة تحت إدخال إداري ، والمتابعة إلى الإعدادات وفتح "الإعدادات العامة" في القسم الإداري. يُظهر Nextcloud الإصدار المثبت والإصدار المتاح للتحديث ، والذي يمكن تشغيله بالنقر فوق الزر "فتح نافذة التحديث". بعد بدء التشغيل ، يقوم Nextcloud بعمل نسخة احتياطية ، ويقوم بتنزيل وفحص سلامة ملفات التحديث ، ويقوم بتشغيل وضع الصيانة وتحديث الملفات. ما يلي هو السؤال "الحفاظ على وضع الصيانة نشط"؟ عليك أن تكون حذرا هنا. ستترك الإجابة الإيجابية الموقع في وضع الصيانة - من المفترض أن المسؤول يعرف ما يجب القيام به بعد ذلك ويقوم به يدويًا. وإلا ، فستعمل Nextcloud كل شيء بنفسها ، لذا انقر فوق "لا" للمتابعة.

يتم تنفيذ التحديثات بشكل متكرر. سيقوم Nextcloud 13.x بالترقية إلى أحدث إصدار من فرع 14.x أولاً. بعد ذلك ، ستحتاج إلى العودة إلى مركز الإدارة وبدء التحديث ، الآن من 14.x إلى 15.x. وهكذا ، حتى يتم الوصول إلى آخر إصدار حالي ممكن. بعد كل تحديث ، في صفحة الإعدادات العامة في القسم الإداري ، سيتم عرض قائمة بالاقتراحات والمشكلات التي صودفت ، بالإضافة إلى توصيات لحلها. أدناه سنتحدث عن ما يجب القيام به بعد كل تحديث.

قبل التحديث

في الإصدارات الأخيرة من Nextcloud ، يوصى بتمكين PHP OPcache من تحسين الأداء. من الغريب أنني فاتني هذه اللحظة بطريقة ما قبل عامين ، حيث ظهر OPcache في PHP 5. في /etc/php/7.2/apache2/php.ini ، يلزمك إلغاء التعليق وتعديل المعلمات التالية:

 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 

تحديث 13.x -> 14.x

نستعيد فهارس الجداول:

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

تحديث 14.x -> 15.x

تحضير قاعدة بيانات nextcloud لتمكين ترميز أربعة بايت:

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

تمكين الدعم لترميز أربعة بايت في Nextcloud:

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

نقوم بتحويل الجداول:

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

استرداد مؤشرات الجدول المفقودة:

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

تحويل مؤشرات الجدول إلى bigint:

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

تحديث 15.x -> 16.x

استرداد مؤشرات الجدول المفقودة:

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

تحويل مؤشرات الجدول إلى bigint:

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

تحديث 16.x -> 17.x

لا يوجد إجراء آخر مطلوب.



خاتمة



باتباع هذه التعليمات ، تم تحديث الجهاز الظاهري مع Nextcloud 13. يتيح لك استخدام الجهاز الظاهري عدم عمل نسخة احتياطية من ملفات Nextcloud وقاعدة بياناته ، لأنه في حالة حدوث مشكلات ، يمكنك ببساطة إرجاع ملف الجهاز الظاهري المحفوظ مسبقًا والبدء من جديد من جديد. ومع ذلك ، لا ينطبق هذا على مجلد بيانات المستخدم ، والذي أوصي أيضًا بالنسخ الاحتياطي باستخدام الجهاز الظاهري Nextcloud. في حالتي ، يتم استخدام "السحابة" كمجلد بعيد مع إصدار تلقائي ، بالإضافة إلى اتجاه التزامن "هناك فقط" ، ولم يكن فقدان هذه البيانات بالنسبة لي أمرًا بالغ الأهمية - وسيتعين علي فقط المزامنة مرة أخرى لعدة ساعات. على الرغم من إهمالي للقاعدة "ابق آمناً في حالة جيدة" في حياتي ، فقد تم التحديث بسلاسة وكسب جميع العملاء أموالًا مع Nextcloud 17 دون أي مشاكل. لقد تأثرت ، فرانك كارليتسك - أنت وفريقك يقومون بعمل ممتاز!

بعد التحديث ، قررت تنظيف بيانات المستخدم ، والتي ، وفقًا للإحصاءات ، تناولت تيرابايت اثنين. لم يكن لدي الكثير من البيانات التشغيلية - معظم وحدات التخزين كانت مشغولة بملفات الإصدار والملفات المحذوفة. المشكلة التي واجهتها هي أنه كان هناك الكثير من البيانات المحذوفة لمستخدم واحد (ليس حتى الحجم ، ولكن الكمية - الكثير من الملفات الصغيرة) التي لم يتمكن Nextcloud من عرضها في واجهة الويب. بعد دراسة دليل الإدارة ، وجدت الحل من خلال سطر الأوامر. ربما سيأتي هذا مفيدًا لشخص ما.

لمسح ملفات المستخدم المحذوفة:

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

لمسح ملفات إصدار المستخدم:

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



العودة إلى البداية ، إلى جدول المحتويات .



تاريخ إنشاء سحابة المنزل. الجزء 5. تحديث 2019 - PHP 7.2 ، MariaDB 10.4 و Nextcloud 17
نسخة نصية: 1.1.1.
تاريخ النشر الأول: 01/15/2020.
آخر تعديل: 01/15/2020.

تحديث السجل
1.1.1 [15-01-2020]
تصحيح الأخطاء المطبعية.

1.1.0 [15-01-2020]
تم إصلاح رمز إعداد قاعدة بيانات nexcloud لتمكين ترميز أربعة بايت.

1.0.0 [15-01-2020]
الإصدار الأول.

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


All Articles