مشاكل تثبيت وتحديث Redmine الشائعة
نظرًا لأن كل من Redmine و Easy Redmine هما مفتوحي المصدر ويعملان على منصات مستقلة تقريبًا، قد تحدث بعض مشاكل التثبيت والترقية بسبب تكوينات الخادم المختلفة أو إصدارات البرامج أو الإضافات المثبتة. نحن نعمل بجد لتتبع تلك المشاكل الشائعة لمساعدتك في حل المشاكل.
أثناء تحديث التطبيق ، يظهر رسالة خطأ تحتوي على "لديك خطأ في بناء جملة SQL الخاصة بك؛ تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL الخاص بك لاستخدام بناء الجملة الصحيح بجوار ..." في السجل.
السبب
يعني أن قاعدة البيانات الخاصة بك قديمة ولا يمكنها العمل مع الطلب الذي يرسله تطبيقنا إليها. فهي فقط لا تفهمه.
الحل
تحتاج إلى تحديث قاعدة البيانات الخاصة بك.
كيفية تحديث قاعدة البيانات؟
وصف مفصل في قاعدة المعرفة.
لقد قمت بتثبيت أو تحديث Easy Redmine تحت مستخدم ليس لديه الصلاحيات الكافية، وذلك عدم اتباع توصية قوية في التعليمات (على الأقل مرة واحدة في الماضي).
- قم بتصحيح الصلاحيات باستخدام الأوامر chgrp و chown وفقًا لإعدادات الخادم (مثال: chgrp -R www-data public_html)
- قم بتشغيل التثبيت مرة أخرى باستخدام الأمر bundle exec rake easyproject:install RAILS_ENV=production والذي سيقوم بمسح ذاكرة التخزين المؤقت (إذا قمت بتشغيله بواسطة المستخدم الجذر، فلن يكون ناجحًا)
- أعد تشغيل الخادم
إذا كنت تستخدم جهاز افتراضي مقدم من Easy Software، قم بتشغيله بواسطة المستخدم easy:
sudo chown -R easy /home/easy/current
(في الأجهزة القديمة - sudo chown -R easy /srv/easyredmine/public_html)
sudo chgrp -R easy /home/easy/current
(في الأجهزة القديمة - sudo chgrp -R easy /srv/easyredmine/public_html)
cd /home/easy/current
(في الأجهزة القديمة - cd /srv/easyredmine/public_html)
bundle exec rake easyproject:install RAILS_ENV=production
sudo service puma@your.domain.name restart
تذكر تعيين الصلاحيات لجميع المجلدات اللازمة.
هنا بعض التلميحات حول ما يمكنك القيام به إذا واجهت خطأ 500.
- تشغيل فحص متطلبات الخادم السهل ومحاولة إصلاح التحققات الفاشلة
- نسخ قاعدة البيانات الخاصة بك
- تنزيل أحدث حزمة من منطقة العميل
- التأكد من أن خادم الويب لديه وصول كامل إلى المجلدات public و files و log و tmp
- تشغيل bundle install --without development test
- تشغيل bundle exec rake easyproject:install RAILS_ENV=production
- إعادة تشغيل خادم التطبيق
- حذف أي مكونات إضافية للـ Redmine من الأطراف الثالثة (أيضًا من قاعدة البيانات)
- اكتب لنا على support@easyredmine.com وأرفق log/production.log
إذا تم تكوين وقت انتهاء منخفض، سيظهر هذا الخطأ على:
- تصديرات كبيرة
- زيادة الضغط على الخادم
- تشغيل مهام rake من واجهة المستخدم الرسومية
حد اتصالات MySQL
تأكد من أن لديك عدد كافٍ من الاتصالات المسموح بها إلى MySQL. يعتمد ذلك على عدد المستخدمين، ولكن يجب أن يكون لديك على الأقل 100 مسموح بها.
يحدث هذا الخطأ من الإصدار 2018 1.2 (المنصة 04.00 وما فوق)
خطأ أثناء ترقية التثبيت يحتوي على بعض ما يلي.
[!] حدث خطأ في تحليل `Gemfile`:
[!] حدث خطأ في تحليل `Gemfile`: لا يمكن تحميل ملف مثل هذا --
# plugin 'rys-bundler', github: 'easysoftware/rys-bundler', branch: 'master' > Plugin.hook('rys-gemfile', self)
لا يمكن لـ Bundler الاستمرار.
يتسبب ذلك في إصدار قديم لمثبت redmine.
الحل:
قبل تثبيت الترقية
$ gem install redmine-installer
تحدث هذه المشكلة عند استخدامك للاصق على عنوان URL الخاص بـ Easy Redmine الخاص بك، على سبيل المثال: https://company.com/easyredmine/
في هذه الحالة، تحتاج إلى التأكد من أن المتغير RAILS_RELATIVE_URL_ROOT مكون بشكل صحيح للاصق الصحيح الخاص بك /easyredmine
Bitnami:
- أنشئ ملف تكوين إضافي config/additional_environment.rb
- config.action_controller.relative_url_root = "/easyredmine"
- ثم قم بتجميع الموارد (rake easyproject:install RAILS_ENV=production) وأعد تشغيل الخادم
تأكد من تثبيت wkhtmltopdf وتشغيله ( wkhtmltopdf يحتاج إلى خادم X أو محاكاة أخرى)
اختبره باستخدام: "wkhtmltopdf google.com google.pdf"
أضف إلى تكوين الوكيل الخاص بك:
proxy_set_header X-Forwarded-Proto https
Check cron configuration. It is very important that rake tasks are NOT run by root. It will cause failure due to insufficient permissions.
Let's say you are running Easy Redmine under user easy. The commands are:
View active crons crontab -u easy -l
Editing crontab -u easy -e
Apply changes sudo service cron reload
Example for running cron every 5 minutes:
*/5 * * * * /home/easy/scripts/easy_scheduler.sh &> /dev/null
#!/bin/bash -l
LOG_FILE="/home/easy/current/log/easy_scheduler_rake.log"
echo "$(date '+%Y-%m-%d %H:%M:%S') start rake" >> ${LOG_FILE}
cd /home/easy/current && bundle exec rake easyproject:scheduler:run_tasks RAILS_ENV=production >> ${LOG_FILE}
echo "$(date '+%Y-%m-%d %H:%M:%S') end rake" >> ${LOG_FILE}
/home/easy/scripts/easy_scheduler.sh has to be an executable:
sudo chmod +x /home/easy/scripts/easy_scheduler.sh
Don't hesitate to search the internet for a more precise manual to set up cron on your server. It is not an exclusively Easy Redmine required function.
عند تحديث Easy Redmine على منصة Windows وتواجه رسالة خطأ ExecJs ::RuntimeError
كل ما عليك فعله هو تثبيت NODEJS على نظامك للتحديث السليم.
إذا فشل التثبيت، قم بتشغيل الأمر يدويًا:
$ bundle update
$ rake db:migrate
$ rake redmine:plugins:migrate
تأكد من أن خادم الويب الخاص بك يدعم الحجم الفعلي لعنوان URL
تأكد من أنك لا تستخدم خادم الويب Webrick!
- تأكد من أن لديك أحدث إصدار من خادم الويب و Ruby
- إعادة تكوين استعلامات التصفية البطيئة لعرض حقول أقل
- إعادة تعيين CRON الخاص بك لعدم تشغيله بشكل متكرر
- راجع دراسة الحالة هذه - تسريع Rails دون لمس رمز Ruby
- تحقق من تكوينك - https://www.easyredmine.com/resources/installation/1885-recommended-optimal-configuration-of-easy-redmine-server
انسخ مجلد الملفات من Redmine القديم الخاص بك.
يمكنك تغيير موقع الملفات الافتراضي في ملف تكوين Redmine أو يمكنك استخدام ارتباط رمزي. لا يُوصى باستخدام تخزين الشبكات المحلية أو السحابية للمرفقات بسبب مشاكل الموثوقية.
التكوين:
./config/configuration.yml
# المسار المطلق للمجلد الذي يتم تخزين المرفقات فيه.
# الافتراضي هو مجلد 'الملفات' في مثيل Redmine الخاص بك.
# يحتاج مثيل EasyRedmine الخاص بك إلى إذن قراءة/كتابة في هذا المجلد.
# أمثلة: attachments_storage_path: /var/www/redmine/files
حل المشاكل:
إذا لم تتمكن من فتح مرفق، انظر إلى ./log/production.log للأخطاء الشائعة:
لا يمكن إرسال المرفق، /var/www/redmine/files/2015/08/150805095407_xxx.PNG غير موجود أو غير قابل للقراءة
ENOENT، تم رفض الإذن... إلخ.
تأكد من أن خادم الويب الخاص بك يحتوي على مجلدات الوصول الكامل للجمهور والملفات والسجلات والمؤقتة
التعديلات الجديدة في مستودعك لا تظهر في Easy Redmine ما لم يتم استرجاعها بواسطة التطبيق. تحتاج إلى ضبط الويب هوكس على عميل المستودع الخاص بك (github ، gitlab ، TortoiseSVN ، ... ) بمعلومات حول نسخة Easy Redmine الخاصة بك.
- انتقل إلى الإدارة >> الإعدادات >> المستودعات
- تمكين WS لإدارة المستودع
- إنشاء مفتاح API
- حفظ
- انتقل إلى عميل المستودع الخاص بك
- إضافة ويب هوك
لنفترض أن موقعك هو easyredmine.company.com
لـ git - https://easyredmine.company.com/sys/git_fetcher
أو https://easyredmine.company.com/sys/git_fetcher?key=[API key]
- اعتمادًا على إعدادات العميل ، قد يتطلب عنوان URL واحد أو المفتاح في حقل مختلف
لـ SVN - https://easyredmine.company.com/sys/fetch_changesets
أو https://easyredmine.company.com/sys/fetch_changesets?key=[API key]
من النقطة 5 ، يتعلق الأمر بعميل المستودع وليس بإعدادات Easy Redmine. إنها شيء يجب التحقق منه بعد التثبيت النظيف أو الترقية من Redmine.
عند تكوين نطاق Easy Redmine الخاص بك ، تأكد من استخدام نطاق المستوى الأول على الأقل ، على سبيل المثال http://myeasyredmine.com بدلاً من مجرد http://myeasyredmine . قد يواجه بعض المتصفحات مشكلة في الوصول إليه.
انتقل إلى الإدارة >> الإعدادات >> إشعارات البريد الإلكتروني
وتحقق من أن عنوان المرسل صحيح.
يجب أن يكون نفسه (أو على الأقل من نفس خادم SMTP) كما هو موجود في ملف التكوين. وإلا فقد ترفض بعض خدمات البريد الإلكتروني (جيميل، ياهو، إلخ.) الإشعارات.
تحقق من تكوينك وفقًا لـ هذه المقالة في قاعدة المعرفة.
للتحقق من صحة التكوين، حاول التحقق مما إذا كان بإمكانك الاتصال بخادم البريد من خادم Easy Redmine الخاص بك باستخدام برنامج telnet.
telnet your.domain.here رقم_المنفذ_هنا (على سبيل المثال: telnet gmail.com 465)
سيظهر لك ما إذا كنت فعلاً يمكنك الاتصال بخادم البريد الخاص بك أم إذا كان هناك مشكلة في تكوين خادم البريد الخاص بك.
عندما تحاول تصدير ملف PDF وتحدث خطأ (أو يبدو كأن شيئًا لم يحدث). ستظهر رسالة الخطأ في سجل الإنتاج مشابهة لـ
Errno::EPIPE (أنبوب مكسور) أو wkhtmltopdf: لا يمكن الاتصال بخادم X
يحدث ذلك بسبب مشاكل في تصدير المكون wkhtmltopdf
فيما يلي الحلول المقترحة.
خادم بدون واجهة رسومية
احصل على الإصدار المطلوب من wkhtmltopdf من http://wkhtmltopdf.org/downloads.html
مثال (يجب أن تعمل مع تفاصيل بيئتك الخاصة):
- sudo apt-get install xvfb xauth
- wget https://bitbucket.org/wkhtmltopdf/wkhtmltopdf/downloads/wkhtmltox-0.13.0-alpha-7b36694_linux-jessie-amd64.deb
- sudo dpkg -i wkhtmltox-0.13.0-alpha-7b36694_linux-jessie-amd64.deb
- sudo apt-get -f install
- sudo mv /usr/local/bin/wkhtmltopdf /usr/local/bin/xwkhtmltopdf
- echo 'exec xvfb-run -a -s "-screen 0 640x480x16" xwkhtmltopdf "$@"' | sudo tee /usr/local/bin/wkhtmltopdf >/dev/null
- sudo chmod a+x /usr/local/bin/wkhtmltopdf
فقط على الخادم غير الذي يعمل بدون واجهة رسومية
- يجب أن يكون لديك wkhtmltopdf مثبتًا على الخادم الخاص بك في PATH
(apt-get install wkhtmltox, yum install wkhtmltox)
يجب أن يكون مثبتًا في الحزمة، وإلا قد لا يعمل بعد تحديث Easy Redmine - تأكد من أن البرنامج يعمل بشكل صحيح (قم بتشغيله من وحدة التحكم على سبيل المثال wkhtmltopdf https://easyredmine.com homepage.pdf)
- أعد تشغيل rake easyproject:install RAILS_ENV=production
- أعد تشغيل الخادم
تثبيت البرنامج المساعد
- لا تقم بتثبيت البرامج المساعدة كمستخدم ROOT
- أولاً، احذف جميع البرامج المساعدة القديمة لـ Easy Gantt إذا كانت موجودة (plugins/easy_gantt*)
- انسخ جميع البرامج المساعدة المفكوكة في REDMINE_ROOT/plugins
- في REDMINE_ROOT
تشغيل: |
$ bundle install |
- (أو bundle update) |
$ bundle exec rake db:migrate RAILS_ENV=production |
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production |
بعد ذلك، أعد تشغيل الخادم.
متطلبات التثبيت الناجح
- إصدار Redmine: متوافق مع Redmine 3.2.x، 3.3.x، 3.4.x، 4.x.، 5.x.
- إصدار Ruby: 2.3+ (الموصى به 2.6.)
- نوع قاعدة البيانات: MySQL (الموصى به)، PostgreSQL
اتبع إجراءات التثبيت في #install. تحقق مما إذا كان سجل التثبيت لا يحتوي على أي أخطاء. إذا كانت هناك أخطاء، حاول حلها وفقًا للوصف، أو اتصل بـ support@easyredmine.com مع قسم الخطأ المرفق في السجل.
التثبيت على Bitnami
لم يتم اختبار Bitnami ولا يتم ضمانه. إذا فشل التثبيت، قم بتشغيل الأمر يدويًا:
تشغيل: |
$ bundle update |
$ rake db:migrate |
$ rake redmine:plugins:migrate |