Project

General

Profile

F29Installation » History » Version 18

Gerd Pokorra, 2019-01-01 17:06

1 1 Gerd Pokorra
h1. HowTo Install Redmine 4.0.0 on Fedora 29
2
3
{{toc}}
4
5
This guide is not complete. It will be completed in the next two weeks.
6
7
h2.  System Requirements
8
9
It is assumed that the Server Edition is installed on the system in this guide.
10
11 13 Gerd Pokorra
h3. Updating the System
12
  
13
It is recommended to install Redmine on an update system. To ensure that all installed packages are up-to-date issue the following command:
14
15
<pre>> dnf update
16
</pre>
17
18 14 Gerd Pokorra
h3. Installing Dependencies
19
20
A number of dependencies need to be installed:
21
22
<pre>> dnf install rubygem-bundler
23
> dnf install rubygem-rails
24
25
> dnf install ruby-devel rubygem-rmagick
26
> dnf install gcc redhat-rpm-config
27
28
> dnf groupinstall "C Development Tools and Libraries"
29
> dnf groupinstall "Development Tools"
30
</pre>
31
32 16 Gerd Pokorra
For PostgreSQL:
33
  
34 1 Gerd Pokorra
<pre>> dnf install rubygem-pg
35
</pre>
36 17 Gerd Pokorra
37
The list of dependencies may not complete. Problems of the installation or build of a compoment can be solved by installing the necessary dependency.
38 16 Gerd Pokorra
39 12 Gerd Pokorra
h2. Obtaining Redmine (Step 1)
40
41
Get the Redmine source code by downloading the packaged release.
42
43
<pre>> dnf install wget
44
45
> mkdir /var/www
46
> cd /var/www
47
48
> wget http://www.redmine.org/releases/redmine-4.0.0.tar.gz
49
> tar xf redmine-4.0.0.tar.gz
50
</pre>
51
52
At this guide is accepted that the location of the Redmine source code is:
53
54
<pre>/var/www/redmine-4.0.0
55
</pre>
56
57
For example the nginx configuration refer to the path @/var/www/redmine-4.0.0@.
58 16 Gerd Pokorra
59
h2. Setup a local database server
60
61
This section discribes the setup of a database server that will be configured to allow access from the localhost.
62
63
h3. PostgreSQL
64
65 18 Gerd Pokorra
The followings commands are for installing the packages, initializing the database, enable and start the postgresql server, switch the user to interact with @postgres@, create an empty database and accompanying user.
66
67
<pre>> dnf install postgresql-server postgresql-contrib
68
> postgresql-setup --initdb --unit postgresql
69
 * Initializing database in '/var/lib/pgsql/data'
