Yaygın Redmine Kurulumu ve Güncelleme sorunları
Redmine ve Easy Redmine'in her ikisi de Açık Kaynaklıdır ve neredeyse platform bağımsızdır, bu nedenle çeşitli sunucu yapılandırmaları, yazılım sürümleri veya yüklü eklentiler nedeniyle bazı kurulum ve yükseltme sorunları ortaya çıkabilir. Sorun giderme konusunda size yardımcı olabilmek için en yaygın olanları takip etmek için yoğun bir şekilde çalışıyoruz.
Uygulama güncellemesi sırasında günlükte "SQL sözdiziminde bir hata var; MySQL sunucu sürümünüze uygun sözdizimini kullanmak için kılavuza bakın ..." içeren bir hata mesajı görünür.
Neden
Bu, veritabanınızın güncel olmadığı ve uygulamamızın ona gönderdiği isteği çalıştıramadığı anlamına gelir. Sadece anlamaz.
Çözüm
Veritabanınızı güncellemeniz gerekiyor.
Veritabanını nasıl güncelleyebilirim?
Ayrıntılı açıklama için Bilgi Bankası.
Yetersiz izinlere sahip bir kullanıcı altında Easy Redmine'i yüklediniz veya güncellediniz, bu da geçmişte en az bir kez talimatlarımızı takip etmediğiniz anlamına gelmektedir.
- Sunucu ayarlarına göre chgrp ve chown komutlarıyla izinleri düzeltin (ör. chgrp -R www-data public_html)
- Kurulumu tekrar çalıştırın bundle exec rake easyproject:install RAILS_ENV=production bu, önbelleği temizleyecektir (root olarak çalıştırırsanız, başarılı olmayacaktır)
- Sunucuyu yeniden başlatın
Easy Software tarafından sağlanan sanal makineyi kullanıyorsanız, easy kullanıcısı altında çalıştırın:
sudo chown -R easy /home/easy/current
(eski makinelerde - sudo chown -R easy /srv/easyredmine/public_html)
sudo chgrp -R easy /home/easy/current
(eski makinelerde - sudo chgrp -R easy /srv/easyredmine/public_html)
cd /home/easy/current
(eski makinelerde - cd /srv/easyredmine/public_html)
bundle exec rake easyproject:install RAILS_ENV=production
sudo service puma@your.domain.name restart
Gerekli tüm klasörler için izinleri ayarlamayı unutmayın.
İşte 500 hatasıyla karşılaşırsanız ne yapabileceğinize dair bazı ipuçları.
- Kolay sunucu gereksinimleri kontrolünü çalıştırın ve başarısız doğrulamaları düzeltmeye çalışın
- Veritabanınızı yedekleyin
- Son paketi Müşteri Bölgesinden indirin
- Web sunucusunun Tam erişim genel, dosyalar, günlük, geçici klasörlerine sahip olduğundan emin olun
- bundle install --without development test komutunu çalıştırın
- bundle exec rake easyproject:install RAILS_ENV=production komutunu çalıştırın
- uygulama sunucusunu yeniden başlatın
- 3. taraf Redmine eklentilerini (veritabanından da) silin
- Bize support@easyredmine.com adresinden yazın ve log/production.log dosyasını ekleyin
Bu hatanın birçok olası nedeni vardır. İşte birkaç ipucu:
- tarayıcı önbellek sorunu - tarayıcıdan önbelleği silmeyi deneyin
- dns sorunu
- sunucu ayarı sorunu
Önce bağlantınızı ve ağınızı kontrol edin (sunucunun erişilebilir olduğunu ping komutu veya traceroute komutu kullanarak doğrulayın). Sunucu tarafında güvenlik duvarı.
Eğer yukarıdaki her şey yolunda görünüyorsa, nginx hata günlüklerinden bazı bilgiler almayı deneyin. Sunucu tarafında nginx hata günlüğünü kontrol edin - /var/log/nginx/error.log
nginx yapılandırmanızın standartla eşleştiğinden emin olun. Standart nginx yapılandırması burada bulunabilir:
https://www.redmine.org/projects/redmine/wiki/HowTo_configure_Nginx_to_run_Redmine
Easy Software tarafından kullanılan bir nginx yapılandırma örneği (resmi olanla oldukça benzer, sadece birkaç değişken optimize edilmiştir):
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 kullanmayın 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 hatasının diğer olası nedenleri arasında...
Unicorn hiç çalışmıyor, çünkü
- Yetersiz izinler
- Yanlış passenger sürümü
- Yanlış Ruby sürümü
- Eksik gemler
- Bozuk dosya sistemi
Tam sorunu bulmak için unicorn veya apache + Easy Redmine uygulama günlüğündeki hata günlüklerini kontrol etmeniz gerekmektedir (log/production.log)
Zaman aşımı
Eğer düşük zaman aşımı yapılandırılmışsa, bu hata şu yerlerde görünecektir:
- büyük ihracatlarda
- sunucunun aşırı yüklenmesinde
- GUI'den çalıştırılan rake görevlerinde
MySQL bağlantılarının sınırı
MySQL'e izin verilen bağlantı sayısı yeterli olduğundan emin olun. Kullanıcı sayısına bağlı olarak değişir, ancak en az 100 izin verilmelidir.
Bu hata, 2018 1.2 sürümünden itibaren (platform 04.00 ve daha yüksek) meydana gelir
Yükseltme kurulumu sırasında aşağıdakilerden bazılarını içeren bir hata oluştu.
[!] `Gemfile` ayrıştırılırken bir hata oluştu:
[!] `Gemfile` ayrıştırılırken bir hata oluştu: böyle bir dosya yüklenemez --
# plugin 'rys-bundler', github: 'easysoftware/rys-bundler', branch: 'master' > Plugin.hook('rys-gemfile', self)
Bundler devam edemez.
Bunun nedeni, redmine kurulumunun eski bir sürümüdür.
Çözüm:
Yükseltmeyi kurmadan önce
$ gem install redmine-installer
Bu sorun, Easy Redmine URL'nize bir ek kullanarak oluşur, örneğin: https://company.com/easyredmine/
Bu durumda, RAILS_RELATIVE_URL_ROOT değişkeninin doğru ek /easyredmine olarak yapılandırıldığından emin olmanız gerekmektedir.
Bitnami:
- Ek bir yapılandırma dosyası olan config/additional_environment.rb oluşturun
- config.action_controller.relative_url_root = "/easyredmine"
- ardından varlıkları derleyin (rake easyproject:install RAILS_ENV=production) ve sunucuyu yeniden başlatın
Emniyetli olun wkhtmltopdf yüklü ve çalışıyor ( wkhtmltopdf X sunucusu veya diğer emülasyon gerektirir)
Test etmek için: "wkhtmltopdf google.com google.pdf"
Proxy yapılandırmanıza ekleyin:
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.
Windows platformunda Easy Redmine'i güncellerken ve hata mesajıExecJs ::RuntimeError alırsanız,
doğru güncelleme için sisteminize NODEJS yüklemeniz gerekmektedir.
Kurulum başarısız olursa, manuel olarak çalıştırın:
$ bundle update
$ rake db:migrate
$ rake redmine:plugins:migrate
Web sunucusunun URL adresinin gerçek boyutunu desteklediğinden emin olun
Webrick web sunucusunu KULLANMIYORSANIZ emin olun!
- web sunucusunun ve Ruby'nin en son sürümüne sahip olduğunuzdan emin olun
- yavaş filtre sorgularını yeniden yapılandırarak daha az alan gösterin
- CRON'unuzu daha az sıklıkla başlatmak için sıfırlayın
- bu vaka çalışmasına bakın - Ruby koduna dokunmadan Rails hızlandırma
- konfigürasyonunuzu kontrol edin - https://www.easyredmine.com/resources/installation/1885-recommended-optimal-configuration-of-easy-redmine-server
Eski Redmine'dan dosyalar klasörünü kopyalayın.
Varsayılan dosya konumunu Redmine'ın yapılandırma dosyasında değiştirebilir veya sembolik bağlantı kullanabilirsiniz. Ekler için LAN veya bulut tabanlı ağ depolamaları, güvenilirlik sorunları nedeniyle önerilmez.
Yapılandırma:
./config/configuration.yml
# Eklerin depolandığı dizinin mutlak yolu.
# Varsayılan, Redmine örneğinizdeki 'dosyalar' dizinidir.
# EasyRedmine örneğinizin bu dizinde okuma/yazma iznine sahip olması gerekir.
# Örnekler: attachments_storage_path: /var/www/redmine/files
Sorun Giderme:
Bir ek açamıyorsanız, yaygın hatalar için ./log/production.log dosyasına bakın:
Ek gönderilemiyor, /var/www/redmine/files/2015/08/150805095407_xxx.PNG mevcut değil veya okunamıyor
ENOENT, İzin Reddedildi... vb.
Web sunucunuzun Tam erişim iznine sahip olduğundan emin olun genel, dosyalar, günlük, geçici klasörleri
Depolamanızdaki yeni taahhütler, uygulama tarafından alınana kadar Easy Redmine'da yansıtılmaz. Easy Redmine örneğiniz hakkında bilgi içeren depolama istemcisi (github, gitlab, TortoiseSVN,...) üzerinde web kancaları ayarlamanız gerekmektedir.
- yönetim >> ayarlar >> depolar bölümüne gidin
- Depo yönetimi için WS'yi etkinleştirin
- Bir API anahtarı oluşturun
- Kaydet
- Depolama istemcinize gidin
- Bir web kancası ekleyin
Örneğin, sitenizin easyredmine.company.com olduğunu varsayalım
Git için - https://easyredmine.company.com/sys/git_fetcher
veya https://easyredmine.company.com/sys/git_fetcher?key=[API anahtarı]
- istemci ayarına bağlı olarak, tek bir URL veya farklı bir alana anahtarı gerektirebilir
SVN için - https://easyredmine.company.com/sys/fetch_changesets
veya https://easyredmine.company.com/sys/fetch_changesets?key=[API anahtarı]
5. adımdan itibaren, tümü depolama istemcisiyle ilgilidir ve Easy Redmine ayarlarıyla ilgili değildir. Bu, temiz kurulum veya Redmine'dan yükseltme sonrasında doğrulamanız gereken bir şeydir.
Easy Redmine'nin alan adını yapılandırırken, sadece http://myeasyredmine yerine örneğin http://myeasyredmine.com gibi en az birinci seviye alan adını kullanmaya dikkat edin. Bazı tarayıcılar ona ulaşmada sorun yaşayabilir.
Yönetim'e gidin >> Ayarlar >> E-posta bildirimleri
ve FROM adresinin doğru olduğunu doğrulayın.
Aynı olmalıdır (veya en azından aynı SMTP sunucusundan) yapılandırma dosyasında olduğu gibi. Aksi takdirde bazı e-posta hizmetleri (gmail, yahoo, vb.) bildirimleri reddedebilir.
Yapılandırmanızı Bu Bilgi Bankası makalesine göre kontrol edin.
Yapılandırmanın doğru olduğunu doğrulamak için, Easy Redmine sunucunuzdan posta sunucusuna telnet kullanarak bağlanıp bağlanamayacağınızı kontrol etmeyi deneyin.
telnet your.domain.here port_number_here (Örneğin: telnet gmail.com 465)
Gerçekten posta sunucusuna bağlanıp bağlanamayacağınızı veya posta sunucusu yapılandırmanızda bir sorun olup olmadığını size gösterecektir.
PDF dışa aktarma işlemi yapmaya çalışırken bir hata oluşursa (veya hiçbir şey olmamış gibi davranıyorsa). Üretim günlüğü, aşağıdaki gibi hataları listeler:
Errno::EPIPE (Kırık boru) veya wkhtmltopdf: X sunucusuna bağlanılamıyor
wkhtmltopdf bileşeninin dışa aktarma sorunlarından kaynaklanır.
İşte önerilen çözümler.
Headless sunucu
http://wkhtmltopdf.org/downloads.html adresinden gerekli wkhtmltopdf sürümünü edinin
Örnek (kendi ortamınızın ayrıntılarıyla çalışmanız gerekmektedir):
- 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
Yalnızca headless sunucu
- Sunucunuzda wkhtmltopdf yüklü olmalıdır ve PATH içinde bulunmalıdır
(apt-get install wkhtmltox, yum install wkhtmltox)
Bundler içinde yüklü olmalıdır, aksi takdirde Easy Redmine güncellendikten sonra çalışmayabilir - Programın doğru şekilde çalıştığından emin olun (örneğin konsoldan çalıştırın: wkhtmltopdf https://easyredmine.com homepage.pdf)
- rake easyproject:install RAILS_ENV=production komutunu yeniden çalıştırın
- sunucuyu yeniden başlatın
Eklenti kurulumu
- Eklentileri ROOT kullanıcısı olarak KURMAYIN
- Öncelikle, varsa tüm eski Easy Gantt eklentilerini silin (plugins/easy_gantt*)
- Tüm açılmış eklentileri REDMINE_ROOT/plugins klasörüne kopyalayın
- REDMINE_ROOT içinde
Çalıştır: |
$ bundle install |
- (veya bundle update) |
$ bundle exec rake db:migrate RAILS_ENV=production |
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production |
Bundan sonra, sunucuyu yeniden başlatın.
Başarılı kurulum için gereksinimler
- Redmine sürümü: Redmine 3.2.x, 3.3.x, 3.4.x, 4.x ile uyumlu.
- Ruby sürümü: 2.3+ (önerilen 2.6.)
- Veritabanı türü: MySQL (önerilen), PostgreSQL
#install bölümündeki kurulum prosedürünü takip edin. Kurulum günlüğünde herhangi bir hata olmadığından emin olun. Eğer hata varsa, açıklamaya göre çözmeye çalışın veya hata bölümünü ekli olarak support@easyredmine.com ile iletişime geçin.
Bitnami üzerinde kurulum
Bitnami test edilmemiş veya garanti edilmemiştir. Kurulum başarısız olursa, aşağıdaki komutları manuel olarak çalıştırın:
Çalıştır: |
$ bundle update |
$ rake db:migrate |
$ rake redmine:plugins:migrate |