Yleiset Redmine-asennus- ja päivitysongelmat
Koska sekä Redmine että Easy Redmine ovat avoimen lähdekoodin ja enemmän tai vähemmän alustariippumattomia, joitakin asennus- ja päivitysongelmia voi ilmetä erilaisten palvelinkonfiguraatioiden, ohjelmistoversioiden tai asennettujen liitännäisten vuoksi. Teemme kovasti töitä näiden yleisimpien ongelmien seuraamiseksi auttaaksemme sinua vianetsinnässä.
Sovelluksen päivityksen aikana lokissa näkyy virhesanoma, joka sisältää lauseen "Sinulla on virhe SQL-syntaksissasi; tarkista manuaali, joka vastaa MySQL-palvelimen versiota, oikea syntaksi lähellä käytettäväksi ...".
Syy
Tämä tarkoittaa, että tietokantasi on vanhentunut eikä se pysty käsittelemään sovelluksemme sille lähettämää pyyntöä. Se ei yksinkertaisesti ymmärrä sitä.
Ratkaisu
Sinun täytyy päivittää tietokantasi.
Miten päivitän tietokannan?
Yksityiskohtainen kuvaus Tietopankissa.
Olet asentanut tai päivittänyt Easy Redminen käyttäjällä, jolla ei ole riittäviä käyttöoikeuksia, etkä ole noudattanut vahvaa suositustamme ohjeiden mukaisesti (vähintään kerran aiemmin).
- Korjaa käyttöoikeudet komentojen chgrp ja chown avulla palvelimen asetusten mukaisesti (esim. chgrp -R www-data public_html)
- Aja asennus uudelleen komennolla bundle exec rake easyproject:install RAILS_ENV=production, joka tyhjentää välimuistin (jos suoritat sen pääkäyttäjänä, se ei onnistu)
- Käynnistä palvelin uudelleen
Jos käytät Easy Softwaren tarjoamaa virtuaalikonetta, suorita se käyttäjän easy alla:
sudo chown -R easy /home/easy/current
(vanhemmissa koneissa - sudo chown -R easy /srv/easyredmine/public_html)
sudo chgrp -R easy /home/easy/current
(vanhemmissa koneissa - sudo chgrp -R easy /srv/easyredmine/public_html)
cd /home/easy/current
(vanhemmissa koneissa - cd /srv/easyredmine/public_html)
bundle exec rake easyproject:install RAILS_ENV=production
sudo service puma@your.domain.name restart
Muista asettaa käyttöoikeudet kaikille tarvittaville kansioille.
Tässä on joitain vinkkejä mitä voit tehdä, jos kohtaat 500 virheen.
- suorita Easy-palvelimen vaatimusten tarkistus ja yritä korjata epäonnistuneet validoinnit
- varmuuskopioi tietokantasi
- lataa uusin paketti Asiakasalueelta
- varmista, että web-palvelimella on Täysi pääsy public, files, log, tmp kansioihin
- suorita bundle install --without development test
- suorita bundle exec rake easyproject:install RAILS_ENV=production
- käynnistä sovelluspalvelin uudelleen
- poista kaikki kolmansien osapuolien Redmine-liitännäiset (myös tietokannasta)
- kirjoita meille osoitteeseen support@easyredmine.com ja liitä mukaan tiedosto log/production.log
On olemassa monia mahdollisia syitä tälle virheelle. Tässä muutamia vinkkejä:
- selaimen välimuistiongelma - yritä poistaa välimuisti selaimesta
- dns-ongelma
- palvelimen asetusongelma
Tarkista ensin yhteys ja verkko (varmista, että palvelimeen pääsee ping-komennolla tai traceroute-komennolla). Palomuuri palvelimen puolella.
Jos kaikki yllä olevat vaikuttavat olevan kunnossa, yritä saada tietoa nginx-virhelokeista. Tarkista nginx-virheloki palvelimen puolelta - /var/log/nginx/error.log
Tarkista, että nginx-konfiguraatiosi vastaa standardia. Standardi nginx-konfiguraatio löytyy täältä:
https://www.redmine.org/projects/redmine/wiki/HowTo_configure_Nginx_to_run_Redmine
Esimerkki nginx-konfiguraatiosta (käytetty Easy Softwaren toimesta). Se on melko samanlainen kuin virallinen, vain muutama muuttuja on optimoitu:
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; # älä käytä 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/*;
}
Muita mahdollisia syitä 502-virheelle ovat...
Unicorn ei toimi ollenkaan, johtuen
- Riittämättömät käyttöoikeudet
- Väärä passenger-versio
- Väärä Ruby-versio
- Puuttuvat gemit
- Rikki oleva tiedostojärjestelmä
Saadaksesi selville tarkan ongelman, sinun täytyy tarkistaa virhelokit unicornista tai apachesta + sovellusloki Easy Redminestä (log/production.log)
Aikakatkaisu
Jos matala aikakatkaisu on määritetty, tämä virhe ilmestyy:
- suurissa vientitapahtumissa
- palvelimen ylikuormituksessa
- rake-tehtävissä, jotka suoritetaan käyttöliittymästä
MySQL-yhteyksien rajoitus
Varmista, että sinulla on riittävä määrä sallittuja yhteyksiä MySQL:iin. Se riippuu käyttäjien määrästä, mutta sinun tulisi sallia vähintään 100 yhteyttä.
Tämä virhe ilmenee versiosta 2018 1.2 (alustalla 04.00 ja uudempi)
Virhe tapahtuu päivityksen asennuksen aikana, joka sisältää seuraavia.
[!] Virhe `Gemfile`-tiedoston jäsentämisessä:
[!] Virhe `Gemfile`-tiedoston jäsentämisessä: ei voi ladata kyseistä tiedostoa --
# plugin 'rys-bundler', github: 'easysoftware/rys-bundler', branch: 'master' > Plugin.hook('rys-gemfile', self)
Bundler ei voi jatkaa.
Tämä johtuu vanhentuneesta redmine-asentimen versiosta.
Ratkaisu:
Ennen päivityksen asentamista
$ gem install redmine-installer
Tämä ongelma ilmenee, kun käytät liitettä Easy Redmine URL-osoitteessasi, esimerkiksi: https://company.com/easyredmine/
Tässä tapauksessa sinun on varmistettava, että muuttuja RAILS_RELATIVE_URL_ROOT on määritetty oikeaan liitteeseen /easyredmine
Bitnami:
- Luo lisäkonfiguraatiotiedosto config/additional_environment.rb
- config.action_controller.relative_url_root = "/easyredmine"
- sitten esikäännä resurssit (rake easyproject:install RAILS_ENV=production) ja käynnistä palvelin uudelleen
Varmista, että wkhtmltopdf on asennettu ja käynnissä ( wkhtmltopdf tarvitsee X-palvelimen tai muun emulaation)
Kokeile sitä käyttämällä: "wkhtmltopdf google.com google.pdf"
Lisää välityspalvelimen määrityksiin:
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.
Kun päivität Easy Redminea Windows-alustalla ja saat virheilmoituksen ExecJs ::RuntimeError
Sinun tarvitsee vain asentaa NODEJS järjestelmääsi oikean päivityksen suorittamiseksi.
Varmista, että web-palvelimesi tukee URL-osoitteen todellista kokoa
Varmista, että ET käytä Webrick-web-palvelinta!
- varmista, että sinulla on uusin versio web-palvelimesta ja Rubysta
- määritä hitaat suodatinhaut näyttämään vähemmän kenttiä
- nollaa CRON, jotta se ei käynnisty niin usein
- tutustu tähän tapaustutkimukseen - Railsin nopeutus ilman Ruby-koodin muokkaamista
- tarkista konfiguraatiosi - https://www.easyredmine.com/resources/installation/1885-suositeltava-optimaalinen-konfiguraatio-easy-redmine-palvelimelle
Kopioi tiedostot kansio vanhasta Redminestäsi.
Voit muuttaa oletustiedostojen sijaintia Redminen konfiguraatiotiedostossa tai voit käyttää symbolista linkkiä. LAN- tai pilvipohjaisia verkkotallennuksia liitteille ei suositella luotettavuusongelmien vuoksi.
Konfiguraatio:
./config/configuration.yml
# Absoluuttinen polku hakemistoon, jossa liitteet säilytetään.
# Oletusarvo on 'files'-hakemisto Redmine-instanssissasi.
# EasyRedmine-instanssillasi tulee olla lukuoikeudet ja kirjoitusoikeudet tähän hakemistoon.
# Esimerkkejä: attachments_storage_path: /var/www/redmine/files
Vianmääritys:
Jos et voi avata liitettä, tarkista yleisimmät virheet tiedostosta ./log/production.log:
Liitettä ei voi lähettää, /var/www/redmine/files/2015/08/150805095407_xxx.PNG ei ole olemassa tai sitä ei voi lukea
ENOENT, Käyttö estetty... jne.
Varmista, että web-palvelimellasi on täysi pääsy kansioihin public, files, log, tmp
Uudet sitoumukset tietovarastossasi eivät näy Easy Redminessa, elleivät ne ole haettu sovelluksella. Sinun täytyy asettaa webkoukut tietovaraston asiakkaalle (github, gitlab, TortoiseSVN,...) tiedoilla Easy Redmine-instanssistasi.
- Mene hallintaan >> asetukset >> tietovarastot
- Ota käyttöön WS tietovaraston hallintaa varten
- Luo API-avain
- Tallenna
- Mene tietovaraston asiakkaallesi
- Lisää webkoukku
Oletetaan, että sivustosi on easyredmine.company.com
Gitille - https://easyredmine.company.com/sys/git_fetcher
tai https://easyredmine.company.com/sys/git_fetcher?key=[API-avain]
- asiakkaan asetuksesta riippuen, se voi vaatia joko yhden URL-osoitteen tai avaimen eri kenttään
SVN:lle - https://easyredmine.company.com/sys/fetch_changesets
tai https://easyredmine.company.com/sys/fetch_changesets?key=[API-avain]
Kohdasta 5 eteenpäin se on kaikki tietovaraston asiakkaan vastuulla eikä liity Easy Redmine-asetuksiin. Se on jotain, mitä sinun täytyy varmistaa puhtaan asennuksen tai päivityksen jälkeen Redminesta.
Kun määrität Easy Redminen verkkotunnusta, varmista, että käytät vähintään ensimmäisen tason verkkotunnusta, esimerkiksi http://myeasyredmine.com sen sijaan, että käyttäisit pelkkää http://myeasyredmine . Jotkut selaimet saattavat kohdata ongelmia sen tavoittamisessa.
Mene hallintapaneeliin >> Asetukset >> Sähköposti-ilmoitukset
ja varmista, että LÄHETTÄJÄN osoite on oikein.
Sen tulisi olla sama (tai ainakin samasta SMTP-palvelimesta) kuin konfiguraatiotiedostossa. Muuten jotkut sähköpostipalvelut (gmail, yahoo jne.) saattavat hylätä ilmoitukset.
Tarkista konfiguraatiosi tämän artikkelin tietojen perusteella.
Varmistaaksesi, että konfiguraatio on oikein, yritä tarkistaa, voitko muodostaa yhteyden sähköpostipalvelimeen Easy Redmine -palvelimestasi käyttäen telnetiä.
telnet sinun.verkkotunnus.tässä porttinumero_tässä (Esimerkiksi: telnet gmail.com 465)
Se näyttää sinulle, voitko todella muodostaa yhteyden sähköpostipalvelimeesi vai onko ongelma sähköpostipalvelimen konfiguraatiossa.
Errno::EPIPE (Rikki oleva putki) tai wkhtmltopdf: ei voi muodostaa yhteyttä X-palvelimeen
Aiheutuu ongelmista viennin komponentin wkhtmltopdf kanssa
Tässä on ehdotetut ratkaisut.
Päättymätön palvelin
Hanki tarvittava versio wkhtmltopdf:stä osoitteesta http://wkhtmltopdf.org/downloads.html
Esimerkki (sinun täytyy työskennellä oman ympäristösi yksityiskohtien kanssa):
- 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
Vain ei-päättymätön palvelin
- Sinun täytyy asentaa wkhtmltopdf palvelimeesi PATH -hakemistoon
(apt-get install wkhtmltox, yum install wkhtmltox)
Sen on oltava asennettuna bundleriin, muuten se ei ehkä toimi Easy Redminen päivityksen jälkeen - Varmista, että ohjelma toimii oikein (suorita esimerkiksi konsolista wkhtmltopdf https://easyredmine.com homepage.pdf)
- suorita rake easyproject:install RAILS_ENV=production uudelleen
- käynnistä palvelin uudelleen
Liitännäisen asennus
- ÄLÄ asenna liitännäisiä ROOT-käyttäjänä
- Poista ensin kaikki vanhat Easy Gantt -liitännäiset, jos sellaisia on (plugins/easy_gantt*)
- Kopioi kaikki puretut liitännäiset REDMINE_ROOT/plugins-kansioon
- REDMINE_ROOT-kansiossa
Suorita: |
$ bundle install |
- (tai bundle update) |
$ bundle exec rake db:migrate RAILS_ENV=production |
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production |
Tämän jälkeen käynnistä palvelin uudelleen.
Onnistuneen asennuksen vaatimukset
- Redmine-versio: Yhteensopiva Redmine 3.2.x, 3.3.x, 3.4.x, 4.x kanssa.
- Ruby-versio: 2.3+ (suositus 2.6.)
- Tietokannan tyyppi: MySQL (suositus), PostgreSQL
Seuraa asennusohjeita #install. Varmista, ettei asennusloki sisällä virheitä. Jos siellä on virheitä, yritä ratkaista ne kuvauksen mukaisesti tai ota yhteyttä support@easyredmine.com ja liitä lokiin liittyvä virheosio.
Asennus Bitnami-ympäristössä
Bitnami-ympäristöä ei ole testattu eikä taata. Jos asennus epäonnistuu, suorita seuraavat vaiheet manuaalisesti:
Suorita: |
$ bundle update |
$ rake db:migrate |
$ rake redmine:plugins:migrate |