נפילות נפוצות בהתקנה ועדכון של Redmine
מכיוון ששני המערכות Redmine ו-Easy Redmine הן קוד פתוח ונפוצות למעשה בכל פלטפורמה, ייתכן שיתרחשו בעיות בהתקנה ושדרוג עקב תצורות שרת שונות, גרסאות תוכנה או תוספים מותקנים. אנחנו עובדים קשה כדי לעקוב אחר הבעיות הנפוצות ביותר כדי לעזור לך בתהליך הפיתרון.
במהלך עדכון היישום מופיעה הודעת שגיאה הכוללת "יש לך שגיאה בתחביר ה-SQL שלך; בדוק את המדריך המתאים לגרסת שרת ה-MySQL שלך לשימוש תחביר נכון ליד ..." ביומן.
סיבה
זה אומר שבסיס הנתונים שלך אינו מעודכן ואינו יכול לעבוד עם הבקשה שהיישום שלנו שולח אליו. הוא פשוט לא מבין אותה.
פתרון
עליך לעדכן את בסיס הנתונים שלך.
איך לעדכן את בסיס הנתונים?
תיאור מפורט ב-בסיס הידע.
התקנת או עדכון Easy Redmine במשתמש עם הרשאות לא מספקות, לא בהתאם להמלצתנו החזקה בהוראות (לפחות פעם אחת בעבר).
- תקן הרשאות באמצעות הפקודות chgrp ו־chown לפי הגדרות השרת (לדוגמה, chgrp -R www-data public_html)
- הרץ את ההתקנה שוב bundle exec rake easyproject:install RAILS_ENV=production שיבצע ניקוי למטמון (אם תריץ אותו בשם משתמש root, הוא לא יצליח)
- הפעל את השרת מחדש
אם אתה משתמש במכונה וירטואלית שסופקה על ידי 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.
- הרץ בדיקת דרישות שרת קלה ונסה לתקן את האימותים הנכשלים
- גבה את מסד הנתונים שלך
- הורד את החבילה האחרונה מאזור הלקוח
- וודא שלשרת האינטרנט יש גישה מלאה ציבורית, קבצים, יומנים, זמניים תיקיות
- הרץ bundle install --without development test
- הרץ bundle exec rake easyproject:install RAILS_ENV=production
- הפעל מחדש את שרת היישום
- מחק כל תוספי Redmine של צד שלישי (גם ממסד הנתונים)
- כתוב לנו בsupport@easyredmine.com וצרף log/production.log
There are many possible causes of this error. Here are a few tips:
- browser cache problem - try deleting cache from the browser
- dns problem
- server setting problem
First check your connection and network (verify that server is reachable by using a ping command or traceroute command). Firewall server side.
If all above seems fine, try to get some information from nginx error.logs. Check nginx error.log at the server side - /var/log/nginx/error.log
Double check that your nginx configuration matches the standard. Standard nginx configuration can be found here:
https://www.redmine.org/projects/redmine/wiki/HowTo_configure_Nginx_to_run_Redmine
Example of an nginx configuration (as is used by Easy Software). It's quite similar to official one only few variables are optimized:
user www-data;
worker_processes 8;
worker_rlimit_nofile 60000;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 10240;
# multi_accept on;
}
http {
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # dont use SSLv3 ref: POODLE
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 2048;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
send_timeout 1800;
client_body_timeout 1800;
client_header_timeout 1800;
proxy_read_timeout 1800;
client_max_body_size 220m;
fastcgi_buffer_size 64K;
fastcgi_buffers 128 16k;
proxy_max_temp_file_size 0;
types_hash_max_size 4096;
types_hash_bucket_size 128;
proxy_busy_buffers_size 256k;
proxy_buffers 8 256k;
proxy_buffer_size 256k;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
include /etc/nginx/sites-auto/*;
}
Other possible causes of 502 error include...
Unicorn is not running at all, due to
- Insufficient permissions
- Wrong version of passenger
- Wrong Ruby version
- Missing gems
- Broken filesystem
To find out the exact problem, you need to check error logs in unicorn or apache + application log from Easy Redmine (log/production.log)
Timeout
If low timeout is configured, this error will appear on:
- large exports
- overload of server
- rake tasks run from the GUI
Limit of MySQL connections
Make sure you have a sufficient number of connections allowed to MySQL. It depends on the number of users, but you should have at least a 100 allowed.
שגיאה זו מתרחשת מגרסה 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 שלך כך שלא יופעל בתדירות רבה
- התייחס למחקר המקרה הזה - מהירות ברילס ללא ניגוע בקוד רובי
- בדוק את התצורה שלך - https://www.easyredmine.com/resources/installation/1885-recommended-optimal-configuration-of-easy-redmine-server
העתק תיקיית קבצים מה-Redmine הישן שלך.
אתה יכול לשנות את מיקום הקבצים המוגדר כברירת מחדל בקובץ התצורה של Redmine או להשתמש בסימלינק. אחסון קבצים ברשת מקומית או בענן אינו מומלץ בשל בעיות אמינות.
הגדרות:
./config/configuration.yml
# נתיב מוחלט לתיקייה בה מאוחסנים הקבצים.
# ברירת המחדל היא התיקייה 'files' במופע Redmine שלך.
# על מופע EasyRedmine שלך להיות עם הרשאות קריאה/כתיבה לתיקייה זו.
# דוגמאות: attachments_storage_path: /var/www/redmine/files
פתרון בעיות:
אם אתה לא יכול לפתוח קובץ מצורף, ראה את ./log/production.log לשגיאות נפוצות:
לא ניתן לשלוח את הקובץ המצורף, /var/www/redmine/files/2015/08/150805095407_xxx.PNG אינו קיים או לא ניתן לקריאה
ENOENT, הרשאה נדחתה... וכו'.
ודא שלשרת האינטרנט שלך יש גישה מלאה לתיקיות public, files, log, tmp
המזינים החדשים למאגר שלך לא מתבטאים ב-Easy Redmine אלא אם הם מושגים על ידי היישום. עליך להגדיר webhooks על הלקוח של המאגר שלך (github, gitlab, TortoiseSVN,...) עם מידע על המופע שלך של Easy Redmine.
- עבור אל administration >> settings >> repositories
- הפעל WS עבור ניהול מאגרים
- צור מפתח API
- שמור
- עבור אל הלקוח של המאגר שלך
- הוסף webhook
נניח שהאתר שלך הוא easyredmine.company.com
עבור git - https://easyredmine.company.com/sys/git_fetcher
או https://easyredmine.company.com/sys/git_fetcher?key=[מפתח API]
- תלוי בהגדרות הלקוח, זה יכול לדרוש כתובת URL יחידה או את המפתח בשדה שונה
עבור SVN - https://easyredmine.company.com/sys/fetch_changesets
או https://easyredmine.company.com/sys/fetch_changesets?key=[מפתח API]
מנקודה 5 והלאה, זה כל עניין של הלקוח של המאגר ואינו קשור להגדרות של Easy Redmine. זה משהו שעליך לוודא לאחר התקנה נקייה או שדרוג מ-Redmine.
בעת הגדרת הדומיין של ה-Easy Redmine שלך, וודא שאתה משתמש בדומיין מרמה ראשונה לפחות, לדוגמה http://myeasyredmine.com במקום רק http://myeasyredmine. ייתכן שישנם דפדפנים שיתקלו בבעיה בהגעה אליו.
עבור לניהול >> הגדרות >> הודעות אימייל
ובדוק שכתובת השולח נכונה.
היא צריכה להיות זהה (או לפחות מאותו שרת SMTP) כמו בקובץ התצורה. אחרת, חלק משירותי האימייל (gmail, yahoo, וכו ') עשויים לדחות הודעות.
בדוק את התצורה שלך על פי מאמר זה בבסיס הידע.
כדי לוודא שהתצורה נכונה, נסה לבדוק אם ניתן להתחבר לשרת הדואר משרת Easy Redmine שלך באמצעות טלנט.
טלנט שם_הדומיין_שלך פורט_כאן (לדוגמה: טלנט 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)
עליו להיות מותקן ב-bundler, אחרת ייתכן שלא יעבוד לאחר עדכון 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.
- גרסת Ruby: 2.3+ (מומלץ 2.6.)
- סוג מסד נתונים: MySQL (מומלץ), PostgreSQL
עקוב אחר הליך ההתקנה ב#install. בדוק אם יש בלוג ההתקנה שגיאות. אם כן, נסה לפתור אותן לפי התיאור, או צור קשר עם support@easyredmine.com וצרף את חלק השגיאה מהלוג.
התקנה על Bitnami
Bitnami לא עבר בדיקה ואין הבטחה. אם ההתקנה נכשלה, הרץ באופן ידני:
הרץ: |
$ bundle update |
$ rake db:migrate |
$ rake redmine:plugins:migrate |