فشل استيراد PHPBB3 في المرحلة الأولى

لقد قمت بإعداد منصة Discourse جديدة تمامًا، وقد فعلتها وهي تعمل بشكل صحيح. لم يتم تطبيق أي تغييرات على الإطلاق. أحاول استيراد من phpBB3، لكن العملية تفشل في مرحلة مبكرة جدًا، قبل حتى استدعاء ملف dump الخاص بقاعدة البيانات. يبدو أن هناك مشكلة في إنشاء مجلد، لكنني لا أستطيع فهم السبب أو كيفية الإصلاح.

أولاً، أقوم بتشغيل الأوامر التالية:

cd /var/discourse
cp containers/app.yml containers/import.yml
nano containers/import.yml

ثم أقوم بتحديث ملف import.yml لإضافة الإدخال إلى قائمة القوالب.

بعد ذلك، أقوم بتشغيل الأمر التالي:

/var/discourse/launcher stop app
/var/discourse/launcher rebuild import

لكن العملية تفشل في التمهيد وتظهر لي الرسالة التالية في قسم الفشل:

FAILED

--------------------

Pups::ExecError: فشل أمر apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server مع رمز الخروج #<Process::Status: pid 751 exit 100>

موقع الفشل: /pups/lib/pups/exec_command.rb:112:in `spawn'

فشل التنفيذ مع المعاملات التالية {"cmd"=>["mkdir -p /shared/import/mysql/data", "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8", "add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu xenial main'", "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server", "sed -Ei 's/^log/#&/' /etc/mysql/my.cnf"]}

35bdae869b75c936048af19f082aa5eded27d1ec77b9c53c48216d794775142d

** فشل التمهيد ** يرجى التمرير للأعلى والبحث عن رسائل الخطأ السابقة، فقد يكون هناك أكثر من خطأ.

قد يساعدك ./discourse-doctor في تشخيص المشكلة.

أشعر بالإحباط الشديد وأحاول إصلاح هذا. هل يمكن لأحد اقتراح أين أخطأت؟

تعمقي أكثر في هذا الأمر قادني إلى هذا المنشور الذي يبدو أنه يحتوي على نفس الخطأ الذي أواجهه.

لاحظت أن الحل كان تحديث المستودعات بإصدار أوبونتو الأحدث. قمت بتغيير هذا القسم في ملف phpbb3.template.yml:

cmd:
          - mkdir -p /shared/import/mysql/data
          - apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
          - add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu xenial main'
          - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server
          - sed -Ei 's/^log/#&/' /etc/mysql/my.cnf

إلى:

cmd:
          - mkdir -p /shared/import/mysql/data
          - apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
          - add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu bionic main'
          - apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y nano libmariadbclient-dev mariadb-server
          - sed -Ei 's/^log/#&/' /etc/mysql/my.cnf

لكن يبدو أن هذا لا يزال يفشل لأن المفتاح المستخدم أصبح قديماً الآن. هل يمكن لأي شخص مساعدتي في الحصول على المفتاح حتى أتمكن من اختبار هذه الفرضية؟

قمنا بالتبديل من أوبونتو إلى ديبان. وهذا هو السبب في أن الأمر لم يعد يعمل.
جربته بسرعة، ويعمل إلى حد كبير بتطبيق التغييرات التالية، لكن خادم MariaDB لم يبدأ تلقائيًا بطريقة ما. سأراجع الأمر عندما أجد وقتًا أطول…

يمكنك تطبيق هذه التغييرات يدويًا على القالب مؤقتًا، ثم بدء الخادم بتشغيل service mysql stop و service mysql start داخل الحاوية بعد ذلك. هذا يجب أن يعمل.

يبدو أن هذا الإصلاح يعمل. سأواصل عملية الاستيراد وأرى كيف تسير الأمور. شكرًا جزيلاً.

أواجه مشكلة في تشغيل import_phpbb3.sh داخل حاوية الاستيراد. اضطررت لإعادة تشغيل MySQL باستخدام الأوامر التالية:

/etc/init.d/mysql stop

و

/etc/init.d/mysql start

ثم تمكنت من الدخول إلى حاوية الاستيراد، حيث قمت بتشغيل import_phpbb3.sh، لكنه فشل:

root@mydiscourse-import:/var/www/discourse# import_phpbb3.sh

جاري بدء استيراد phpBB3...

**تتبع الأخطاء** (آخرها هو الأحدث):

9: من script/import_scripts/phpbb3.rb:13:in `<main>'

8: من script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'

7: من script/import_scripts/phpbb3.rb:26:in `<module:PhpBB3>'

6: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `create'

5: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `new'

4: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:15:in `initialize'

3: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `create_database_client'

2: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `new'

1: من /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `initialize'

/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect': **تم رفض الوصول للمستخدم 'root'@'localhost' (** **خطأ Mysql2** **)**

هل يمكنك اقتراح كيفية المتابعة؟

هل يمكنك المحاولة مرة أخرى؟ يجب أن يعمل مرة أخرى.

cd /var/discourse
git pull
./launcher rebuild import

شكرًا لك، لقد جربتها ولكنني لا زلت أواجه خطأً للأسف:

يبدأ استيراد phpBB3 الآن...
**تتبع الأخطاء** (الأحدث أولًا):
9: من script/import_scripts/phpbb3.rb:13:in `<main>'
8: من script/import_scripts/phpbb3.rb:14:in `<module:ImportScripts>'
7: من script/import_scripts/phpbb3.rb:26:in `<module:PhpBB3>'
6: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `create'
5: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:9:in `new'
4: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:15:in `initialize'
3: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `create_database_client'
2: من /var/www/discourse/script/import_scripts/phpbb3/database/database.rb:39:in `new'
1: من /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/mysql2-0.5.2/lib/mysql2/client.rb:90:in `connect': **قاعدة البيانات غير معروفة 'phpbb' (** **Mysql2::Error** **)**

يرجى التأكد من وجود الملف /var/discourse/shared/standalone/import/data/phpbb_mysql.sql وأنه نسخة احتياطية صالحة لقاعدة البيانات. ثم احذف /var/discourse/shared/standalone/import/mysql/imported وحاول مرة أخرى.

نجح حذف /var/discourse/shared/standalone/import/mysql/imported وبدأ الاستيراد! سأعود بنتائجي عند اكتمال الاستيراد.

يبدو أن كل شيء قد نجح. أنا أتحقق الآن من عمليات Sidekiq.

ممتن جدًا لجهودك في هذا الأمر @gerhard، لقد وضعت حدًا للكثير من التوتر الذي كنت أعانيه. شكرًا جزيلاً لك.