لقد كنت أجرب تثبيت Discourse على مدار الأيام القليلة الماضية على كلٍّ من خوادم Layer7 و Hetzner VPS. لم أواجه أي مشاكل في التثبيت على Layer7، حيث اتبعت دليل “التثبيت باستخدام Virtualmin”، ويعمل النظام بشكل ممتاز.
كما أطلق Virtualmin وحدة جديدة لـ Podman تتضمن وصفة (Recipe) لتثبيت Discourse، وهي تعمل لكنها تحتوي على بعض الأخطاء البرمجية البسيطة.
حاولت التثبيت عدة مرات على خادم Hetzner، لكنه يفشل دائمًا في مرحلة التمهيد (bootstrap).
لقد قمت بإعداد مساحة تبادل (Swap) بحجم 2 جيجابايت، ويحتوي خادم VPS على 4 أنوية و 8 جيجابايت من الذاكرة العشوائية (RAM).
رسالة الخطأ موضحة أدناه، وأود معرفة ما إذا كان بإمكان أحدكم توجيهي نحو الحل الصحيح. الأمر الخاص بتشخيص الأخطاء (doctor command) لم يُلقِ أي ضوء على ما يحدث، حسب ما أستطيع أن أراه.
سعيد بتقديم سجلات النظام أو مخرجات الأوامر إذا لزم الأمر.
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
git fetch --tags --prune-tags --prune --force origin
if [[ $(git symbolic-ref --short HEAD) == latest ]] ; then
git pull
else
git -c advice.detachedHead=false checkout latest
fi
' failed with return #<Process::Status: pid 179 exit 128>
Location of failure: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in 'Pups::ExecCommand#spawn'
Location of failure: /usr/local/lib/ruby/gems/3.4.0/gems/pups-1.4.0/lib/pups/exec_command.rb:138:in 'Pups::ExecCommand#spawn'
exec failed with the params {"cd" => "$home", "tag" => "build", "hook" => "code", "cmd" => ["sudo -H -E -u discourse git clean -f", "sudo -H -E -u discourse bash -c '\n set -o errexit\n git fetch --tags --prune-tags --prune --force origin\n if [[ $(git symbolic-ref --short HEAD) == $version ]] ; then\n git pull\n else\n git -c advice.detachedHead=false checkout $version\n fi\n'", "sudo -H -E -u discourse git config user.discourse-version $version", "mkdir -p tmp", "chown discourse:www-data tmp", "mkdir -p tmp/pids", "mkdir -p tmp/sockets", "touch tmp/.gitkeep", "mkdir -p /shared/log/rails", "bash -c \"touch -a /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log\"", "bash -c \"ln -s /shared/log/rails/{production,production_errors,unicorn.stdout,unicorn.stderr,sidekiq}.log $home/log\"", "bash -c \"mkdir -p /shared/{uploads,backups}\"", "bash -c \"ln -s /shared/{uploads,backups} $home/public\"", "bash -c \"mkdir -p /shared/tmp/{backups,restores}\"", "bash -c \"ln -s /shared/tmp/{backups,restores} $home/tmp\"", "find /shared/log/rails /shared/uploads /shared/backups /shared/tmp ! \\( -user discourse -group www-data \\) -exec chown discourse:www-data {} \\+", "[ ! -d public/plugins ] || find public/plugins/ -maxdepth 1 -xtype l -delete"]}
bootstrap failed with exit code 128
** 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.
مخرجات فحص القرص (Disk Doctor Output)
==================== MEMORY INFORMATION ====================
RAM (MB): 8127
total used free shared buff/cache available
Mem: 7751 1146 318 8 6604 6604
Swap: 2047 0 2047
==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 75G 13G 60G 18% /
==================== DISK INFORMATION ====================
Disk /dev/sda: 76.3 GiB, 81923145728 bytes, 160006144 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 818C9A1D-5D5F-4F06-9432-7B4B83510711
Device Start End Sectors Size Type
/dev/sda1 528384 160006110 159477727 76G Linux filesystem
/dev/sda14 2048 4095 2048 1M BIOS boot
/dev/sda15 4096 528383 524288 256M EFI System
Partition table entries are not in disk order.
==================== END DISK INFORMATION ====================