Slik installerer du Redmine på Ubuntu 16.04

Redmine er et gratis og åpen kildekode, nettbasert prosjektstyringsverktøy. Den er skrevet i Ruby on Rails og støtter flere databaseservere for lagring av databasen. Det er en funksjonsrik applikasjon som støtter flere prosjekter, rollebasert ACL og et problemsporingssystem. Den har også støtte for Gantt-diagram og kalender, filbehandling, per prosjekt wiki og forum, samt mange andre funksjoner. Den støtter versjonskontrollsystemer som Git, SVN eller CVS. Den er også flerspråklig, og støtter så mange som 49 språk.

Forutsetninger

  • En Vultr Ubuntu 16.04-serverforekomst.
  • En sudo-bruker .
  • Et domenenavn pekte mot serveren.

For denne opplæringen vil vi bruke 192.168.1.1som den offentlige IP-adressen og redmine.example.com som domenenavnet som pekte mot Vultr-forekomsten. Sørg for å erstatte alle forekomster av eksempeldomenenavnet og IP-adressen med den faktiske.

Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere Ubuntu 16.04 . Når systemet ditt har blitt oppdatert, fortsett å installere avhengighetene.

Installer Apache

Redmine er skrevet i Ruby on Rails, så vi vil kreve at Phusion Passenger integreres med Apache-nettserveren for å betjene applikasjonen.

Installer Apache.

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

For å bygge Ruby and Passenger trenger vi også noen utviklingsverktøy. Installer de nødvendige verktøyene.

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

Installer PostgreSQL

Redmine støtter flere typer databaseservere som MySQL, PostgreSQL og MSSQL. I denne opplæringen vil vi bruke PostgreSQL til å være vert for Redmine-databaseserveren.

PostgreSQL er et objektrelasjonelt databasesystem. Standard Ubuntu-depotet inneholder en gammel versjon av PostgreSQL, så legg til PostgreSQL-depotet til systemet.

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

Installer PostgreSQL-databaseserveren.

sudo apt -y install postgresql

Start PostgreSQL-serveren og la den starte automatisk ved oppstart.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Endre passordet for standard PostgreSQL-bruker.

sudo passwd postgres

Logg på som PostgreSQL-bruker.

sudo su - postgres

Opprett en ny PostgreSQL-bruker for Redmine.

createuser redmine

Du har lov til å bruke hvilket som helst brukernavn i stedet for redmine. PostgreSQL gir psql skallet for å kjøre spørringer på databasen. Bytt til PostgreSQL-skallet.

psql

Angi et passord for den nyopprettede brukeren for Redmine-databasen.

ALTER USER redmine WITH ENCRYPTED password 'DBPassword';

Erstatt DBPassword med et sikkert passord. Opprett en ny database for Redmine-installasjonen.

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

Gå ut av psql skallet.

\q

Bytt til sudo brukeren.

exit

Installer noen flere nødvendige PostgreSQL-avhengigheter.

sudo apt -y install libpqxx-dev protobuf-compiler

Installer Ruby

Vi vil installere den nyeste versjonen av Ruby ved å bruke RVM. Den brukes til å installere og administrere flere versjoner av Ruby.

Legg til RVM-depotet.

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

Installer RVM.

sudo apt -y install rvm

Ettersom vi må installere Ruby hele systemet, vil vi bytte til root-brukeren midlertidig.

sudo -i

Oppdater miljøvariablene.

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

Installer den nyeste versjonen av Ruby.

rvm install 2.5.1

Merk: Hvis du bruker en annen versjon av Ruby, sørg for å oppdatere Ruby-banen tilsvarende.

Bruk den installerte versjonen av Ruby.

rvm use 2.5.1 --default

Du kan bekrefte versjonen.

ruby -v

Du vil se en lignende utgang.

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

Installer bundler, som er avhengighetsbehandlingen for Ruby-applikasjonen.

gem install bundler

Ruby er nå installert. Før vi installerer Redmine, må vi installere Phusion Passenger.

Installer Passasjer

Kjør følgende kommando for å installere Passenger.

gem install passenger

Installer Apache-modulen for Passenger.

passenger-install-apache2-module

Installasjonsskriptet vil stille deg noen spørsmål. Først vil den gi deg informasjon om installasjonsprosessen. Deretter vil den be deg velge språket du vil bruke. Siden vår applikasjon er skrevet i Ruby on Rails, velg Ruby fra menyen og trykk for ENTERå fortsette videre.

Which languages are you interested in?

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

 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor

Installasjonsprogrammet vil nå se etter krav. Installasjonsprogrammet vil ikke støte på manglende avhengigheter og vil automatisk fortsette å kompilere og installere modulen.

Når modulen er installert, vil den be deg legge til modulen i Apache-konfigurasjonsfilen.

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.

We will skip this for now and will complete it later in the tutorial. Press ENTER to skip this step.

Finally, the installer script will validate the installation and you will see a warning saying the Passenger module is not specified in Apache configuration.

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.

