Project

General

Profile

Redmine on CentOS installation HOWTO » History » Version 17

Stephan Schuberth, 2012-03-28 02:02

1 1 Stephan Schuberth
h1. Redmine on CentOS installation HOWTO
2
3
{{>toc}}
4
5 2 Stephan Schuberth
This works with CentOS versions 5 and 6 and describes how to get Redmine 1.3.2 set up.
6 1 Stephan Schuberth
7
h2. Assumptions
8
9
* Apache is up and running
10
* Apache has previously been used and works quite well 
11
* MySQL is up and running
12
* MySQL has previously been used and works quite well
13
* Your are logged as root
14
* The next steps are done successively without errors
15
16
h1. Install pre-dependencies
17
18
<pre>yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel</pre>
19
20
h2. Ruby
21
22
Things after *#* are comments, and it is no use to type this stuff in ;) 
23
<pre>cd ~/Downloads  # YOUR FOLDER OF CHOICE
24
ftp ftp.ruby-lang.org
25
</pre>
26
27
h3. FTP session
28
29
<pre>ftp> Anonymous  # USERLOGIN
30
ftp> 'none', just hit Enter  # NO PASSWORD
31
ftp> cd /pub/ruby
32
ftp> get ruby-1.8.7.pXXX.tar.gz  # XXX is currently 358, as of 03/2012
33
ftp> bye</pre>
34
35
h3. Untar
36
37
<pre>tar zxvf ruby-1.8.7.pXXX.tar.gz</pre>
38
39
h3. Install
40
41
<pre>cd ruby-1.8.7.pXXX
42
./configure
43
make
44
make install</pre>
45
46
h3. Check installation
47
48
If this does not work, it is probably because there is no ruby at /usr/bin to be found. 
49
If it works, skip directly to "Get Gems 1.4.2".
50
<pre>ruby -v</pre>
51
52 6 Stephan Schuberth
h3. Fix dependencies
53 1 Stephan Schuberth
54
(Only in case _ruby -v_ is *NOT* working)
55
<pre>which ruby  # TO CHECK WHERE IT SHOULD BE
56
whereis ruby  # TO CHECK WHERE IT IS INSTALLED</pre>
57
_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
59 6 Stephan Schuberth
h4. Fix via adding /usr/local/bin to $PATH
60
61 9 Stephan Schuberth
(Do this with your editor of choice, if you do not like nano.)
62 6 Stephan Schuberth
<pre>nano /etc/profile</pre>
63
64
Make the section with _pathmunge_ look alike like this:
65
<pre>#Path manupulation
66
if [ "$EUID" = "0" ]; then
67
    pathmunge /sbin
68
    pathmunge /usr/sbin
69
    pathmunge /usr/local/sbin
70
    pathmunge /usr/local/bin  # ADDED THIS
71
else
72
    pathmunge /usr/local/bin after  # ADDED THIS
73
    pathmunge /usr/local/sbin after
74
    pathmunge /usr/sbin after
75
    pathmunge /sbin
