Si të instaloni Redmine 3 me Nginx në CentOS 7


Redmine është një aplikacion ueb me burim të hapur për menaxhimin e projektit dhe gjurmuesin e çështjeve. Redmine bazohet në Ruby on Rails Framework, ka mbështetje ndër-platformë dhe ndër-bazë të të dhënave dhe dërgon me përkthime për 42 gjuhë. Softueri ju lejon të gjurmoni projekte të shumta, ai integron lajmet, menaxhimin e dokumenteve dhe skedarëve dhe një wiki mbështetës për projekt. Llogaritë e përdoruesve mund të vërtetohen kundër një drejtorie LDAP dhe softueri i palës së tretë mund të lidhet përmes një API REST.

Në këtë tutorial, ne do të instalojmë Redmine 3.2 me Nginx si server në internet, MySQL si serverin e bazës së të dhënave në një sistem operativ CentOS 7 (64 bit).

Kusht paraprak

  • CentOS 7 - 64 bit.
  • Privilegjet e rrënjës.

Hapi 1 - Instaloni varësitë Redmine

Redmine ka shumë varësi që ne do t'i instalojmë së pari. Hyni në serverin tuaj CentOS 7 si përdorues rrënjë:

ssh 

Instaloni të gjitha varësitë që kërkohen nga Redmine dhe paketat e nevojshme për rubin dhe rvm me komandën yum më poshtë:

yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion

Instalimi do të kërkojë një fjalëkalim MySQL. Shkruani fjalëkalimin tuaj të ri MySQL root kur ju kërkohet.

Hapi 2 - Instaloni Ruby dhe RVM

Në këtë hap, ne do të instalojmë rvm (versioni më i fundit) dhe ruby 2.2. Redmine 3.2 mbështet versionin rubin 2.2. RVM (Ruby Version Manager) është një mjet i linjës komanduese që ju lejon të instaloni, menaxhoni dhe punoni me mjedise të shumta rubin në të njëjtin server.

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5

Kur të përfundojë instalimi, duhet të ringarkojmë RVM dhe ta shtojmë atë në skedarin .bashrc për ringarkim automatik:

source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

Ringarko skedarin .bashrc dhe kontrollo versionin Ruby dhe RVM.

source ~/.bashrc
ruby -v
rvm -v

Hapi 3 - Konfiguro bazën e të dhënave për Redmine

Në këtë hap, ne do të instalojmë paketën mysql-server nga depoja zyrtare e MySQL.

Shtoni depon e Oracle MySQL dhe kontrolloni listën e depove.

rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist

për të siguruar që depoja e serverit MySQL është shtuar me sukses.

Instaloni serverin MySQL me këtë komandë yum.

yum install mysql-server

Kur të përfundojë instalimi, nisni shërbimin mysqld dhe konfiguroni fjalëkalimin rrënjësor MySQL.

systemctl start mysqld

Serveri Mysql është nisur. Tani merrni fjalëkalimin e përkohshëm të rrënjës për serverin mysql me komandën grep më poshtë:

grep 'temporary password' /var/log/mysqld.log

Do të shihni një rezultat të ngjashëm me këtë:

2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for : />y.)uWui8j*

Pra, ne e dimë se fjalëkalimi rrënjësor për serverin MySQL është: />y.)uWui8j*

Tani do të vendosim një fjalëkalim të ri rrënjë për serverin mysql. Hyni në guaskën mysql me rrënjën e përdoruesit dhe fjalëkalimin e krijuar:

mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*

Vendosni një fjalëkalim të ri të përdoruesit rrënjë me kërkesën mysql më poshtë:

ALTER USER 'root'@'localhost' IDENTIFIED BY '!';

Më pas, krijoni një bazë të dhënash të re të quajtur \redmine\ dhe krijoni një përdorues të ri redmine me fjalëkalim redmine (përdorni një fjalëkalim të sigurt në serverin tuaj këtu!). Pastaj jepni të gjitha privilegjet për përdoruesin në bazën e të dhënave redmine.

create database redmine;
create user !';
flush privileges;
exit

Baza e të dhënave dhe përdoruesi janë krijuar.

Hapi 4 - Instaloni Phusion Passenger dhe Nginx

Phusion Passenger është server i aplikacionit në ueb që mund të përdoret së bashku me apache dhe nginx. Ai mbështet shumë gjuhë: Ruby, Python dhe Nodejs. Është e lehtë për ne, e shpejtë, mund të trajtojë më shumë trafik dhe ofron përmirësime të sigurisë.

Në këtë kapitull, ne do të instalojmë Phusion Passenger dhe do ta integrojmë me serverin tonë të internetit nginx. Instaloni pasagjerin me komandën gem më poshtë, më pas ekzekutoni komandën pasagjer-nginx-module.

gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module

Komanda do t'ju pyesë se cila gjuhë programimi do të përdoret, zgjidhni Ruby dhe Python.

Do të pyeteni për instalimin nginx; zgjidhni \Po: shkarkoni, përpiloni dhe instaloni Nginx për mua. (rekomandohet)\.

Do t'ju kërkohet direktoria e instalimit të nginx, përdorni parazgjedhjen /opt/nginx/, thjesht shtypni \Enter\.

Hapi 5 - Konfiguro Nginx

Kur të përfundojë instalimi nginx, shkoni te drejtoria e instalimit dhe modifikoni skedarin nginx.conf me një redaktues.

cd /opt/nginx/
cd conf/
vim nginx.conf

Ngjitni konfigurimin më poshtë në rreshtin 24:

include vhost/*.conf;

Ruani skedarin dhe dilni nga redaktori.

Krijoni një drejtori të re vhost për konfigurimin e hostit virtual.

mkdir -p /opt/nginx/conf/vhost

Shkoni te drejtoria vhost dhe krijoni konfigurimin redmine virtualhost me vim:

cd /opt/nginx/conf/vhost/
vim redmine.conf

Ngjitni konfigurimin e hostit virtual më poshtë:

    server {
        listen       80;
        server_name  www.redmine.me;

        root /var/www/redmine/public;
        passenger_enabled on;
        client_max_body_size      10m; # Max attachemnt size

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

Ruani skedarin.

Ubuntu 16.04 përdor systemd si sistem fillestar. Më pas ne konfigurojmë nginx për systemd. Shkoni te drejtoria systemd dhe krijoni skedarin e ri të shërbimit me emrin nginx.service.

cd /lib/systemd/system/
vim nginx.service

Ngjitni skriptin nginx për systemd më poshtë:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Ruaje dhe dil.

Rifresko shërbimin systemd dhe provo të nisësh nginx me komandën systemctl:

systemctl daemon-reload
systemctl start nginx

Nëse dëshironi të kontrolloni nginx, kontrolloni portën e hapur 80:

netstat -plntu | grep nginx

Rezultati duhet të jetë si ky:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4871/nginx

Hapi 6 - Instaloni Redmine

Krijoni një direktori të re për instalimin Redmine. Këtu do të përdor drejtorinë /var/www/.

mkdir -p /var/www/

Shkoni te drejtoria /var/www/ dhe shkarkoni Redmine me komandën svn:

cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine

Shkoni te drejtoria Redmine dhe kopjoni skedarin e konfigurimit dhe skedarin e konfigurimit të bazës së të dhënave:

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

Redaktoni skedarin database.yml me vim:

vim config/database.yml

Në linjën e seksionit të prodhimit, plotësoni emrin e përdoruesit dhe fjalëkalimin e bazës së të dhënave:

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

Ruani skedarin.

Në drejtorinë redmine, krijoni disa drejtori të reja dhe ndryshoni pronarin në përdorues dhe gruponi askush:

mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets

Instaloni varësinë e grupit dhe të gurëve të çmuar për redmine:

gem install bundler
bundle install --without development test

Gjeneroni shenjën sekrete, më pas gjeneroni bazën e të dhënave:

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

Rinisni nginx dhe vizitoni emrin e domenit redmine me një shfletues në internet:

systemctl restart nginx

Vizitoni instalimin redmine, i imi është: www.redmine.co

Hyni në faqen e administratorit: www.redmine.co/login

Përdoruesi dhe fjalëkalimi i parazgjedhur është admin.

Krijo një projekt të ri mostër.

Shembull i faqes së projektit.

Instalimi i Redmine me Nginx dhe MySQL në CentOS 7 ka qenë i suksesshëm.

konkluzioni

Redmine është një aplikacion i bazuar në ueb për menaxhimin e projektit dhe ndjekjen e problemeve. Redmine është ndër-platformë, kështu që ne mund ta ekzekutojmë atë në Windows, Linux ose Mac OS. Redmine ka mbështetje për shumë baza të të dhënave si MySQL, PostgreSQL, Microsoft SQL Server dhe SQLite. Redmine është i lehtë për t'u instaluar dhe konfiguruar, ne mund të përdorim Apache ose Nginx si server në internet. Redmine është shumë i fuqishëm dhe ka shumë veçori si mbështetje shumë-gjuhëshe, menaxhim skedarësh, wiki dhe një API REST. Redmine është një nga zgjidhjet më të mira falas nëse doni të ndërtoni menaxhimin tuaj të projektit me ndjekjen e problemeve.