Now that we have installed the Passenger module for Apache, proceed to download and install Redmine. Switch to the sudo user again since we do not need to run any more commands using root user.

exit

Install Redmine

It is recommended to use an unprivileged user to run the application to keep it isolated from rest of the system. Create a new user for Redmine and switch to the newly created user.

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

Download the latest version of Redmine from the official Redmine download page.

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

Extract the archive and rename the directory for the sake of convenience.

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

Copy the example configuration files to its production location.

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

Open the database configuration file we just copied to enter the database details.

nano config/database.yml

By default, the database file is configured for MySQL. Find the configurations for production and development, and test which uses the MySQL adapter. Comment out all of these lines.

#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, find the lines which are commented, having production configuration for the postgresql adapter. Uncomment those lines and update the database name and user credentials. Make sure to use the correct indentation, which is two spaces.

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

Configure the application to use the PostgreSQL configuration.

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

Install the dependencies required by the application.

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

You will see the following message at the end of the installation.

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`

The following command generates secret tokens that are used to encode the session data.

bundle exec rake generate_secret_token

Write the PostgreSQL database.

RAILS_ENV=production bundle exec rake db:migrate

Run the following command, which writes the default data into PostgreSQL database.

RAILS_ENV=production bundle exec rake redmine:load_default_data

The above command will ask you to choose the default language to be used with the application. The default choice is English; choose according to your preference.

[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.

Installation of the Redmine application is now finished. Change ownership and permissions of the directories and files.

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

We have configured everything we need from the non-privileged user. Switch back to the sudo user by running su - <username>.

Configure Apache

Add the Passenger module for Apache into the Apache configuration file. This will automatically load the Passenger module.

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

Merk: Banen til Passenger-modulen kan endres når det kommer en ny utgivelse av Passenger. For å finne banen til modulen, bruk sudo find / -name mod_passenger.sokommandoen.

Opprett en ny virtuell vertsfil for Redmine-applikasjonen din.

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

Fyll filen med følgende innhold.

<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>

Sørg for å erstatte redmine.example.com med ditt faktiske domenenavn. Sørg også for at banen til PassengerRoot og PassengerDefaultRuby er riktig. Banen til binærfilene kan endres når det er en ny utgivelse av Ruby eller Passenger. For å finne disse banene, kjør følgende kommando.

passenger-config about ruby-command

Du vil få følgende utgang.

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'.

Når den virtuelle vertsfilen er opprettet. Aktiver konfigurasjonen.

sudo a2ensite redmine

Start Apache-nettserveren på nytt.

sudo systemctl restart apache2

Du kan nå få tilgang til Redmine-grensesnittet på http://redmine.example.com. Logg på med brukernavnet adminog passordet admin. Ved din første pålogging vil Redmine be deg om å oppdatere passordet.

Sikre Apache med Let's Encrypt SSL

Siden vår Redmine-installasjon er på en offentlig server, anbefales det å bruke SSL for å sikre utvekslingen av dataene fra serveren.

Legg til Certbot-depotet.

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

Installer Certbot, som er klientapplikasjonen for Let's Encrypt CA.

sudo apt -y install certbot

Merk: For å få sertifikater fra Let's Encrypt CA, må domenet som sertifikatene skal genereres for peke mot serveren. Hvis ikke, gjør de nødvendige endringene i DNS-postene til domenet og vent til DNS-en forplanter seg før du foretar sertifikatforespørselen igjen. Certbot sjekker domeneautoriteten før sertifikatene leveres.

Generer SSL-sertifikatene.

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

De genererte sertifikatene blir sannsynligvis lagret i /etc/letsencrypt/live/redmine.example.com/. SSL-sertifikatet vil bli lagret som cert.pem og privat nøkkel vil bli lagret som privkey.pem.

La oss kryptere sertifikater utløper om 90 dager, derfor anbefales det å sette opp automatisk fornyelse av sertifikatene ved å bruke Cron-jobber.

Åpne Cron-jobbfilen for root brukeren.

sudo crontab -e

Legg til følgende linje på slutten av filen.

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

Cron-jobben ovenfor vil kjøre hver dag klokken 05.30. Hvis sertifikatet skal utløpe, vil det automatisk fornyes.

Aktiver SSL-modulen for Apache.

sudo a2enmod ssl

Rediger den virtuelle vertsfilen vi opprettet tidligere for Redmine.

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

Endre den virtuelle vertsfilen slik at den ligner på følgende.

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

<VirtualHost *:443>
    ServerAdmin admin@example.com
    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>

Lagre filen og gå ut av redigeringsprogrammet.

Start Apache på nytt slik at endringene kan tre i kraft.

sudo systemctl restart apache2

Du kan nå få tilgang til Redmine over HTTPShttps://redmine.example.com.

Gratulerer, du har installert Redmine på Ubuntu 16.04-forekomsten. Begynn å utvikle prosjektet ditt enten ved å opprette eller importere prosjektet.

Legg igjen en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer