Общи проблеми при инсталиране и актуализиране на Redmine
Тъй като и Redmine и Easy Redmine са Open Source и повече или по-малко независими от платформата, може да възникнат проблеми при инсталиране и ъпгрейд поради различни конфигурации на сървъра, версии на софтуера или инсталирани плъгини. Работим усилено, за да открием най-често срещаните и да ви помогнем при отстраняването им.
При актуализация на приложението се появява грешка, която съдържа "Имате грешка в синтаксиса на вашия 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 грешка.
- Стартирайте Easy server requirements check и опитайте да поправите неуспешните валидации
- Направете резервно копие на базата данни
- Изтеглете най-новия пакет от клиентската зона
- Уверете се, че уебсървърът има Пълен достъп public, files, log, tmp папки
- Стартирайте bundle install --without development test
- Стартирайте bundle exec rake easyproject:install RAILS_ENV=production
- Рестартирайте приложението на сървъра
- Изтрийте всички плъгини на Redmine от трети страни (също и от базата данни)
- Напишете ни на support@easyredmine.com и прикачете log/production.log
Има много възможни причини за тази грешка. Ето няколко съвета:
- проблем с кеша на браузъра - опитайте да изтриете кеша от браузъра
- проблем с DNS
- проблем с настройките на сървъра
Първо проверете връзката и мрежата си (проверете дали сървърът е достъпен, като използвате команда ping или traceroute). Сървърът на защитната стена.
Ако всичко гореизброено изглежда добре, опитайте да получите някаква информация от nginx error.logs. Проверете nginx error.log на страната на сървъра - /var/log/nginx/error.log
Проверете двойно, че конфигурацията ви на nginx съответства на стандарта. Стандартната конфигурация на nginx може да бъде намерена тук:
https://www.redmine.org/projects/redmine/wiki/HowTo_configure_Nginx_to_run_Redmine
Пример на конфигурация на nginx (както се използва от Easy Software). Той е много подобен на официалния, само няколко променливи са оптимизирани:
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; # не използвайте 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/*;
}
Други възможни причини за грешка 502 включват...
Unicorn не работи изобщо, заради
- Недостатъчни разрешения
- Грешна версия на пътническия влак
- Грешна версия на Ruby
- Липсващи камъни
- Счупена файлова система
За да разберете точната проблем, трябва да проверите дневниците за грешки в unicorn или apache + приложение лог от Easy Redmine (log/production.log)
Време за изтичане
Ако е конфигурирано кратко време за изчакване, тази грешка ще се появи на:
- големи експорти
- претоварване на сървъра
- rake задачи, стартирани от GUI
Лимит на връзките към 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
Копирайте папката files от стария ви 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.
- Отидете в администрация >> настройки >> репозитории
- Активирайте WS за управление на репозитория
- Генерирайте API ключ
- Запазете
- Отидете на вашия клиент на репозитория
- Добавете webhook
Нека кажем, че вашият сайт е 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 сървър) като този в конфигурационния файл. В противен случай някои услуги за имейли (gmail, yahoo и др.) могат да отхвърлят известията.
Проверете конфигурацията си според тази статия в базата знания.
За да проверите дали конфигурацията е правилна, опитайте да проверите дали можете да се свържете с пощенския сървър от вашия Easy Redmine сървър, използвайки telnet.
telnet your.domain.here port_number_here (Например: telnet gmail.com 465)
Това ще ви покаже дали наистина можете да се свържете с вашия пощенски сървър или има проблем в конфигурацията на вашия пощенски сървър.
Когато опитате да извършите експорт на PDF, който дава грешка (или се държи като че нищо не се случва). Производственият доклад би изброявал грешки, подобни на
Errno::EPIPE (Broken pipe) или wkhtmltopdf: cannot connect to X server
Причинени от проблеми с експортиращия компонент wkhtmltopdf
Ето предложените решения.
Headless сървър
Вземете необходимата версия на 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
Сървър без Headless
- Трябва да имате инсталиран 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 |