Project

General

Profile

F29Installation » History » Version 19

Gerd Pokorra, 2019-01-02 09:35

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 19 Gerd Pokorra
Edit the file @/var/lib/pgsql/data/pg_hba.conf@ to specify that the client has to supply password processed with MD5 algorithm:
88
89
<pre>#host    all             all             127.0.0.1/32            ident
90
host    all             all             127.0.0.1/32            md5
91
# IPv6 local connections:
92
#host    all             all             ::1/128                 ident
93
host    all             all             ::1/128                 md5
94
</pre>
95
96
You can check the access with the following command:
97
98
<pre>> su - postgres
99
> psql -h localhost4 -U redmine redmine
100
</pre>
101
102 16 Gerd Pokorra
h3. MySQL
103 12 Gerd Pokorra
104 11 Gerd Pokorra
h2. Firewall
105
106
Open the firewall for https:
107
108
<pre>> firewall-cmd --add-service=https
109
> firewall-cmd --permanent --add-service=https
110
</pre>
111
112 1 Gerd Pokorra
h2. Web Server
113
114 5 Gerd Pokorra
h3. Nginx/Passenger
115 2 Gerd Pokorra
116
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@:
117
118
* passenger-6.0.0
119
* nginx-1.14.2
120
121 4 Gerd Pokorra
h4. Downloading the sources:
122 2 Gerd Pokorra
123
<pre>Passenger
124
125
> cd /opt
126
> wget https://s3.amazonaws.com/phusion-passenger/releases/passenger-6.0.0.tar.gz
127
> tar xf passenger-6.0.0.tar.gz
128
129
Nginx
130
131
> wget http://nginx.org/download/nginx-1.14.2.tar.gz
132
> mkdir /opt/src
133
> cd /opt/src
134
> tar xf nginx-1.14.2.tar.gz
135
</pre>
136 1 Gerd Pokorra
137 3 Gerd Pokorra
h4. Installing additional packages
138
139
For the build of @passenger@ and @nginx@ the following additional packages are needed to be installed:
140
141
<pre>> dnf install install gcc-c++ libcurl-devel openssl-devel zlib-devel
142
</pre>
143 1 Gerd Pokorra
144 5 Gerd Pokorra
h4. Execute the ruby script for building and installing
145 1 Gerd Pokorra
146 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@.
147
148
<pre>> /opt/passenger-6.0.0/bin
149
> ./passenger-install-nginx-module --prefix=/opt/nginx --nginx-source-dir=/opt/src/nginx-1.14.2 --languages ruby
150
</pre>
151 3 Gerd Pokorra
152 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:
153 6 Gerd Pokorra
154
<pre>  http {
155
      ...
156
      passenger_root /opt/passenger-6.0.0;
157
      passenger_ruby /usr/bin/ruby;
158
      ...
159
  }
160
</pre>
161
162 8 Gerd Pokorra
h4. Add a systemd service file
163
164
To start the @nginx@ process during the boot add the file @/usr/lib/systemd/system/nginx.service@ with the following content:
165
166
<pre>[Unit]
167
Description=The nginx HTTP and reverse proxy server
168
After=network.target remote-fs.target nss-lookup.target
169
170
[Service]
171
Type=forking
172
#PIDFile=/run/nginx.pid
173
PIDFile=/opt/nginx/logs/nginx.pid
174
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
175
# SELinux context. This might happen when running `nginx -t` from the cmdline.
176
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
177
ExecStartPre=/usr/bin/rm -f /opt/nginx/logs/nginx.pid
178
#ExecStartPre=/usr/sbin/nginx -t
179
#ExecStart=/usr/sbin/nginx
180
ExecStartPre=/opt/nginx/sbin/nginx -t
181
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf
182
ExecReload=/bin/kill -s HUP $MAINPID
183
KillSignal=SIGQUIT
184
TimeoutStopSec=5
185
KillMode=mixed
186
PrivateTmp=true
187
188
[Install]
189
WantedBy=multi-user.target
190
</pre>
191
192
The paths are modified to start the executable @/opt/nginx/sbin/nginx@.
193
194
<pre>> systemctl start nginx
195
> systemctl enable nginx
196
</pre>
197
198 9 Gerd Pokorra
h4. Nginx Configuration
199
200
For http add the two lines and comment out the four lines:
201
202
<pre>    server {
203
        listen       80;
204
...
205
        root         /var/www/redmine-4.0.0/public;
206
        passenger_enabled on;
207
        #location / {
208
        #    root   html;
209
        #    index  index.html index.htm;
210
        #}
211
...
212
       }
213
</pre>
214
215 10 Gerd Pokorra
For https add you can use lines like this:
216
217
<pre>    # HTTPS server
218
    #
219
    server {
220
        listen       443 ssl;
221
        server_name  my_web_serv.domain;
222
223
        ssl_certificate      /etc/ssl/certs/my_web_serv.pem;
224
        ssl_certificate_key  /etc/ssl/private/privkey.pem;
225
226
        root         /var/www/redmine-4.0.0/public;
227
        passenger_enabled on;
228
    }
229
</pre>
230
231 1 Gerd Pokorra
h3. Apache