FedoraInstallation » History » Version 3

Jamie McPeek, 2014-08-16 22:06

1 1 Jamie McPeek
h1. HowTo Install Redmine 2.5.x on Fedora 20
2 1 Jamie McPeek
3 1 Jamie McPeek
{{toc}}
4 1 Jamie McPeek
5 1 Jamie McPeek
h2. System Requirements
6 1 Jamie McPeek
7 1 Jamie McPeek
No assumptions are made about the initial state of the system in this guide. The guide can be followed for either 32-bit or 64-bit systems - though all testing and the original installation was performed on a 64-bit system.
8 1 Jamie McPeek
9 1 Jamie McPeek
The hardware requirements are not significant, so a small VM with 10gb storage and 1GB ram and 1GB swap file should be sufficient.
10 1 Jamie McPeek
11 1 Jamie McPeek
This guide can be used on top of an already existing system or, from scratch, downloading from the Fedora website.
12 1 Jamie McPeek
13 1 Jamie McPeek
An ISO for installation can be downloaded from "here":http://fedoraproject.org/en/get-fedora.
14 1 Jamie McPeek
15 1 Jamie McPeek
The rest of the guide assumes that you have created a user account with wheel/administrator access and are logged in to the terminal directly or through SSH.
16 2 Jamie McPeek
17 2 Jamie McPeek
h2. Updating the System
18 2 Jamie McPeek
19 2 Jamie McPeek
Before beginning, you should ensure all of your installed packages are up-to-date. This can be done by issuing the following command:
20 2 Jamie McPeek
21 2 Jamie McPeek
<pre>
22 2 Jamie McPeek
$ sudo yum update
23 2 Jamie McPeek
</pre>
24 2 Jamie McPeek
25 2 Jamie McPeek
If the kernel was updated as part of this command, you should perform a restart to begin using it:
26 2 Jamie McPeek
27 2 Jamie McPeek
<pre>
28 2 Jamie McPeek
$ sudo shutdown -r now
29 2 Jamie McPeek
</pre>
30 2 Jamie McPeek
31 2 Jamie McPeek
h2. Installing Dependencies
32 3 Jamie McPeek
33 3 Jamie McPeek
Before beginning the installation of Redmine, there are a number of dependencies which need to be installed.
34 3 Jamie McPeek
35 3 Jamie McPeek
Depending on your needs, some of these may not be necessary.
36 3 Jamie McPeek
37 3 Jamie McPeek
<pre>
38 3 Jamie McPeek
apr-devel         - For Passenger
39 3 Jamie McPeek
apr-util-devel    - For Passenger
40 3 Jamie McPeek
curl-devel        - For Passenger
41 3 Jamie McPeek
gcc               - For JSON
42 3 Jamie McPeek
gcc-c++           - For Passenger
43 3 Jamie McPeek
git               - (Optional) For SCM Integration
44 3 Jamie McPeek
httpd             - Web Server
45 3 Jamie McPeek
httpd-devel       - For Passenger
46 3 Jamie McPeek
ImageMagick-devel - For RMagick
47 3 Jamie McPeek
mariadb-devel     - For Redmine
48 3 Jamie McPeek
mariadb-server    - For Redmine
49 3 Jamie McPeek
nano              - Configuration Editor
50 3 Jamie McPeek
ruby-devel        - For Redmine
51 3 Jamie McPeek
tar               - For Decompression
52 3 Jamie McPeek
wget              - For Download
53 3 Jamie McPeek
</pre>
54 3 Jamie McPeek
55 3 Jamie McPeek
All of these can be installed prior to starting with a single command:
56 3 Jamie McPeek
57 3 Jamie McPeek
<pre>
58 3 Jamie McPeek
$ sudo yum install apr-devel apr-util-devel curl-devel gcc gcc-c++ git httpd httpd-devel ImageMagick-devel mariadb-devel mariadb-server nano ruby-devel tar wget
59 3 Jamie McPeek
</pre>
60 3 Jamie McPeek
61 3 Jamie McPeek
h2. Disable SELinux
62 3 Jamie McPeek
63 3 Jamie McPeek
Some users have noted issues installing Redmine with SELinux active. This can be disabled via the following command:
64 3 Jamie McPeek
65 3 Jamie McPeek
<pre>
66 3 Jamie McPeek
# sudo setenforce 0
67 3 Jamie McPeek
</pre>
68 3 Jamie McPeek
69 3 Jamie McPeek
Steps will be taken throughout the remainder of the guide to ensure that, if desired, SELinux can be re-enabled after and still maintain a fully functional Redmine installation.
70 3 Jamie McPeek
71 3 Jamie McPeek
h2. Enable Server Environment
72 3 Jamie McPeek
73 3 Jamie McPeek
With all of the dependencies installed, we need to ensure that the servers are setup, ready for use, and accessible external to the OS installation.
74 3 Jamie McPeek
75 3 Jamie McPeek
The first step is to open the standard port 80 in the firewall for the web server:
76 3 Jamie McPeek
77 3 Jamie McPeek
<pre>
78 3 Jamie McPeek
$ sudo firewall-cmd --zone=public --add-service=http
79 3 Jamie McPeek
$ sudo firewall-cmd --permanent --zone=public --add-service=http
80 3 Jamie McPeek
</pre>
81 3 Jamie McPeek
82 3 Jamie McPeek
The first line opens the port in the current configuration. The second line ensures that, after a restart, that port will remain open and available.
83 3 Jamie McPeek
84 3 Jamie McPeek
The second step is to start the web server and database server:
85 3 Jamie McPeek
86 3 Jamie McPeek
<pre>
87 3 Jamie McPeek
$ sudo systemctl start httpd mariadb
88 3 Jamie McPeek
$ sudo systemctl enable httpd mariadb
89 3 Jamie McPeek
</pre>
90 3 Jamie McPeek
91 3 Jamie McPeek
Similar to the firewall commands, the first line starts the servers in the current configuration. The second line ensures that, after a restart, both servers come back online.