Встановлення та оновлення Redmine: загальні проблеми
Оскільки як Redmine, так і Easy Redmine є відкритими джерелами та більш-менш платформонезалежними, можуть виникати проблеми з встановленням та оновленням через різні конфігурації сервера, версії програмного забезпечення або встановлені плагіни. Ми працюємо наполегливо, щоб відстежувати найбільш поширені з них, щоб допомогти вам з усуненням неполадок.
Під час оновлення програми з'являється повідомлення про помилку, яке містить "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...", у журналі.
Причина
Це означає, що ваша база даних застаріла і не може працювати з запитом, який наша програма надсилає до неї. Вона просто не розуміє його.
Рішення
Вам потрібно оновити свою базу даних.
Як оновити базу даних?
Детальний опис у Базі знань.
Ви встановили або оновили 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 та додайте лог/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; # 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/*;
}
Інші можливі причини помилки 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
This problems occurs when you use a suffix on your Easy Redmine URL, for example: https://company.com/easyredmine/
In this case, you need to make sure that you have the variable RAILS_RELATIVE_URL_ROOT configured to your correct suffix /easyredmine
Bitnami:
- Create an additional configuration file config/additional_environment.rb
- config.action_controller.relative_url_root = "/easyredmine"
- then precompile assets (rake easyproject:install RAILS_ENV=production) and restart the server
Переконайтеся, що 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, якщо вони не були отримані застосунком. Вам потрібно встановити вебхуки на вашому клієнті репозиторію (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-сервера), як у файлі конфігурації. В іншому випадку деякі служби електронної пошти (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 server
Отримайте необхідну версію 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 |