Redmine 3.3 + Nginx + MariaDB telepítése Ubuntu 16.04-re

A tovább mögött egy nem túl részletes, de talán annál hasznosabb leírást olvashattok a Redmine 3.3 telepítéséről Ubuntu 16.04-re nginx webszerverrel és MariaBD adatbázissal. Aki telepített már valaha Redmine-t, az tudja, hogy elég magas a random faktor a dolog sikerességében, így amikor elkezded sosem lehetsz biztos benne, hogy sikerülni is fog, ezért nem tudom garantálni, hogy ez alapján sikerülni fog neked is, de hátha, ha mégsem, akkor meg sörért telepíthetek Redmine-t :)

Amire szükséged lesz:
– Egy szerverre, amire fel van már telepítve egy Ubuntu 16.04, eléri a netet, és ssh-n be vagy rá jelentkezve
– Egy DNS név, amin el szeretnéd érni a redmine-t, és fel van véve DNS-be vagy hosts fájlba, a példában ez a redmine.pomi.ninja

Az egyszerűség kedvéért rootként csinálom a telepítést, így első lépésként légy root

sudo su

Frissíts egyet, ha még eddig nem tetted meg

apt update
apt upgrade

Szükséges csomagok telepítése

apt install imagemagick libmagickwand-dev libcurl4-openssl-dev git-core subversion

MariaDB telepítése

apt install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.bme.hu/pub/mirrors/mariadb/repo/10.1/ubuntu xenial main'
apt update
apt install mariadb-server mariadb-client libmariadbclient-dev

A telepítő kérni fogja az MariaDB root felhasználó új jelszavát.

redmine adatbázis és felhasználó létrehozása megfelelő jogokkal

Lépj be MySQL-be a root felhasználóval

mysql -u root -p

Hozd létre az adatbázist és a felhasználót

create database redmine character set utf8 collate utf8_general_ci;
create user redmine@localhost identified by 'redminepass';
grant all privileges on redmine.* to redmine@localhost identified by 'redminepass';
flush privileges;
exit

Létrejött a ‘redmine‘ nevű adatbázis, hozzá a ‘redmine‘ nevű felhasználó a ‘redminepass‘ jelszóval. Ezek természetesen szabadon módosíthatóak, érdemes normálisabb jelszót használni.

Ruby telepítés

A Redmine 3.3 a Ruby 2.3-at támogatja maximum, így ezt telepítjük (ne is próbálkozz, 2.4-el nem fog menni).

gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.3.3
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

Phusion Passenger és nginx telepítése

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

A kérdésekre a válaszok:
– 1, This installer will compile and install Nginx with Passenger support.
– A ruby és a python legyen kiválasztva, ez az alapértelmezett, így elég entert ütnöd.
– 1, Yes: download, compile and install Nginx for me. (recommended)
– Please specify a prefix directory [/opt/nginx] – Ha megfelel neked, akkor üss entert, ha máshova akarod telepíteni az Nginx-et, akkor add meg azt.

Nginx konfig

cd /opt/nginx/conf/
 vi nginx.conf

Az első sorban töröld a kettőskeresztet a user nobody; elöl, és a nobody-t írd át www-data-ra

user www-data;

A fájl végére, az utolsó kapcsos zárójel elé illeszd be a következőt sort:

include vhosts/*.conf;

Hozd létre ezt a könyvtárat a /opt/nginx/conf/ könyvtárba a vhosts könyvtárat, illetve a /opt/nginx/ könyvtárba az ssl könyvtárat

mkdir /opt/nginx/conf/vhosts && mkdir /opt/nginx/ssl

Generálj SSL certet a https-hez az /opt/nginx/ssl könyvtárba

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /opt/nginx/ssl/redmine-selfsigned.key -out /opt/nginx/ssl/redmine-selfsigned.crt

Kérni fogja a tínúsítvány adatait, ezeket értelemszerűen add meg, pl:

Country Name (2 letter code) [AU]:HU
State or Province Name (full name) [Some-State]:Budapest
Locality Name (eg, city) []:Budapest
Organization Name (eg, company) [Internet Widgits Pty Ltd]:pomi.ninja
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:redmine.pomi.ninja
Email Address []:info@pomi.ninja

Hozd létre a redmine vhost fájlt a vhosts könyvtárba

vi /opt/nginx/conf/vhosts/redmine.conf

és illeszd bele a következő sorokat (a server_name az legyen, amit használni szeretnél)

server {
 listen 443 ssl;
 server_name redmine.pomi.ninja;

ssl_certificate /opt/nginx/ssl/redmine-selfsigned.crt;
 ssl_certificate_key /opt/nginx/ssl/redmine-selfsigned.key;

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;
 }
 }
#atiranyitjuk, aki a 80-as porton jon
server {
 listen 80;
 server_name redmine.pomi.ninja;
 return 301 https://$host$request_uri;

}

Hozd létre az nginx service fájlt, hogy a systemd kezelje az nginx-et

vi /lib/systemd/system/nginx.service

Illeszd bele a következő sorokat

[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

Végül engedélyezd, és indítsd el az nginx-et

systemctl daemon-reload
systemctl enable nginx
systemctl start nginx

Ha minden rendben volt, és a böngészőben megpróbálod megnyitni az oldalt, akkor a tanúsítvány figyelmeztetés után a “404 Not Found nginx/1.10.2” oldalnak kellene bejönnie.

Redmine telepítése

Ha még nem létezik a /var/www/ könyvtár, akkor hozd létre, és lépj bele

mkdir /var/www && cd /var/www/

Svn-ről checkoutold a legrfrissebb stabil 3.3-as Redmine-t és lépj a létrejövő redmine könyvtárba

svn co https://svn.redmine.org/redmine/branches/3.3-stable redmine && cd redmine

A példafájlokból hozd létre a két szükséges default konfigfájlt

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

A config/database.yml módosításával állítsd be a redmine adatbázis elérését

vi config/database.yml
production:
 adapter: mysql2
 database: redmine
 host: localhost
 username: redmine
 password: "redminepass"
 encoding: utf8

A redmine-nak még szüksége van két könyvtárra, ezeket hozd létre, és állítsd be a szüksgés jogosultságokat

mkdir -p tmp tmp/pdf public/plugin_assets
chmod -R 775 files log tmp public/plugin_assets

Ideje beállítani, hogy a teljes redmine mappa tulajdonosa a www-data:www-data legyen

chown -R www-data:www-data /var/www/redmine

Telepítsd a bundlert és a Redmine függőségeit (fontos, hogy a megfelelő könyvtárban legyél, ebben az esetben a /var/www/redmine a megefelelő) :

gem install bundler
bundle install --without development test

Secret token és az adatbázis generálása, majd nginx restart
(a htmlentities 4.3.1-ben van valami bug, ami miatt kapsz egy warningot “bundle exec rake generate_secret_token”, de ezzel most nem kell törődni, mennie kell így is)

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

Ha mindent jól csináltál, akkor a böngészőben a Redmine töltődik be, az alapértelmezett felhasználói név és jelszó: admin/admin

(A bejegyzés alapja: https://www.howtoforge.com/tutorial/how-to-install-redmine-with-nginx-on-ubuntu/)

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

*