HowTo install Redmine on CentOS 5 » History » Version 111

Stephan Schuberth, 2012-03-27 23:03

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