76
fi</pre>
77
78
OR ADD THIS AT THE END OF THE FILE:
79
80
<pre>nano /etc/profile
81
export PATH="$PATH:/usr/local/bin"</pre>
82
83 15 Stephan Schuberth
This sets the PATH for all Users beside root. For this setup you want to change the PATH for root, too:
84 6 Stephan Schuberth
85
<pre>nano ~/.bashrc
86 1 Stephan Schuberth
export PATH="$PATH:/usr/local/bin"</pre>
87 15 Stephan Schuberth
88
Logout your user and login again, to make the changes work.
89 6 Stephan Schuberth
90
h4. Fix via Symlink Creation 
91
92 7 Stephan Schuberth
This is not recommended, since if the ruby dependency is broken, others will likely be later on, too. Repair this by adding the folder to the $PATH variable like described before, else _gem_, _rake_, _bundle_, _passenger-install-apache2-module_ will not work either... you would have to creat symlinks for them, too.
93 6 Stephan Schuberth
Symlinks are created like this
94
95 1 Stephan Schuberth
<pre>ln -s /usr/local/bin/ruby /usr/bin/ruby</pre>
96 6 Stephan Schuberth
97 8 Stephan Schuberth
h4. Verify ruby to be working
98 6 Stephan Schuberth
99 16 Stephan Schuberth
<pre>which ruby  # MUST RETURN PATH TO RUBY
100
ruby -v  # MUST RETURN RUBY VERSION
101 1 Stephan Schuberth
cd ..</pre>
102 16 Stephan Schuberth
103 17 Stephan Schuberth
Now it should work. Else you misspelled something? Maybe did not log out and log on again with your current user?
104 1 Stephan Schuberth
105
h2. RubyGems 1.4.2 
106
107
*Does not work with Gems 1.5!*
108
109
h3. Download
110
111
<pre>wget http://production.cf.rubygems.org/rubygems/rubygems-1.4.2.tgz</pre>
112
113
h3. Untar
114
115
<pre>tar zxvf rubygems-1.4.2.tgz</pre>
116
117
h3. Setup
118
119
<pre>cd rubygems-1.4.2
120
ruby setup.rb</pre>
121
122
h3. Check installation
123
124
<pre>gem -v</pre>
125
126
h3. In case this does not work...
127
128
... the solution is again creating a symlink, analogical like described in the ruby section above.
129
130
h2. Passenger
131
132
h3. Regular install method
133
134
Requires gcc.
135
136
<pre>gem install passenger
137
passenger-install-apache2-module</pre>
138
139 14 Stephan Schuberth
The install process is interactive and you wil be told what to do. How to install missing dependencies is described exactly. JUST READ!
140 1 Stephan Schuberth
141
h3. Alternative install method 
142
143
Install mod_passenger RPM for Apache from the following location:
144
145
> http://passenger.stealthymonkeys.com/
146
147
_RHEL/CentOS 5_
148
<pre>rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm
149
yum install mod_passenger</pre>
150
151
_RHEL/CentOS 6_
152
<pre>rpm --import http://passenger.stealthymonkeys.com/RPM-GPG-KEY-stealthymonkeys.asc
153
yum install http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm
154
yum install mod_passenger</pre>
155
156
h2. Restart Apache
157
158
<pre>service httpd restart</pre>
159
160
h1. Install Redmine
161
162
h3. Download
163
164
Download page: 
165
> http://rubyforge.org/frs/?group_id=1850
166
167
<pre>wget http://rubyforge.org/frs/download.php/75910/redmine-1.3.2.tar.gz # GET LATEST VERSION ON RUBYFORGE</pre>
168
169
h3. Untar
170
171
<pre>tar zxvf redmine-1.3.2.tar.gz</pre>
172
173
h3. Copy the folder to its HTTP document root folder
174
175
<pre>mkdir /var/www/redmine
176
cp -av redmine-1.3.2/* /var/www/redmine</pre>
177
178 13 Stephan Schuberth
h1. Link Redmine to the Database
179
180
h2. Install MySQL DB Server
181
182
<pre>yum install mysql-server
183
chkconfig mysqld on
184
service mysqld start
185
/usr/bin/mysql_secure_installation</pre>
186
187
h2. Create a MySQL database to use with Redmine
188
189
h3. Latest MySQL Version
190
191
> start the mysql client (@mysql -u root -p@) and enter the following commands:
192
> > <pre>create database redmine character set utf8;
193
create user 'redmine'@'localhost' identified by 'my_password';
194
grant all privileges on redmine.* to 'redmine'@'localhost'; </pre>
195
196
h3. For versions of MySQL prior to 5.0.2
197
198
> Skip the 'create user' step and do instead:
199
> >  <pre> grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';</pre>
200
201
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.
202
203
h2. Configure /var/www/redmine/config/database.yml 
204
205
<pre>cp database.yml.example database.yml</pre>
206
207
TODO: describe what to change there...
208
209 1 Stephan Schuberth
h1. Rails Settings
210
211
h2. Dependency management with bundler
212
213
For more info go to the "bundler site":http://gembundler.com/.
214
215
h3. Install
216
217
<pre>gem install bundler</pre>
218
219
h3. Create Gemfile
220
221
You can of course use vi/vim as your editor of choice, if you know what you are doing. ;) 
222
<pre>nano /var/www/redmine/Gemfile</pre>
223
224
h3. Register gems
225
226
Put the following into the file you just opened:
227
<pre># file: /var/www/redmine/Gemfile
228
source "http://rubygems.org"
229
gem "rake", "0.8.3"
230
gem "rack", "1.1.0"
231
gem "i18n", "0.4.2"
232
gem "rubytree", "0.5.2", :require => "tree"
233
gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay
234
gem "mysql"
235
gem "coderay", "~>0.9.7"</pre>
236
Save and exit the editor.
237
238
h3. Install the provided dependencies:
239
240 10 Stephan Schuberth
<pre>cd /var/www/redmine
241
bundle install</pre>
242 1 Stephan Schuberth
243 12 Stephan Schuberth
h2. Set environment to "production" 
244
245
Rails has the concept of environments to represent the stages of an application’s lifecycle: test, development, and production by default. 
246
Specify your choice with the RAILS_ENV environment variable. 
247
Production has less verbose logging and is a bit faster, testing and development environment are not needed anyway for your Redmine.
248
249
Uncomment the following line in file redmine/config/environment.rb:
250
251
<pre>ENV['RAILS_ENV'] ||= 'production'</pre>
252
253
h2. Generate the session store
254
255
<pre>RAILS_ENV=production bundle exec rake generate_session_store</pre>
256
257
h2. Migrate the database models
258
259
<pre>RAILS_ENV=production bundle exec rake db:migrate</pre>
260
261
h2. Load default data (optional)
262
263
<pre>RAILS_ENV=production bundle exec rake redmine:load_default_data</pre>
264
265
Follow instructions.
266
267
h2. Rename dispatch CGI files in /var/www/redmine/public/
268
269
<pre>
270
mv dispatch.cgi.example dispatch.cgi
271
mv dispatch.fcgi.example dispatch.fcgi
272
mv dispatch.rb.example dispatch.rb
273
</pre>
274 1 Stephan Schuberth
275
h1. Apache Settings
276 11 Stephan Schuberth
277
h2. Configure Apache to host the documents
278
279
more information can be found here: [[HowTo configure Apache to run Redmine]]
280 1 Stephan Schuberth
281
h2. Edit .htaccess file for CGI dispatch configuration
282
283
<pre>
284
mv htaccess.fcgi.example .htaccess
285
</pre>
286
287
h2. Fix rights for the apache user
288
289
<pre>
290
cd ..
291
chown -R apache:apache redmine-1.x
292
chmod -R 755 redmine-1.x
293
</pre>
294
295
296
297
298
299
300
This should be everything.
301
302 5 Stephan Schuberth
303
*Redmine is now installed and usable.*
304 1 Stephan Schuberth
305
*Enjoy!*