70
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
71
>
72
> systemctl enable postgresql
73
> systemctl start postgresql
74
> su - postgres
75
> psql
76
psql (10.6)
77
Type "help" for help.
78
79
postgres=# CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_secret' NOINHERIT VALID UNTIL 'infinity';
80
CREATE ROLE
81
postgres=# CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
82
CREATE DATABASE
83
postgres=# \q
84
> exit
85
</pre>
86
87 16 Gerd Pokorra
h3. MySQL
88 12 Gerd Pokorra
89 11 Gerd Pokorra
h2. Firewall
90
91
Open the firewall for https:
92
93
<pre>> firewall-cmd --add-service=https
94
> firewall-cmd --permanent --add-service=https
95
</pre>
96
97 1 Gerd Pokorra
h2. Web Server
98
99 5 Gerd Pokorra
h3. Nginx/Passenger
100 2 Gerd Pokorra
101
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@:
102
103
* passenger-6.0.0
104
* nginx-1.14.2
105
106 4 Gerd Pokorra
h4. Downloading the sources:
107 2 Gerd Pokorra
108
<pre>Passenger
109
110
> cd /opt
111
> wget https://s3.amazonaws.com/phusion-passenger/releases/passenger-6.0.0.tar.gz
112
> tar xf passenger-6.0.0.tar.gz
113
114
Nginx
115
116
> wget http://nginx.org/download/nginx-1.14.2.tar.gz
117
> mkdir /opt/src
118
> cd /opt/src
119
> tar xf nginx-1.14.2.tar.gz
120
</pre>
121 1 Gerd Pokorra
122 3 Gerd Pokorra
h4. Installing additional packages
123
124
For the build of @passenger@ and @nginx@ the following additional packages are needed to be installed:
125
126
<pre>> dnf install install gcc-c++ libcurl-devel openssl-devel zlib-devel
127
</pre>
128 1 Gerd Pokorra
129 5 Gerd Pokorra
h4. Execute the ruby script for building and installing
130 1 Gerd Pokorra
131 5 Gerd Pokorra
The simplest way to build and install the @nginx@ web server with the @passenger@ module is to run the script @passenger-install-nginx-module@.
132
133
<pre>> /opt/passenger-6.0.0/bin
134
> ./passenger-install-nginx-module --prefix=/opt/nginx --nginx-source-dir=/opt/src/nginx-1.14.2 --languages ruby
135
</pre>
136 3 Gerd Pokorra
137 7 Gerd Pokorra
With the same @passenger@ locality the installer modify the @nginx@ configuration file @/opt/nginx/conf/nginx.conf@ and output the same text:
138 6 Gerd Pokorra
139
<pre>  http {
140
      ...
141
      passenger_root /opt/passenger-6.0.0;
142
      passenger_ruby /usr/bin/ruby;
143
      ...
144
  }
145
</pre>
146
147 8 Gerd Pokorra
h4. Add a systemd service file
148
149
To start the @nginx@ process during the boot add the file @/usr/lib/systemd/system/nginx.service@ with the following content:
150
151
<pre>[Unit]
152
Description=The nginx HTTP and reverse proxy server
153
After=network.target remote-fs.target nss-lookup.target
154
155
[Service]
156
Type=forking
157
#PIDFile=/run/nginx.pid
158
PIDFile=/opt/nginx/logs/nginx.pid
159
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
160
# SELinux context. This might happen when running `nginx -t` from the cmdline.
161
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
162
ExecStartPre=/usr/bin/rm -f /opt/nginx/logs/nginx.pid
163
#ExecStartPre=/usr/sbin/nginx -t
164
#ExecStart=/usr/sbin/nginx
165
ExecStartPre=/opt/nginx/sbin/nginx -t
166
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
167
ExecReload=/bin/kill -s HUP $MAINPID
168
KillSignal=SIGQUIT
169
TimeoutStopSec=5
170
KillMode=mixed
171
PrivateTmp=true
172
173
[Install]
174
WantedBy=multi-user.target
175
</pre>
176
177
The paths are modified to start the executable @/opt/nginx/sbin/nginx@.
178
179
<pre>> systemctl start nginx
180
> systemctl enable nginx
181
</pre>
182
183 9 Gerd Pokorra
h4. Nginx Configuration
184
185
For http add the two lines and comment out the four lines:
186
187
<pre>    server {
188
        listen       80;
189
...
190
        root         /var/www/redmine-4.0.0/public;
191
        passenger_enabled on;
192
        #location / {
193
        #    root   html;
194
        #    index  index.html index.htm;
195
        #}
196
...
197
       }
198
</pre>
199
200 10 Gerd Pokorra
For https add you can use lines like this:
201
202
<pre>    # HTTPS server
203
    #
204
    server {
205
        listen       443 ssl;
206
        server_name  my_web_serv.domain;
207
208
        ssl_certificate      /etc/ssl/certs/my_web_serv.pem;
209
        ssl_certificate_key  /etc/ssl/private/privkey.pem;
210
211
        root         /var/www/redmine-4.0.0/public;
212
        passenger_enabled on;
213
    }
214
</pre>
215
216 1 Gerd Pokorra
h3. Apache