مرحبًا!
قامت بتثبيت discourse على جهاز DigitalOcean جديد باستخدام هذه التعليمات قبل يومين، وكان كل شيء على ما يرام.
في اليوم السابق، حاولت تثبيت التطبيق مرة أخرى على جهاز DigitalOcean جديد (Ubuntu 18.03، 1 جيجابايت). إن خوادم VPS متطابقة، لكن هذه المرة لم ينجح الأمر.
شغّلت الأمر ./discourse-setup، وأجبت على الأسئلة، ثم انتظرت. تجمّدت سطر الأوامر عند السطر #<Thread:0x00005621595f3360@/var/www/discourse/lib/tasks/assets.rake:215 run> terminated with exception (report_on_exception is true):. والطريقة الوحيدة لتحرير السطر كانت بإغلاق اتصال SSH وإعادة الاتصال.
لديّ معرفة أساسية فقط حول لينكس.
لم يُحدث تحديث النظام باستخدام apt-get أي فرق.
اكتشفت أن المثبت يتوقف عند المهمة assets:precompile. وقد حدث الاستثناء من /var/www/discourse/lib/tasks/assets.rake:227:in rescue in block (2 levels) in <top (required)>': undefined local variable or method'name' for main:Object (NameError).
تكتب عملية الإعداد بيانات ثنائية إلى وحدة التحكم، ولهذا السبب يحدث التجمّد. وعند التعمق أكثر، أدركت أن خطأ 403 يحدث، لكنني لم أستطع العثور على عنوان URL المستهدف.
نفذت الإعداد في نافذة شاشة وسجّلت العملية. ثم فتحت ملف السجل باستخدام xdd. واستبدلت قطعتين من البيانات الثنائية بـ <BINARY_DATA>
#<Thread:0x000055c07c7e8cf8@/var/www/discourse/lib/tasks/assets.rake:215 run> terminated with exception (report_on_exceptionis true):
/var/www/discourse/lib/tasks/assets.rake:227:in `rescue in block (2 levels) in <top (required)>':undefined local variable or method`name' for main:Object (NameError)
from /var/www/discourse/lib/tasks/assets.rake:216:in `block (2 levels) in <top (required)>' /var/www/discourse/lib/file_helper.rb:55:in `block in download':
403 Error:<BINARY_DATA> (OpenURI::HTTPError) <BINARY_DATA>
from /var/www/discourse/lib/final_destination.rb:400:in `block (3 levels) in safe_get'
from /var/www/discourse/lib/final_destination.rb:399:in `catch'
from /var/www/discourse/lib/final_destination.rb:399:in `block (2 levels) in safe_get'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1518:in `block in transport_request'
from /usr/local/lib/ruby/2.6.0/net/http/response.rb:165:in `reading_body'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1517:in `transport_request'
from /usr/local/lib/ruby/2.6.0/net/http.rb:1479:in `request'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/net_patches.rb:9:in `block in request_with_mini_profiler'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/mini_profiler/profiling_methods.rb:39:in `step'
from /var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.0.2/lib/patches/net_patches.rb:8:in `request_with_mini_profiler'
from /var/www/discourse/lib/final_destination.rb:371:in `block in safe_get'
from /var/www/discourse/lib/final_destination.rb:415:in `block in safe_session'
from /usr/local/lib/ruby/2.6.0/net/http.rb:920:in `start'
from /usr/local/lib/ruby/2.6.0/net/http.rb:605:in `start'
from /var/www/discourse/lib/final_destination.rb:412:in `safe_session'
from /var/www/discourse/lib/final_destination.rb:363:in `safe_get'
from /var/www/discourse/lib/final_destination.rb:129:in `get'
from /var/www/discourse/lib/file_helper.rb:47:in `download'
from /var/www/discourse/lib/discourse_ip_info.rb:30:in `mmdb_download'
from /var/www/discourse/lib/tasks/assets.rake:218:in `block (3 levels) in <top (required)>'
from /var/www/discourse/lib/tasks/assets.rake:217:in `each'
from /var/www/discourse/lib/tasks/assets.rake:217:in `block (2 levels) in <top (required)>'
أتمّ المثبّت بعد ذلك بعض المهام دون مشاكل. وفي نهاية العملية ظهرت الرسائل التالية:
FAILED--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake assets:precompile'
failed with return #<Process::Status: pid 384 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'..exec
failed with the params {"cd"=>"$home", "hook"=>"assets_precompile",
"cmd"=>["su discourse -c 'bundle exec rake assets:precompile'"]}
f534324ceedf6b1a8a5cc89f38e1c12c2418fb69c71f93f21c0dd2f5ef51483d
** 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.
الأمر ./discourse-doctor لم يساعد. فقد اكتشف الطبيب أن التطبيق لا يعمل، وحاول إعادة البناء لكنه علّق أيضًا. لم أقم بتثبيت أي إضافات، لأنني لم أشغّل هذا التطبيق على هذه الآلة من قبل