Ubuntu 16.04 Üzerinde Redmine Kurulumu

Redmine ücretsiz ve açık kaynaklı, web tabanlı bir proje yönetim aracıdır. Ruby on Rails ile yazılmıştır ve veritabanını saklamak için birden fazla veritabanı sunucusunu destekler. Birden fazla projeyi, rol tabanlı EKL'yi ve sorun izleme sistemini destekleyen zengin özelliklere sahip bir uygulamadır. Ayrıca Gantt grafik ve takvim desteği, dosya yönetimi, proje wiki ve forumu ve diğer birçok özelliğe sahiptir. Git, SVN veya CVS gibi sürüm kontrol sistemlerini destekler. Aynı zamanda çok dilli, 49 dil destekliyor.

Ön şartlar

  • Bir Vultr Ubuntu 16.04 sunucu örneği.
  • Bir sudo kullanıcısı .
  • Bir alan adı sunucuya işaret etti.

Bu eğitimde, 192.168.1.1genel IP adresi ve redmine.example.com Vultr örneğine işaret eden alan adı olarak kullanacağız. Lütfen örnek alan adının ve IP adresinin tüm tekrarlarını gerçek adla değiştirdiğinizden emin olun.

Ubuntu 16.04 Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendiğinde, bağımlılıkları yüklemeye devam edin.

Apache Yükle

Redmine Ruby on Rails dilinde yazılmıştır, bu nedenle Phusion Passenger'ın Apache web sunucusuyla uygulamaya hizmet etmesini gerektireceğiz.

Apache'yi yükleyin.

sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev

Ruby ve Yolcu inşa etmek için bazı geliştirme araçlarına da ihtiyacımız olacak. Gerekli aletleri takın.

sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev

PostgreSQL'i yükleyin

Redmine, MySQL, PostgreSQL ve MSSQL gibi birden çok veritabanı sunucusunu destekler. Bu öğreticide, Redmine veritabanı sunucusunu barındırmak için PostgreSQL kullanacağız.

PostgreSQL bir nesne-ilişkisel veritabanı sistemidir. Varsayılan Ubuntu deposu PostgreSQL'in eski bir sürümünü içerir, bu nedenle PostgreSQL deposunu sisteme ekleyin.

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

PostgreSQL veritabanı sunucusunu kurun.

sudo apt -y install postgresql

PostgreSQL sunucusunu başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Varsayılan PostgreSQL kullanıcısının parolasını değiştirin.

sudo passwd postgres

PostgreSQL kullanıcısı olarak oturum açın.

sudo su - postgres

Redmine için yeni bir PostgreSQL kullanıcısı oluşturun.

createuser redmine

Bunun yerine herhangi bir kullanıcı adı kullanmanıza izin verilir redmine. PostgreSQL psql , veritabanında sorgu çalıştırmak için kabuk sağlar . PostgreSQL kabuğuna geçin.

psql

Redmine veritabanı için yeni oluşturulan kullanıcı için bir parola belirleyin.

ALTER USER redmine WITH ENCRYPTED password 'DBPassword';

DBPassword Güvenli bir parola ile değiştirin . Redmine yüklemesi için yeni bir veritabanı oluşturun.

CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

Kabuktan çıkın psql .

\q

sudo Kullanıcıya geçin .

exit

Birkaç gerekli PostgreSQL bağımlılığı yükleyin.

sudo apt -y install libpqxx-dev protobuf-compiler

Ruby'yi yükle

RVM'yi kullanarak Ruby'nin en son sürümünü yükleyeceğiz. Ruby'nin birden çok sürümünü yüklemek ve yönetmek için kullanılır.

RVM deposunu ekleyin.

sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update

RVM'yi yükleyin.

sudo apt -y install rvm

Ruby sistemini geniş olarak kurmamız gerektiğinden, geçici olarak kök kullanıcıya geçeceğiz.

sudo -i

Ortam değişkenlerini güncelleyin.

echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh

Ruby'nin en son sürümünü yükleyin.

rvm install 2.5.1

Not: Farklı bir Ruby sürümü kullanıyorsanız, Ruby yolunu uygun şekilde güncellediğinizden emin olun.

Yüklü Ruby sürümünü kullanın.

rvm use 2.5.1 --default

Sürümünü doğrulayabilirsiniz.

ruby -v

Benzer bir çıktı göreceksiniz.

root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

bundlerRuby uygulamasının bağımlılık yöneticisi olan Install .

gem install bundler

Ruby yüklendi. Redmine'ı kurmadan önce Phusion Passenger'ı kurmamız gerekecek.

Yolcu Yükleme

Passenger'ı kurmak için aşağıdaki komutu çalıştırın.

gem install passenger

Yolcu için Apache modülünü takın.

passenger-install-apache2-module

