التبديل بين مزود النطاق ونطاق المنتدى أيضًا لذا من الأفضل الترقية أولاً… فكرة سيئة، نسيت أن 50% من ترقيات discourse تفشل .
ربما توجد مشكلة مع “gem ‘mini_racer’” ووجدت بعض التعليقات القديمة جدًا حول التوزيع/gcc ولكن مع بقاء 9 أيام على انتهاء صلاحية النطاق قررت استعادة النسخة الاحتياطية، عبر وحدة التحكم نظرًا لأن الموقع معطل الآن (وقد نشرت للتو رسالة بأن عنوان URL للمنتدى سيتغير لذا قد يحاول الأشخاص بالفعل الآن، أوه لا).
وهذا يفشل أيضًا. أوه لا مرة أخرى، يبدو أن الموقع سيكون معطلاً لفترة أطول قليلاً…
السجلات مرفقة، مرتبك جدًا (كما هو الحال دائمًا)، لدي بعض المهام لأقوم بها لذا سأكتفي بعقد أصابعي على أمل حل بسيط.
في الوقت الحالي، أريد فقط العودة إلى الإصدار السابق.
بعد ذلك، مع ما يكفي من الوقت، سأتحقق مما إذا كان من الممكن حتى الترقية “بسهولة” أم أنه يجب علي أخيرًا بعد 10 سنوات القيام بتثبيت أوبونتو جديد من الصفر ونقل الأشياء إلى هناك. ولكن عند تذكر ما فعلته أيضًا على مر السنين… يا إلهي.
نعم، ولكن إعداد خادم جديد والنظر فيما إذا كان سيتم نقل التحكم في المصدر أيضًا وكل ما قمت بتثبيته على مر السنين ليكون في خادم سحابي يعمل على مدار الساعة طوال أيام الأسبوع… شيء أفضل أن أقوم به في يوم واحد على الأقل. وهو ما لا أملكه الآن.
حسنًا، في الوقت الحالي، أقوم فقط باستعادة خادم الليلة الماضية وإسقاط النسخة الاحتياطية عليه. آمل أن يسير ذلك على ما يرام على الأقل.
بجدية، إذا فشل الترقية، فيجب أن يكون هناك آلية أمان تلقائية للعودة إلى الحالة السابقة. يبدو أخذ نسخة احتياطية من الخادم مبالغًا فيه ويعتمد على المسؤول. أن تكون مهووسًا ولديك نسختان وتبدأ دائمًا بنقل النسخة النشطة إلى الأقدم وترقية تلك… حسنًا، ربما هذا ما يجب أن أفعله هذه الأيام.
حسنًا، اضطررت إلى تحديث app.yml بسبب تبديل النطاق وقمت بإعادة بناء التطبيق بدلاً من إعادة تشغيله عن طريق الخطأ دون أخذ لقطة في Digital Ocean أولاً. لذلك أجبرت نفسي على الترقية الآن .
مما نجح في النهاية. نظرًا لأنني واجهت بعض الصعوبات (يمكن الضحك) سأنشر مساري من (سوء) الحظ هنا. ربما يصادف شخص ما رسالة الخطأ الدقيقة هذه ويحصل على المساعدة منها.
الوقت المستغرق 3.5 ساعات (أعتقد أنه كان يجب أن أكون كسولًا وأقوم بإعداد Digital Ocean بنقرة واحدة ولكني كنت فضوليًا لمعرفة ما إذا كانت الترقية ستنجح).
****** ترقية Ubuntu 16.x → Ubuntu 18.x *
****** ترقية Ubuntu 18.x → Ubuntu 20.x (مندهش من مدى نجاح هذا في الواقع، أفضل بكثير من Windows ) *
*Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-208-generic x86_64)*
*root@Discourse:~# cd /var/discourse/*
*root@Discourse:/var/discourse# ./launcher restart app*
*ERROR: Docker version 19.03.13 not supported, please upgrade to at least 20.10.0, or recommended 24.0.7*
*root@Discourse:/var/discourse# sudo apt-get install docker-ce --only-upgrade*
*Reading package lists... Done*
*Building dependency tree*
*Reading state information... Done*
*docker-ce is already the newest version (5:19.03.13~3-0~ubuntu-xenial).*
******(/(&(%(&/()(=)/&/))&/*
******لم أرغب في التخلص من docker وإعادة تثبيته ولكن الآن لقد سئمت...*
*root@Discourse:/var/discourse# sudo apt remove docker docker-engine docker.io containerd runc*
*root@Discourse:/var/discourse# sudo apt install apt-transport-https ca-certificates curl software-properties-common*
*root@Discourse:/var/discourse# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -*
*root@Discourse:/var/discourse# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"*
*root@Discourse:/var/discourse# sudo apt update*
******كنت سأقوم بتشغيل هذا أيضًا ولكن لم أتمكن من العثور عليه في سجلاتي، لذا ربما لم أفعل ذلك (الأمر لا يظهر ولكن التثبيت يظهر، هاه؟):*
******sudo apt install docker-ce docker-ce-cli containerd.io*
*root@Discourse:/var/discourse# sudo docker --version*
*Docker version 28.0.1, build 068a01e*
*root@Discourse:/var/discourse# ./launcher rebuild app*
****** استغرق الأمر بضع محاولات ولكن أخيرًا بدا أفضل بعد بضع عمليات إعادة بناء. *
******... أخيرًا وصلت إلى redis، يا للهول... أو لا*
*docker: Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint app (ea1a6cc790c13940435c2626a4e8b6169f04612f4be552be25564def7d5745eb): failed to bind host port for 0.0.0.0:80:172.17.0.2:80/tcp: address already in use*
******(/(&(%(&/()(=)/&/))&/ (أم قلت ذلك بالفعل؟)*
*root@Discourse:/var/discourse# hostname -I*
*139.X.X.X 10.19.0.5 172.17.0.1*
*root@Discourse:/var/discourse# sudo lsof -i :80*
*COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME*
*apache2 839 root 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
*apache2 844 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
*apache2 845 www-data 4u IPv6 23477 0t0 TCP *:http (LISTEN)*
******Apache يعمل افتراضيًا؟ منذ متى؟ بالتأكيد لا!*
*root@Discourse:/var/discourse# sudo systemctl stop apache2*
*root@Discourse:/var/discourse# sudo systemctl disable apache2*
*Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.*
*Executing: /lib/systemd/systemd-sysv-install disable apache2*
*Removed /etc/systemd/system/multi-user.target.wants/apache2.service.*
*root@Discourse:/var/discourse# ./launcher start app*
******ها هو، أخيرًا! (بعد رسالة القيء المعتادة البطيئة من ngix)*
******بعد التمهيد، بالطبع، أحصل على... الذي كنت أنتظره... حسنًا، بمجرد أن يعمل كل شيء لمدة أسبوع، ربما أستمر في المعاناة... بعد أخذ لقطة ونسخ احتياطي و... ؛)*
*New release '22.04.5 LTS' available.*
*Run 'do-release-upgrade' to upgrade to it.*
كنت سأقوم بإنشاء قطرة جديدة وإما إجراء تثبيت نظيف ونسخ النسخة الاحتياطية أو نقل موقع Discourse إلى VPS آخر باستخدام rsync. أقوم أيضًا بإصدار هجين حيث أقوم بنسخ شهادات SSL باستخدام rsync، ثم أستعيد نسخة احتياطية. هذا يوفر خطوة ترقية قاعدة البيانات.