F29Installation » History » Version 10

« Previous - Version 10/41 (diff) - Next » - Current version
Gerd Pokorra, 2018-12-28 19:02


HowTo Install Redmine 4.0.0 on Fedora 29

This guide is not complete. It will be completed in the next two weeks.

System Requirements

It is assumed that the Server Edition is installed on the system in this guide.

Web Server

Nginx/Passenger

The Fedora nginx package do not include Passenger, so you have to build nginx with the passenger module. The guide assume that the sources are extracted under the directory /opt . The nginx software will be installed at /opt/ngnix. At the time of writting that guide this was the current stable releases of passenger and nginx:

  • passenger-6.0.0
  • nginx-1.14.2

Downloading the sources:

Passenger

> cd /opt
> wget https://s3.amazonaws.com/phusion-passenger/releases/passenger-6.0.0.tar.gz
> tar xf passenger-6.0.0.tar.gz

Nginx

> wget http://nginx.org/download/nginx-1.14.2.tar.gz
> mkdir /opt/src
> cd /opt/src
> tar xf nginx-1.14.2.tar.gz

Installing additional packages

For the build of passenger and nginx the following additional packages are needed to be installed:

> dnf install install gcc-c++ libcurl-devel openssl-devel zlib-devel

Execute the ruby script for building and installing

The simplest way to build and install the nginx web server with the passenger module is to run the script passenger-install-nginx-module.

> /opt/passenger-6.0.0/bin
> ./passenger-install-nginx-module --prefix=/opt/nginx --nginx-source-dir=/opt/src/nginx-1.14.2 --languages ruby

With the same passenger locality the installer modify the nginx configuration file /opt/nginx/conf/nginx.conf and output the same text:

  http {
      ...
      passenger_root /opt/passenger-6.0.0;
      passenger_ruby /usr/bin/ruby;
      ...
  }

Add a systemd service file

To start the nginx process during the boot add the file /usr/lib/systemd/system/nginx.service with the following content:

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

[Service]
Type=forking
#PIDFile=/run/nginx.pid
PIDFile=/opt/nginx/logs/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /opt/nginx/logs/nginx.pid
#ExecStartPre=/usr/sbin/nginx -t
#ExecStart=/usr/sbin/nginx
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true

[Install]
WantedBy=multi-user.target

The paths are modified to start the executable /opt/nginx/sbin/nginx.

> systemctl start nginx
> systemctl enable nginx

Nginx Configuration

For http add the two lines and comment out the four lines:

    server {
        listen       80;
...
        root         /var/www/redmine-4.0.0/public;
        passenger_enabled on;
        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}
...
       }

For https add you can use lines like this:

    # HTTPS server
    #
    server {
        listen       443 ssl;
        server_name  my_web_serv.domain;

        ssl_certificate      /etc/ssl/certs/my_web_serv.pem;
        ssl_certificate_key  /etc/ssl/private/privkey.pem;

        root         /var/www/redmine-4.0.0/public;
        passenger_enabled on;
    }

Apache