HowTo install Redmine on CentOS 5 » History » Version 115

Stephan Schuberth, 2012-03-27 23:08

1 115 Stephan Schuberth
h1. Redmine on CentOS installation HOWTO
2 1 Serafim J Fagundes
3 1 Serafim J Fagundes
{{>toc}}
4 115 Stephan Schuberth
5 115 Stephan Schuberth
This works with CentOS versions 5 and 6 and describes how to get Redmine 1.32 set up.
6 3 Mischa The Evil
7 94 Stephan Schuberth
h2. Assumptions
8 33 Nick Shel
9 34 Nick Shel
* Apache is up and running
10 34 Nick Shel
* Apache has previously been used and works quite well 
11 34 Nick Shel
* MySQL is up and running
12 34 Nick Shel
* MySQL has previously been used and works quite well
13 1 Serafim J Fagundes
* Your are logged as root
14 1 Serafim J Fagundes
* The next steps are done successively without errors
15 30 Nick Shel
16 71 Stephan Schuberth
h1. Install pre-dependencies
17 1 Serafim J Fagundes
18 1 Serafim J Fagundes
<pre>yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel</pre>
19 28 Nick Shel
20 71 Stephan Schuberth
h2. Ruby
21 45 Stephan Schuberth
22 44 Stephan Schuberth
Things after *#* are comments, and it is no use to type this stuff in ;) 
23 41 Stephan Schuberth
<pre>cd ~/Downloads  # YOUR FOLDER OF CHOICE
24 1 Serafim J Fagundes
ftp ftp.ruby-lang.org
25 1 Serafim J Fagundes
</pre>
26 45 Stephan Schuberth
27 44 Stephan Schuberth
h3. FTP session
28 45 Stephan Schuberth
29 41 Stephan Schuberth
<pre>ftp> Anonymous  # USERLOGIN
30 1 Serafim J Fagundes
ftp> 'none', just hit Enter  # NO PASSWORD
31 1 Serafim J Fagundes
ftp> cd /pub/ruby
32 1 Serafim J Fagundes
ftp> get ruby-1.8.7.pXXX.tar.gz  # XXX is currently 358, as of 03/2012
33 41 Stephan Schuberth
ftp> bye</pre>
34 45 Stephan Schuberth
35 64 Stephan Schuberth
h3. Untar
36 45 Stephan Schuberth
37 41 Stephan Schuberth
<pre>tar zxvf ruby-1.8.7.pXXX.tar.gz</pre>
38 45 Stephan Schuberth
39 44 Stephan Schuberth
h3. Install
40 45 Stephan Schuberth
41 41 Stephan Schuberth
<pre>cd ruby-1.8.7.pXXX
42 1 Serafim J Fagundes
./configure
43 1 Serafim J Fagundes
make
44 41 Stephan Schuberth
make install</pre>
45 45 Stephan Schuberth
46 89 Stephan Schuberth
h3. Check installation
47 45 Stephan Schuberth
48 54 Stephan Schuberth
If this does not work, it is probably because there is no ruby at /usr/bin to be found. 
49 1 Serafim J Fagundes
If it works, skip directly to "Get Gems 1.4.2".
50 55 Stephan Schuberth
<pre>ruby -v</pre>
51 53 Stephan Schuberth
52 49 Stephan Schuberth
h3. Fix dependencies with a symlink
53 51 Stephan Schuberth
54 49 Stephan Schuberth
(Only in case _ruby -v_ is *NOT* working)
55 1 Serafim J Fagundes
<pre>which ruby  # TO CHECK WHERE IT SHOULD BE
56 43 Stephan Schuberth
whereis ruby  # TO CHECK WHERE IT IS INSTALLED</pre>
57 49 Stephan Schuberth
_which_ returns like /usr/bin/ along with other directories (where ruby is expected to be), and _whereis_ returns like /usr/local/bin/ruby (thats where ruby actually lies).
58 1 Serafim J Fagundes
59 49 Stephan Schuberth
Create the Link:
60 49 Stephan Schuberth
<pre>ln -s /usr/local/bin/ruby /usr/bin/ruby</pre>
61 49 Stephan Schuberth
Check again if it is working:
62 49 Stephan Schuberth
<pre>ruby -v # NOW IT MUST RETURN RUBY VERSION, ELSE SOMETHING ELSE IS BROKEN
63 41 Stephan Schuberth
cd ..</pre>
64 38 Stephan Schuberth
65 72 Stephan Schuberth
h2. RubyGems 1.4.2 
66 72 Stephan Schuberth
67 72 Stephan Schuberth
*Does not work with Gems 1.5!*
68 1 Serafim J Fagundes
69 68 Stephan Schuberth
h3. Download
70 63 Stephan Schuberth
71 63 Stephan Schuberth
<pre>wget http://production.cf.rubygems.org/rubygems/rubygems-1.4.2.tgz</pre>
72 63 Stephan Schuberth
73 69 Stephan Schuberth
h3. Untar
74 63 Stephan Schuberth
75 63 Stephan Schuberth
<pre>tar zxvf rubygems-1.4.2.tgz</pre>
76 63 Stephan Schuberth
77 63 Stephan Schuberth
h3. Setup
78 63 Stephan Schuberth
79 63 Stephan Schuberth
<pre>cd rubygems-1.4.2
80 63 Stephan Schuberth
ruby setup.rb</pre>
81 63 Stephan Schuberth
82 88 Stephan Schuberth
h3. Check installation
83 63 Stephan Schuberth
84 63 Stephan Schuberth
<pre>gem -v</pre>
85 62 Stephan Schuberth
86 62 Stephan Schuberth
h3. In case this does not work...
87 62 Stephan Schuberth
88 62 Stephan Schuberth
... the solution is again creating a symlink, analogical like described in the ruby section above.
89 3 Mischa The Evil
90 84 Stephan Schuberth
h2. Passenger
91 73 Stephan Schuberth
92 83 Stephan Schuberth
h3. Regular install method
93 83 Stephan Schuberth
94 73 Stephan Schuberth
Requires gcc.
95 1 Serafim J Fagundes
96 41 Stephan Schuberth
<pre>gem install passenger
97 41 Stephan Schuberth
passenger-install-apache2-module</pre>
98 26 Anonymous
99 79 Stephan Schuberth
If the second line does not work, do *whereis passenger* to find out where it is installed.
100 1 Serafim J Fagundes
So you can execute it like */usr/local/bin/passenger-install-apache2-module* ...
101 84 Stephan Schuberth
102 84 Stephan Schuberth
The install process is interactive and you wil be told what to do. READ!
103 79 Stephan Schuberth
104 81 Stephan Schuberth
h3. Alternative install method 
105 82 Stephan Schuberth
106 97 Stephan Schuberth
Install mod_passenger RPM for Apache from the following location:
107 97 Stephan Schuberth
108 97 Stephan Schuberth
> http://passenger.stealthymonkeys.com/
109 56 Stephan Schuberth
110 81 Stephan Schuberth
_RHEL/CentOS 5_
111 1 Serafim J Fagundes
<pre>rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm
112 26 Anonymous
yum install mod_passenger</pre>
113 56 Stephan Schuberth
114 81 Stephan Schuberth
_RHEL/CentOS 6_
115 41 Stephan Schuberth
<pre>rpm --import http://passenger.stealthymonkeys.com/RPM-GPG-KEY-stealthymonkeys.asc
116 26 Anonymous
yum install http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm
117 41 Stephan Schuberth
yum install mod_passenger</pre>
118 26 Anonymous
119 40 Stephan Schuberth
h2. Restart Apache
120 1 Serafim J Fagundes
121 1 Serafim J Fagundes
<pre>service httpd restart</pre>
122 1 Serafim J Fagundes
123 75 Stephan Schuberth
h1. Install Redmine
124 74 Stephan Schuberth
125 93 Stephan Schuberth
h3. Download
126 3 Mischa The Evil
127 98 Stephan Schuberth
Download page: 
128 98 Stephan Schuberth
> http://rubyforge.org/frs/?group_id=1850
129 1 Serafim J Fagundes
130 92 Stephan Schuberth
<pre>wget http://rubyforge.org/frs/download.php/75910/redmine-1.3.2.tar.gz # GET LATEST VERSION ON RUBYFORGE</pre>
131 91 Stephan Schuberth
132 93 Stephan Schuberth
h3. Untar
133 91 Stephan Schuberth
134 92 Stephan Schuberth
<pre>tar zxvf redmine-1.3.2.tar.gz</pre>
135 16 Steven Verbeek
136 93 Stephan Schuberth
h3. Copy the folder to its HTTP document root folder
137 1 Serafim J Fagundes
138 99 Stephan Schuberth
<pre>mkdir /var/www/redmine
139 108 Stephan Schuberth
cp -av redmine-1.3.2/* /var/www/redmine</pre>
140 16 Steven Verbeek
141 113 Stephan Schuberth
h1. Configure Apache to host the documents
142 1 Serafim J Fagundes
143 40 Stephan Schuberth
more information can be found here: [[HowTo configure Apache to run Redmine]]
144 1 Serafim J Fagundes
145 109 Stephan Schuberth
h1. Link Redmine to the Database
146 1 Serafim J Fagundes
147 110 Stephan Schuberth
h2. Install MySQL DB Server
148 1 Serafim J Fagundes
149 1 Serafim J Fagundes
<pre>yum install mysql-server
150 1 Serafim J Fagundes
chkconfig mysqld on
151 1 Serafim J Fagundes
service mysqld start
152 1 Serafim J Fagundes
/usr/bin/mysql_secure_installation</pre>
153 1 Serafim J Fagundes
154 110 Stephan Schuberth
h2. Create a MySQL database to use with Redmine
155 110 Stephan Schuberth
156 1 Serafim J Fagundes
h3. Latest MySQL Version
157 1 Serafim J Fagundes
158 1 Serafim J Fagundes
> start the mysql client (@mysql -u root -p@) and enter the following commands:
159 1 Serafim J Fagundes
> > <pre>create database redmine character set utf8;
160 1 Serafim J Fagundes
create user 'redmine'@'localhost' identified by 'my_password';
161 1 Serafim J Fagundes
grant all privileges on redmine.* to 'redmine'@'localhost'; </pre>
162 1 Serafim J Fagundes
163 1 Serafim J Fagundes
h3. For versions of MySQL prior to 5.0.2
164 1 Serafim J Fagundes
165 111 Stephan Schuberth
> Skip the 'create user' step and do instead:
166 1 Serafim J Fagundes
> >  <pre> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';</pre>
167 1 Serafim J Fagundes
168 110 Stephan Schuberth
Now the database is created and a user to be used with it. Also the user has the rights to work on the database that was created.
169 1 Serafim J Fagundes
170 1 Serafim J Fagundes
h2. Configure /var/www/redmine/config/database.yml 
171 1 Serafim J Fagundes
172 1 Serafim J Fagundes
<pre>cp database.yml.example database.yml</pre>
173 1 Serafim J Fagundes
174 1 Serafim J Fagundes
todo: describe what to change there...
175 1 Serafim J Fagundes
176 1 Serafim J Fagundes
h1. Rails Settings
177 1 Serafim J Fagundes
178 101 Stephan Schuberth
h2. Dependency management with bundler
179 101 Stephan Schuberth
180 101 Stephan Schuberth
For more info go to the "bundler site":http://gembundler.com/.
181 101 Stephan Schuberth
182 101 Stephan Schuberth
h3. Install
183 101 Stephan Schuberth
184 101 Stephan Schuberth
<pre>gem install bundler</pre>
185 101 Stephan Schuberth
186 104 Stephan Schuberth
h3. Create Gemfile
187 101 Stephan Schuberth
188 107 Stephan Schuberth
You can of course use vi/vim as your editor of choice, if you know what you are doing. ;) 
189 102 Stephan Schuberth
<pre>nano /var/www/redmine/Gemfile</pre>
190 101 Stephan Schuberth
191 106 Stephan Schuberth
192 105 Stephan Schuberth
h3. Register gems
193 1 Serafim J Fagundes
194 105 Stephan Schuberth
Put the following into the file you just opened:
195 101 Stephan Schuberth
<pre># file: /var/www/redmine/Gemfile
196 101 Stephan Schuberth
source "http://rubygems.org"
197 101 Stephan Schuberth
gem "rake", "0.8.3"
198 101 Stephan Schuberth
gem "rack", "1.1.0"
199 101 Stephan Schuberth
gem "i18n", "0.4.2"
200 101 Stephan Schuberth
gem "rubytree", "0.5.2", :require => "tree"
201 101 Stephan Schuberth
gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay
202 1 Serafim J Fagundes
gem "mysql"
203 101 Stephan Schuberth
gem "coderay", "~>0.9.7"</pre>
204 102 Stephan Schuberth
Save and exit the editor.
205 101 Stephan Schuberth
206 103 Stephan Schuberth
h3. Install the provided dependencies:
207 101 Stephan Schuberth
208 101 Stephan Schuberth
<pre>bundle install</pre>
209 101 Stephan Schuberth
210 101 Stephan Schuberth
h2. OPTIONAL: Set the production environment 
211 7 Thibault B
212 1 Serafim J Fagundes
Uncomment the following line in file redmine/config/environment.rb:
213 3 Mischa The Evil
214 1 Serafim J Fagundes
<pre>ENV['RAILS_ENV'] ||= 'production'</pre>
215 1 Serafim J Fagundes
216 40 Stephan Schuberth
h2. Generate the session store
217 3 Mischa The Evil
218 1 Serafim J Fagundes
<pre>RAILS_ENV=production bundle exec rake generate_session_store</pre>
219 1 Serafim J Fagundes
220 40 Stephan Schuberth
h2. Migrate the database models
221 3 Mischa The Evil
222 1 Serafim J Fagundes
<pre>RAILS_ENV=production bundle exec rake db:migrate</pre>
223 1 Serafim J Fagundes
224 40 Stephan Schuberth
h2. Load default data (optional)
225 3 Mischa The Evil
226 1 Serafim J Fagundes
<pre>RAILS_ENV=production bundle exec rake redmine:load_default_data</pre>
227 1 Serafim J Fagundes
228 1 Serafim J Fagundes
Follow instructions.
229 25 Johannes M.
230 40 Stephan Schuberth
h2. Rename dispatch CGI files in /var/www/redmine/public/
231 3 Mischa The Evil
232 3 Mischa The Evil
<pre>
233 1 Serafim J Fagundes
mv dispatch.cgi.example dispatch.cgi
234 1 Serafim J Fagundes
mv dispatch.fcgi.example dispatch.fcgi
235 3 Mischa The Evil
mv dispatch.rb.example dispatch.rb
236 1 Serafim J Fagundes
</pre>
237 1 Serafim J Fagundes
238 78 Stephan Schuberth
h1. Apache Settings
239 78 Stephan Schuberth
240 40 Stephan Schuberth
h2. Edit .htaccess file for CGI dispatch configuration
241 5 Mauro Mazzieri
242 5 Mauro Mazzieri
<pre>
243 5 Mauro Mazzieri
mv htaccess.fcgi.example .htaccess
244 1 Serafim J Fagundes
</pre>
245 1 Serafim J Fagundes
246 85 Stephan Schuberth
h2. Fix rights for the apache user
247 3 Mischa The Evil
248 3 Mischa The Evil
<pre>
249 1 Serafim J Fagundes
cd ..
250 1 Serafim J Fagundes
chown -R apache:apache redmine-1.x
251 3 Mischa The Evil
chmod -R 755 redmine-1.x
252 2 Serafim J Fagundes
</pre>
253 1 Serafim J Fagundes
254 1 Serafim J Fagundes
255 86 Stephan Schuberth
256 86 Stephan Schuberth
257 86 Stephan Schuberth
258 86 Stephan Schuberth
259 86 Stephan Schuberth
This should be everything.
260 86 Stephan Schuberth
*
261 86 Stephan Schuberth
Redmine is now installed and usable.*
262 86 Stephan Schuberth
263 86 Stephan Schuberth
*Enjoy!*