Yükleyici komut dosyası size bazı sorular soracaktır. İlk olarak, kurulum süreci hakkında bilgi verecektir. Ardından, kullanacağınız dili seçmenizi isteyecektir. Uygulamamız Ruby on Rails dilinde yazıldığı için menüden Ruby'yi seçin ve ENTERdevam etmek için tuşuna basın .

Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, press '!'

 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor

Yükleyici şimdi gereksinimleri kontrol edecektir. Yükleyici eksik bağımlılıklarla karşılaşmaz ve modülü derlemeye ve kurmaya otomatik olarak devam eder.

Modül yüklendikten sonra, modülü Apache yapılandırma dosyasına eklemenizi ister.

Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
     PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
   </IfModule>

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.

Bunu şimdilik atlayacağız ve eğitimde daha sonra tamamlayacağız. ENTERBu adımı atlamak için tuşuna basın .

Son olarak, yükleyici komut dosyası yüklemeyi doğrular ve Yolcu modülünün Apache yapılandırmasında belirtilmediğini belirten bir uyarı görürsünüz.

Validating installation...

 * Checking whether this Passenger install is in PATH... ✓
 * Checking whether there are no other Passenger installations... ✓
 * Checking whether Apache is installed... ✓
 * Checking whether the Passenger module is correctly configured in Apache... (!)

   You did not specify 'LoadModule passenger_module' in any of your Apache
   configuration files. Please paste the configuration snippet that this
   installer printed earlier, into one of your Apache configuration files, such
   as /etc/apache2/apache2.conf.


Detected 0 error(s), 1 warning(s).
Press ENTER to continue.

Apache için Passenger modülünü kurduğumuza göre, Redmine'ı indirip kurmaya devam edin. Geçin sudokullandığımız bir daha komutları çalıştırın gerekmez tekrar beri kullanıcıya rootkullanıcı.

exit

Redmine yükleyin

Uygulamayı sistemin geri kalanından izole tutmak için ayrıcalıklı olmayan bir kullanıcı kullanılması önerilir. Redmine için yeni bir kullanıcı oluşturun ve yeni oluşturulan kullanıcıya geçin.

sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - redmine

Resmi Redmine indirme sayfasından Redmine'ın en son sürümünü indirin .

cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz

Kolaylığı sağlamak için arşivi çıkarın ve dizini yeniden adlandırın.

tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/

Örnek yapılandırma dosyalarını üretim konumuna kopyalayın.

cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

Veritabanı ayrıntılarını girmek için kopyaladığımız veritabanı yapılandırma dosyasını açın.

nano config/database.yml

Varsayılan olarak, veritabanı dosyası MySQL için yapılandırılmıştır. Üretim ve geliştirme konfigürasyonlarını bulun ve MySQL adaptörünü kullanan testi yapın. Tüm bu satırları yorumlayın.

#production:
#  adapter: mysql2
#  database: redmine
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

#development:
#  adapter: mysql2
#  database: redmine_development
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

#test:
#  adapter: mysql2
#  database: redmine_test
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

Furthur, yorum yapan satırları bulun production , postgresql adaptör için yapılandırmaya sahip . Bu satırları kaldırın ve veritabanı adını ve kullanıcı kimlik bilgilerini güncelleyin. İki boşluk olan doğru girintiyi kullandığınızdan emin olun.

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "DBPassword"

Uygulamayı PostgreSQL yapılandırmasını kullanacak şekilde yapılandırın.

bundle config build.pg --with-pg-config=/usr/bin/pg_config

Uygulama için gereken bağımlılıkları yükleyin.

bundle install --path vendor/bundle --without development test

