Wspólne problemy z instalacją i aktualizacją Redmine.
Ponieważ zarówno Redmine, jak i Easy Redmine są oprogramowaniem Open Source i są w zasadzie niezależne od platformy, mogą wystąpić problemy z instalacją i aktualizacją z powodu różnych konfiguracji serwera, wersji oprogramowania lub zainstalowanych wtyczek. Pracujemy ciężko, aby śledzić te najczęstsze problemy i pomóc Ci w rozwiązywaniu problemów.
Podczas aktualizacji aplikacji pojawia się komunikat o błędzie zawierający "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 ..." w dzienniku.
Przyczyna
Oznacza to, że Twoja baza danych jest przestarzała i nie może działać z żądaniem, które nasza aplikacja do niej wysyła. Po prostu jej nie rozumie.
Rozwiązanie
Musisz zaktualizować swoją bazę danych.
Jak zaktualizować bazę danych?
Szczegółowy opis w bazie wiedzy.
Zainstalowałeś lub zaktualizowałeś Easy Redmine pod użytkownikiem o niewystarczających uprawnieniach, nie przestrzegając naszej silnej rekomendacji w instrukcjach (przynajmniej raz w przeszłości).
- Popraw uprawnienia za pomocą poleceń chgrp i chown zgodnie z ustawieniami serwera (np. chgrp -R www-data public_html)
- Uruchom ponownie instalację za pomocą polecenia bundle exec rake easyproject:install RAILS_ENV=production, które wyczyści pamięć podręczną (jeśli uruchomisz je jako root, nie będzie to możliwe)
- Zrestartuj serwer
Jeśli korzystasz z wirtualnej maszyny dostarczonej przez Easy Software, uruchom ją jako użytkownik easy:
sudo chown -R easy /home/easy/current
(w starszych maszynach - sudo chown -R easy /srv/easyredmine/public_html)
sudo chgrp -R easy /home/easy/current
(w starszych maszynach - sudo chgrp -R easy /srv/easyredmine/public_html)
cd /home/easy/current
(w starszych maszynach - cd /srv/easyredmine/public_html)
bundle exec rake easyproject:install RAILS_ENV=production
sudo service puma@your.domain.name restart
Pamiętaj, aby ustawić uprawnienia dla wszystkich niezbędnych folderów.
Oto kilka wskazówek, co zrobić, jeśli napotkasz błąd 500.
- uruchom Easy server requirements check i spróbuj naprawić nieudane walidacje
- wykonaj kopię zapasową bazy danych
- pobierz najnowszy pakiet z Strefy Klienta
- upewnij się, że serwer WWW ma pełny dostęp do folderów public, files, log, tmp
- wykonaj bundle install --without development test
- wykonaj bundle exec rake easyproject:install RAILS_ENV=production
- uruchom ponownie serwer aplikacji
- usuń wtyczki Redmine innych firm (również z bazy danych)
- napisz do nas na adres support@easyredmine.com i załącz plik log/production.log
Istnieje wiele możliwych przyczyn tego błędu. Oto kilka wskazówek:
- problem z pamięcią podręczną przeglądarki - spróbuj usunąć pamięć podręczną z przeglądarki
- problem z DNS
- problem z ustawieniami serwera
Najpierw sprawdź swoje połączenie i sieć (sprawdź, czy serwer jest osiągalny za pomocą polecenia ping lub traceroute). Firewall po stronie serwera.
Jeśli wszystko wydaje się w porządku, spróbuj uzyskać informacje z dzienników błędów nginx. Sprawdź dziennik błędów nginx po stronie serwera - /var/log/nginx/error.log
Sprawdź podwójnie, czy twoja konfiguracja nginx odpowiada standardowi. Standardowa konfiguracja nginx znajduje się tutaj:
https://www.redmine.org/projects/redmine/wiki/HowTo_configure_Nginx_to_run_Redmine
Przykład konfiguracji nginx (używanej przez Easy Software). Jest to dość podobne do oficjalnej konfiguracji, tylko kilka zmiennych jest zoptymalizowanych:
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; # nie używaj 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/*;
}
Inne możliwe przyczyny błędu 502 to...
Unicorn w ogóle nie działa, z powodu
- Niewystarczające uprawnienia
- Niewłaściwa wersja pasażera
- Niewłaściwa wersja Ruby
- Brakujące klejnoty
- Uszkodzony system plików
Aby poznać dokładny problem, musisz sprawdzić dzienniki błędów w unicorn lub apache + dziennik aplikacji z Easy Redmine (log/production.log)
Limit czasu
Jeśli skonfigurowano niski czas oczekiwania, ten błąd pojawi się na:
- dużych eksportach
- przeciążeniu serwera
- zadaniach rake uruchamianych z GUI
Limit połączeń MySQL
Upewnij się, że masz wystarczającą liczbę dozwolonych połączeń z MySQL. Zależy to od liczby użytkowników, ale powinieneś mieć co najmniej 100 dozwolonych.
Ten błąd występuje od wersji 2018 1.2 (platforma 04.00 i wyższa)
Błąd podczas instalacji aktualizacji zawiera jedno z poniższych.
[!] Wystąpił błąd podczas parsowania pliku `Gemfile`:
[!] Wystąpił błąd podczas parsowania pliku `Gemfile`: nie można załadować takiego pliku --
# plugin 'rys-bundler', github: 'easysoftware/rys-bundler', branch: 'master' > Plugin.hook('rys-gemfile', self)
Bundler nie może kontynuować.
Spowodowane jest to przestarzałą wersją instalatora redmine.
Rozwiązanie:
Przed zainstalowaniem aktualizacji
$ gem install redmine-installer
Ten problem występuje, gdy używasz przyrostka w adresie URL Easy Redmine, na przykład: https://company.com/easyredmine/
W takim przypadku musisz upewnić się, że zmienna RAILS_RELATIVE_URL_ROOT jest skonfigurowana z poprawnym przyrostkiem /easyredmine
Bitnami:
- Utwórz dodatkowy plik konfiguracyjny config/additional_environment.rb
- config.action_controller.relative_url_root = "/easyredmine"
- następnie skompiluj zasoby (rake easyproject:install RAILS_ENV=production) i uruchom ponownie serwer
Sprawdź, czy wkhtmltopdf jest zainstalowany i działa (wkhtmltopdf wymaga serwera X lub innej emulacji)
Wypróbuj go używając: "wkhtmltopdf google.com google.pdf"
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.
Kiedy aktualizujesz Easy Redmine na platformie Windows i napotykasz na komunikat błędu ExecJs ::RuntimeError
Wszystko, co musisz zrobić, to zainstalować NODEJS na swoim systemie, aby dokonać właściwej aktualizacji.
Jeśli instalacja się nie powiedzie, uruchom ręcznie:
$ bundle update
$ rake db:migrate
$ rake redmine:plugins:migrate
Sprawdź, czy twój serwer WWW obsługuje rzeczywisty rozmiar adresu URL
Upewnij się, że NIE korzystasz z serwera WWW Webrick!
- upewnij się, że masz najnowszą wersję serwera WWW i Ruby
- przekonfiguruj wolne zapytania filtrów, aby pokazywać mniej pól
- zresetuj swoje CRON, aby nie uruchamiał się zbyt często
- odwołaj się do tego studium przypadku - Przyspieszenie Rails bez dotykania kodu Ruby
- sprawdź swoją konfigurację - https://www.easyredmine.com/resources/installation/1885-recommended-optimal-configuration-of-easy-redmine-server
Skopiuj folder files z twojego starego Redmine.
Możesz zmienić domyślną lokalizację plików w pliku konfiguracyjnym Redmine lub użyć symlinka. Sieci LAN lub oparte na chmurze nie są zalecane ze względu na problemy z niezawodnością.
Konfiguracja:
./config/configuration.yml
# Ścieżka bezwzględna do katalogu, w którym przechowywane są załączniki.
# Domyślnie jest to katalog 'files' w twojej instancji Redmine.
# Twoja instancja EasyRedmine musi mieć uprawnienia do odczytu i zapisu w tym katalogu.
# Przykłady: attachments_storage_path: /var/www/redmine/files
Rozwiązywanie problemów:
Jeśli nie możesz otworzyć załącznika, zobacz ./log/production.log w poszukiwaniu powszechnych błędów:
Nie można wysłać załącznika, /var/www/redmine/files/2015/08/150805095407_xxx.PNG nie istnieje lub jest nieczytelny
ENOENT, Odmowa dostępu... itp.
Upewnij się, że twój serwer internetowy ma pełny dostęp do folderów public, files, log, tmp
Nowe commity w Twoim repozytorium nie są odzwierciedlane w Easy Redmine, chyba że zostaną pobrane przez aplikację. Musisz ustawić webhooki na swoim kliencie repozytorium (github, gitlab, TortoiseSVN,...) z informacjami o Twojej instancji Easy Redmine.
- Przejdź do administracja >> ustawienia >> repozytoria
- Włącz WS dla zarządzania repozytoriami
- Wygeneruj klucz API
- Zapisz
- Przejdź do swojego klienta repozytorium
- Dodaj webhook
Powiedzmy, że Twoja strona to easyredmine.company.com
Dla git - https://easyredmine.company.com/sys/git_fetcher
lub https://easyredmine.company.com/sys/git_fetcher?key=[klucz API]
- w zależności od ustawień klienta, może wymagać pojedynczego adresu URL lub klucza w innym polu
Dla SVN - https://easyredmine.company.com/sys/fetch_changesets
lub https://easyredmine.company.com/sys/fetch_changesets?key=[klucz API]
Od punktu 5 wszystko zależy od klienta repozytorium i nie jest związane z ustawieniami Easy Redmine. To coś, co musisz zweryfikować po czystej instalacji lub po aktualizacji z Redmine.
Podczas konfigurowania domeny Twojego Easy Redmine, upewnij się, że używasz co najmniej domeny pierwszego poziomu, na przykład http://myeasyredmine.com zamiast tylko http://myeasyredmine. Niektóre przeglądarki mogą mieć problemy z jej osiągnięciem.
Przejdź do Administracja >> Ustawienia >> Powiadomienia e-mail
i sprawdź, czy ADRES NADAWCY jest poprawny.
Powinien być taki sam (lub przynajmniej z tego samego serwera SMTP) jak w pliku konfiguracyjnym. W przeciwnym razie niektóre usługi pocztowe (gmail, yahoo, itp.) mogą odrzucać powiadomienia.
Sprawdź swoją konfigurację zgodnie z tym artykułem w bazie wiedzy.
Aby sprawdzić, czy konfiguracja jest poprawna, spróbuj sprawdzić, czy można połączyć się z serwerem poczty z Twojego serwera Easy Redmine za pomocą telnetu.
telnet twoja.domena.tutaj numer_portu_tutaj (Na przykład: telnet gmail.com 465)
Pokaże to, czy rzeczywiście można połączyć się z Twoim serwerem poczty, czy istnieje problem w konfiguracji Twojego serwera poczty.
Kiedy próbujesz wyeksportować plik PDF, który kończy się błędem (lub zachowuje się tak, jakby nic się nie działo). W logu produkcyjnym pojawi się błąd podobny do
Errno::EPIPE (Broken pipe) lub wkhtmltopdf: cannot connect to X server
Spowodowane przez problemy z eksportem komponentu wkhtmltopdf
Oto proponowane rozwiązania.
Serwer bez głowy
Pobierz wymaganą wersję wkhtmltopdf z http://wkhtmltopdf.org/downloads.html
Przykład (musisz pracować z detalami swojego własnego środowiska):
- 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
Tylko serwer bez głowy
- Musisz mieć zainstalowany wkhtmltopdf na swoim serwerze w PATH (apt-get install wkhtmltox, yum install wkhtmltox)
Musi być zainstalowany w bundler, w przeciwnym razie może nie działać po aktualizacji Easy Redmine - Upewnij się, że program działa poprawnie (uruchom z konsoli na przykład wkhtmltopdf https://easyredmine.com homepage.pdf)
- ponownie uruchom rake easyproject:install RAILS_ENV=production
- zrestartuj serwer
Instalacja wtyczki
- NIE instaluj wtyczek jako użytkownik ROOT
- Najpierw usuń wszystkie stare wtyczki Easy Gantt, jeśli istnieją (plugins/easy_gantt*)
- Skopiuj wszystkie rozpakowane wtyczki do REDMINE_ROOT/plugins
- W REDMINE_ROOT
Uruchom: |
$ bundle install |
- (lub bundle update) |
$ bundle exec rake db:migrate RAILS_ENV=production |
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production |
Po tym zrestartuj serwer.
Wymagania dla pomyślnej instalacji
- Wersja Redmine: Kompatybilne z Redmine 3.2.x, 3.3.x, 3.4.x, 4.x.
- Wersja Ruby: 2.3+ (zalecane 2.6.)
- Typ bazy danych: MySQL (zalecane), PostgreSQL
Postępuj zgodnie z procedurą instalacji w sekcji #install. Sprawdź, czy dziennik instalacji nie zawiera żadnych błędów. Jeśli tak, spróbuj je rozwiązać zgodnie z opisem lub skontaktuj się z support@easyredmine.com i załącz sekcję błędów dziennika.
Instalacja na Bitnami
Bitnami nie jest testowane ani gwarantowane. Jeśli instalacja nie powiedzie się, uruchom ręcznie:
Uruchom: |
$ bundle update |
$ rake db:migrate |
$ rake redmine:plugins:migrate |