لقد قمت بتثبيت منصة discourse جديدة تمامًا. كل شيء يعمل. يمكنني إنشاء الحساب الأولي، واستلام البريد الإلكتروني، وتسجيل الدخول، وما إلى ذلك.
أحتاج إلى استيراد منتدى phpbb3. أعتزم استخدام أداة الاستيراد لملء منصة Discourse الخاصة بي بالبيانات التاريخية، لذلك اتبعت التعليمات الموجودة في Migrate a phpBB3 forum to Discourse
لقد قمت بتنفيذ أمر النسخ
cp containers/app.yml containers/import.yml
وقمت بتحرير الملف لإضافة سطر القالب. يستخدم موقعي LetsEncrypt لشهادة TLS، لذا فإن سطور قوالب SSL و LetsEncrypt غير معلقة - وهذا يختلف قليلاً عن المثال الموضح في التعليمات. على أي حال، لقد جربت هذا مع أسطر معلقة وغير معلقة، لذلك لا أعتقد أن هذه الأسطر تمثل عاملاً.
واصلت مع التعليمات المتبقية، وأخيرًا قمت بتشغيل أمر إعادة بناء الحاوية. الأمر لا يكتمل بنجاح.
94:M 23 Jul 2024 20:14:40.761 * Saving the final RDB snapshot before exiting.
94:M 23 Jul 2024 20:14:40.855 * DB saved on disk
94:M 23 Jul 2024 20:14:40.857 # Redis is now ready to exit, bye bye...
2024-07-23 20:14:41.235 UTC [32] LOG: database system is shut down
FAILED
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/service/unicorn/run
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/replace_command.rb:11:in `read'
replace failed with the params {"tag"=>"precompile", "filename"=>"/etc/service/unicorn/run", "from"=>"PRECOMPILE_ON_BOOT=1", "to"=>"PRECOMPILE_ON_BOOT=0"}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
6f1a0b5cd0cfc8ed542938b7439aeff0a21a0135c58617fa5a05e68fd6fcc70d
أنا غير متأكد من كيفية معالجة هذه المشكلة. لقد قمت بالتثبيت عدة مرات في أماكن متعددة. من خلال القراءة، يبدو أن خطوة إعادة البناء هذه (التي ليست الاستيراد الفعلي للبيانات) يجب أن تعمل ببساطة. هل هذه مشكلة محتملة مع أحدث إصدار من Discourse؟ لقد قمت بتشغيل الاستيراد بنجاح من البداية إلى النهاية قبل عدة أشهر كاختبار.
لإنشاء نقطة بداية مشتركة، قمت بإعادة تثبيت خادم VPS الخاص بي (Ubuntu 22.04)، وتحديث apt && ترقية apt، ثم بدأت عملية تثبيت discourse القياسية.
في حال كانت هذه المعلومات مهمة، فقد ارتكبت خطأ أثناء إدخال المعلومات خلال أول ./discourse-setup، لذا أصدرت control-C ثم أعدت تشغيل ./discourse-setup. التشغيل الثاني لـ ./discourse-setup يسحب discourse/base جديدًا كما هو موضح…
root@discourse:/var/discourse# ./discourse-setup
ملف التكوين containers/app.yml موجود بالفعل!
. . . إعادة التكوين . . .
حفظ الملف القديم باسم app.yml.2024-07-29-151604.bak
إيقاف الحاوية الحالية خلال 5 ثوانٍ أو Control-C للإلغاء.
تم اكتشاف بنية x86_64.
تحذير: سنبدأ الآن في تنزيل صورة discourse الأساسية
قد تستغرق هذه العملية ما بين بضع دقائق إلى ساعة، اعتمادًا على سرعة شبكتك
يرجى التحلي بالصبر
2.0.20240708-0023: سحب من discourse/base
76956b537f14: سحب مكتمل
c5ffad89ad3c: سحب مكتمل
71c31a50a587: سحب مكتمل
c1a1234dcb61: سحب مكتمل
9980a27afc32: سحب مكتمل
4f4fb700ef54: سحب مكتمل
304b565c70c9: سحب مكتمل
8ad811162d08: سحب مكتمل
2c324dce526d: سحب مكتمل
52d141c2b1c8: سحب مكتمل
4c08fdcd145a: سحب مكتمل
1b6035ac25c0: سحب مكتمل
9208d0f90623: سحب مكتمل
513dccf6f63f: سحب مكتمل
e0b141854963: سحب مكتمل
4476d7dd9441: سحب مكتمل
0fad77941078: سحب مكتمل
46c34476ea19: سحب مكتمل
ff0b86516349: سحب مكتمل
c33170d09c8b: سحب مكتمل
ed4a793ffe51: سحب مكتمل
3a7b2554e089: سحب مكتمل
3ad8a6408839: سحب مكتمل
e7c58bcc7f57: سحب مكتمل
59b2407fe431: سحب مكتمل
315160f4d4f8: سحب مكتمل
ad328ba96976: سحب مكتمل
825dca2e642e: سحب مكتمل
9fbd8c908047: سحب مكتمل
b1d30330e969: سحب مكتمل
8c76c65bb8e8: سحب مكتمل
9279965667b5: سحب مكتمل
a0ae3eb4d088: سحب مكتمل
819fb509ef8b: سحب مكتمل
c962935d47d4: سحب مكتمل
63b444b5bd1e: سحب مكتمل
7efa1c09faf6: سحب مكتمل
46c4327ce462: سحب مكتمل
b095ebe7bdf6: سحب مكتمل
3aa16a533cab: سحب مكتمل
41419e4f1948: سحب مكتمل
589837814d9a: سحب مكتمل
bd025ad1b844: سحب مكتمل
24762ff7528f: سحب مكتمل
fe364253c657: سحب مكتمل
Digest: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
الحالة: تم تنزيل صورة أحدث لـ discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
لم يتم بدء التطبيق!
قد يساعد ./discourse-doctor في تشخيص المشكلة.
تم العثور على 3 جيجابايت من الذاكرة و 2 نواة معالج فيزيائية
ضبط db_shared_buffers = 768 ميجابايت
ضبط UNICORN_WORKERS = 4
تم تحديث معلمات الذاكرة في containers/app.yml.
استمر تثبيت discourse وتم الانتهاء منه. تمكنت من إنشاء الحساب الأولي وتسجيل الدخول.
I, [2024-07-29T15:42:21.624379 #1] INFO -- : Replacing location @discourse { with location @discourse {
add_header Strict-Transport-Security 'max-age=31536000'; # تذكر الشهادة لمدة عام واتصل تلقائيًا بـ HTTPS لهذا النطاق في /etc/nginx/conf.d/discourse.conf
I, [2024-07-29T15:42:21.627858 #1] INFO -- : > echo "Beginning of custom commands"
I, [2024-07-29T15:42:21.634022 #1] INFO -- : Beginning of custom commands
I, [2024-07-29T15:42:21.637436 #1] INFO -- : > echo "End of custom commands"
I, [2024-07-29T15:42:21.642766 #1] INFO -- : End of custom commands
I, [2024-07-29T15:42:21.648034 #1] INFO -- : Terminating async processes
I, [2024-07-29T15:42:21.649479 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 57
2024-07-29 15:42:21.651 UTC [57] LOG: تم استلام طلب إيقاف سريع
I, [2024-07-29T15:42:21.652067 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 120
120:signal-handler (1722267741) تم استلام SIGTERM جدولة الإيقاف...
2024-07-29 15:42:21.658 UTC [57] LOG: إلغاء أي معاملات نشطة
120:M 29 Jul 2024 15:42:21.667 # طلب المستخدم الإيقاف...
120:M 29 Jul 2024 15:42:21.668 * حفظ لقطة RDB النهائية قبل الخروج.
2024-07-29 15:42:21.682 UTC [57] LOG: العامل الخلفي "مشغل النسخ المتماثل المنطقي" (PID 72) خرج برمز خروج 1
120:M 29 Jul 2024 15:42:21.682 * تم حفظ قاعدة البيانات على القرص
120:M 29 Jul 2024 15:42:21.683 # Redis جاهز الآن للخروج، وداعًا...
2024-07-29 15:42:21.685 UTC [67] LOG: جاري الإيقاف
2024-07-29 15:42:21.806 UTC [57] LOG: تم إيقاف نظام قاعدة البيانات
sha256:6a6d6a8ea3559ad031a84fd48a164686e9440d7e857cb39619c2baba84a4b966
2b8eddd7b72415507d10cc404c40459c19c7ad3e025cb7bb69bcddb3c98b0197
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LETSENCRYPT_DIR=/shared/letsencrypt -e DISCOURSE_FORCE_HTTPS=true -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=discourse3.greenbullfrog.com -e DISCOURSE_DEVELOPER_EMAILS=discourse-admin@greenbullfrog.com -e DISCOURSE_SMTP_ADDRESS=box.greenbullfrog.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=discourse@greenbullfrog.com -e DISCOURSE_SMTP_PASSWORD=lAtDyjbyqztzhrG -e DISCOURSE_SMTP_DOMAIN=discourse3.greenbullfrog.com -e DISCOURSE_NOTIFICATION_EMAIL=noreply@discourse3.greenbullfrog.com -e LETSENCRYPT_ACCOUNT_EMAIL=letsencrypt@greenbullfrog.com -h discourse-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:f9:8c:dd:3d:63 local_discourse/app /sbin/boot
a78541042858ed6a4dd739bb7c8243a50a4064f595fdf968c22c8b63afb68979
root@discourse:/var/discourse#
root@discourse:/var/discourse# head -23 containers/import.yml
## هذا هو قالب حاوية Discourse المستقل والمتكامل
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة البناء
## /var/discourse/launcher rebuild app
##
## كن حذرًا جدًا عند التحرير!
## ملفات YAML حساسة للغاية للأخطاء في المسافات البيضاء أو المحاذاة!
## قم بزيارة http://www.yamllint.com/ للتحقق من صحة هذا الملف حسب الحاجة
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## قم بإلغاء التعليق على السطر التالي لتمكين مستمع IPv6
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق على هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
- "templates/import/phpbb3.template.yml"
## ما هي منافذ TCP/IP التي يجب أن تعرضها هذه الحاوية؟
## إذا كنت تريد أن تشارك Discourse منفذًا مع خادم ويب آخر مثل Apache أو nginx،
root@discourse:/var/discourse#
تحدث المشكلة عند تشغيل الأمر /var/discourse/launcher rebuild import. نظرًا للطول، لا يمكن نشر سجل هذا الأمر. ومع ذلك، يمكنك تنزيله من رابط NextCloud هذا…
للأسف، تركت عملية إعادة البناء قيد التشغيل وعُدت إلى جلسة SSH مقطوعة، لذلك لم ألتقط كل مخرجات عملية البناء. قامت عملية إعادة البناء بإنشاء صورة docker وبدء الحاوية، لذلك كنت راضيًا بشكل معقول عن انتهائها بشكل طبيعي.
وضعت بيانات phpbb3 الخاصة بي في المواقع الصحيحة للاستيراد المحلي وأصدرت الأمر لبدء العملية. عملية الاستيراد قيد التقدم الآن ولكنها ستستغرق بعض الوقت للانتهاء. سأرد غدًا بنتيجة.
اكتمل الاستيراد ويبدو أنه قام بترحيل معظم البيانات. يبدو أن بعض حسابات مستخدمي phpbb لديها حسابات بريد إلكتروني تزعج Discourse. أعتقد أنه قد يكون هناك مسافة زائدة. سأحاول التنظيف قبل إعادة تشغيل الإجراء بالكامل.
شكرًا على المساعدة. أفترض أنه سيكون هناك إصلاح لأداة الاستيراد التي قد تفشل في البناء للإصدار الحالي من Discourse. أشك في أن العديد من الأشخاص لن يمتلكوا المهارات التقنية للتعمق في المشكلة وسيتخلون ببساطة عند مواجهة الخطأ. سيؤدي ذلك إلى عدد أقل من مجتمعات Discourse، والمناقشات التاريخية المفقودة في مواقع phpbb المهجورة أو المحذوفة.