Kurulumun sonunda aşağıdaki mesajı göreceksiniz.

Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`

Aşağıdaki komut, oturum verilerini kodlamak için kullanılan gizli belirteçler oluşturur.

bundle exec rake generate_secret_token

PostgreSQL veritabanını yazın.

RAILS_ENV=production bundle exec rake db:migrate

PostgreSQL veritabanına varsayılan verileri yazan aşağıdaki komutu çalıştırın.

RAILS_ENV=production bundle exec rake redmine:load_default_data

Yukarıdaki komut sizden uygulama ile kullanılacak varsayılan dili seçmenizi isteyecektir. Varsayılan seçim İngilizcedir; tercihinize göre seçin.

[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.

Redmine uygulamasının kurulumu artık tamamlanmıştır. Dizinlerin ve dosyaların sahipliğini ve izinlerini değiştirin.

mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

İhtiyacımız olmayan her şeyi ayrıcalıklı olmayan kullanıcıdan yapılandırdık. Çalıştırarak sudo kullanıcıya geri dönün su - <username>.

Apache'yi Yapılandırma

Apache için Yolcu modülünü Apache yapılandırma dosyasına ekleyin. Bu, Yolcu modülünü otomatik olarak yükleyecektir.

echo "LoadModule passenger_module /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/apache2/apache2.conf

Not: Yeni bir Yolcu sürümü çıktığında Yolcu modülünün yolu değişebilir. Modülün yolunu bulmak için sudo find / -name mod_passenger.sokomutu kullanın.

Redmine uygulamanız için yeni bir sanal ana bilgisayar dosyası oluşturun.

sudo nano /etc/apache2/sites-available/redmine.conf

Dosyayı aşağıdaki içerikle doldurun.

<VirtualHost *:80>
    ServerName redmine.example.com

    DocumentRoot /home/redmine/redmine/public

    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine

    <Directory /home/redmine/redmine/public>
      Allow from all
      Options -MultiViews
      Require all granted
    </Directory>
</VirtualHost>

redmine.example.com Gerçek alan adınızla değiştirdiğinizden emin olun . Ayrıca, emin yolu olun PassengerRoot ve PassengerDefaultRuby doğrudur. Yeni bir Ruby veya Yolcu sürümü olduğunda ikili dosyaların yolu değişebilir. Bu yolları bulmak için aşağıdaki komutu çalıştırın.

passenger-config about ruby-command

Aşağıdaki çıktıyı alacaksınız.

user@vultr:~$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
  Command: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
  To use in Apache: PassengerRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use in Nginx : passenger_ruby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use with Standalone: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/bin/passenger start


## Notes for RVM users
Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config about ruby-command'.

Sanal ana bilgisayar dosyası oluşturulduktan sonra. Yapılandırmayı etkinleştirin.

sudo a2ensite redmine

Apache web sunucusunu yeniden başlatın.

sudo systemctl restart apache2

Artık Redmine arayüzünüze erişebilirsiniz http://redmine.example.com. Kullanıcı adı adminve şifre ile giriş yapın admin. İlk girişinizde, Redmine sizden şifreyi güncellemenizi isteyecektir.

Let's Encrypt SSL ile Apache'nin Güvenliğini Sağlama

Redmine kurulumumuz herkese açık bir sunucuda olduğundan, sunucudan veri alışverişini sağlamak için SSL kullanılması önerilir.

Certbot deposunu ekleyin.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Let's Encrypt CA'nın istemci uygulaması olan Certbot'u yükleyin.

sudo apt -y install certbot

Not: Let's Encrypt CA'dan sertifika almak için, sertifikaların oluşturulacağı etki alanı sunucuya yönlendirilmelidir. Değilse, etki alanının DNS kayıtlarında gerekli değişiklikleri yapın ve sertifika isteğini yeniden yapmadan önce DNS'nin yayılmasını bekleyin. Certbot, sertifikaları vermeden önce etki alanı yetkilisini denetler.

SSL sertifikaları oluşturun.

sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com

Oluşturulan sertifikaların depolanması muhtemeldir /etc/letsencrypt/live/redmine.example.com/. SSL sertifikası olarak cert.pem ve özel anahtar olarak depolanacaktır privkey.pem.

Sertifikaların şifrelenmesini 90 gün içinde sona erdirelim, bu nedenle Cron işlerini kullanarak sertifikaların otomatik olarak yenilenmesi önerilir.

root Kullanıcı için Cron iş dosyasını açın .

sudo crontab -e

Dosyanın sonuna aşağıdaki satırı ekleyin.

30 5 * * * /usr/bin/certbot renew --quiet

Yukarıdaki Cron işi her gün 05: 30'da çalışacaktır. Sertifikanın geçerlilik süresi dolmuşsa, otomatik olarak yenilenir.

Apache için SSL modülünü etkinleştirin.

sudo a2enmod ssl

Redmine için daha önce oluşturduğumuz sanal ana bilgisayar dosyasını düzenleyin.

sudo nano /etc/apache2/sites-available/redmine.conf

Sanal ana makine dosyasını aşağıdakine benzer şekilde değiştirin.

<VirtualHost *:80>
    ServerName redmine.example.com
    Redirect permanent / https://redmine.example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName redmine.example.com
    DocumentRoot "/home/redmine/redmine/public"
    <Directory "/home/redmine/redmine/public">
        Options None
        Require all granted
    </Directory>
    PassengerAppEnv production
    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine
    PassengerHighPerformance on

    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/redmine.example.com/cert.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/redmine.example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem

    SSLProtocol             all -SSLv2 -SSLv3
    SSLHonorCipherOrder     on
    SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

    <IfModule headers_module>
        Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
    </IfModule>
</VirtualHost>

Dosyayı kaydedin ve editörden çıkın.

Değişikliklerin etkili olabilmesi için Apache'yi yeniden başlatın.

sudo systemctl restart apache2

Artık Redmine'a HTTPS adresinden erişebilirsiniz https://redmine.example.com.

Tebrikler, Ubuntu 16.04 örneğinize Redmine'ı başarıyla yüklediniz. Projenizi oluşturarak veya alarak projenizi geliştirmeye başlayın.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun