Project

General

Profile

HowTo Install Redmine in Ubuntu » History » Version 5

Roger Lipscombe, 2010-06-16 21:21

1 3 Sam Wilson
h1. Ubuntu 10.4 LTS
2
3
As of 10.4, Redmine is available through Ubuntu's package manager, and installation is simple:
4
5
> $ sudo apt-get install redmine redmine-mysql
6
7
The second package, _redmine-mysql_, can be replaced by either _redmine-pgsql_ or _redmine-sqlite_ if you want to use either of those databases.
8
9
Redmine will now be installed in @/usr/share/redmine@ and @/etc/redmine@
10
11
h2. Configuration
12
13
Symlink @/usr/share/redmine/public@ to your desired web-accessible location.  E.g.:
14
15
> $ ln /usr/share/redmine/public /var/www/redmine
16
17
The other files that you need to modify/create are as follows:
18
19
@/etc/redmine/database.yml@:
20
21
<pre>
22
production:
23
  adapter: mysql
24
  database: redmine
25
  host: localhost
26
  username: redmine
27
  password: pa55w0rd
28
  encoding: utf8
29
</pre>
30
31
@/user/share/redmine/public/dispatch.cgi@:
32
33
<pre>
34
#!/usr/bin/ruby
35
36
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
37
38
require "dispatcher"
39
40
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
41
Dispatcher.dispatch
42
</pre>
43
44 4 Sam Wilson
@/usr/share/redmine/public/.htaccess@:
45 3 Sam Wilson
46
<pre>
47
RewriteEngine On
48
RewriteBase /redmine
49
RewriteRule ^$ index.html [QSA]
50
RewriteRule ^([^.]+)$ $1.html [QSA]
51
RewriteCond %{REQUEST_FILENAME} !-f
52
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
53
</pre>
54
55
And that's it!  If these instructions didn't work for you, please expand them to include whatever is needed.
56
57 5 Roger Lipscombe
h1. Redmine Installation on Ubuntu 10.4 using Passenger
58
59
> $ sudo apt-get install redmine redmine-mysql
60
61
The second package, _redmine-mysql_, can be replaced by either _redmine-pgsql_ or _redmine-sqlite_ if you want to use either of those databases.
62
63
Ubuntu should prompt you for all the interesting details.
64
65
Redmine will now be installed in @/usr/share/redmine@ and @/etc/redmine@
66
67
h2. Configuration
68
69
Symlink @/usr/share/redmine/public@ to your desired web-accessible location.  E.g.:
70
71
> $ ln /usr/share/redmine/public /var/www/redmine
72
73
By default, passenger runs as 'nobody', so you'll need to fix that. In @/etc/apache2/mods-available/passenger.conf@, add a @PassengerDefaultUser www-data@ directive.
74
75
You'll also need to configure the @/var/www/redmine@ location in @/etc/apache2/sites-available/default@:
76
77
<pre><Directory /var/www/redmine>
78
    RailsBaseURI /redmine
79
</Directory>
80
</pre>
81
82
> $ sudo a2enmod passenger
83
84
Restart apache2 and you should be good to go.
85
86 3 Sam Wilson
h1. Redmine Installation on Virtual or Normal Ubuntu < 10.4
87 1 Umit Uzun
88 2 Sam Wilson
This page is a guide to installing Redmine on either a virtual or actual installation of the Ubuntu operating system.  If you follow all instructions correctly you will be installed your Redmine server successfully almost an hour.
89 1 Umit Uzun
90 2 Sam Wilson
h2. Step 1: Install Ubuntu
91 1 Umit Uzun
92 2 Sam Wilson
If you are installing on a non-virtual Ubuntu instance, please skip this section.
93 1 Umit Uzun
94 2 Sam Wilson
*Installing VirtualBox:*
95
96
1.Download last version of Sun VirtualBox (version 3.0.10 or newer) tool in your system.
97 1 Umit Uzun
2.Install to your system by following the instructions.
98
99
*Installing Ubuntu on VirtualBox:*
100
101
1.Download last version of Ubuntu(version 9.10 or newer) OS in your system.
102
2.After installed VirtualBox on your system you will create a new virtual operating which will be Linux type and Ubuntu subtype. If you don't know anything about VirtualBox and/or its usage please refer to the google.
103
104
3.While installing Ubuntu you should type the related configurations as follows:
105
(These all configurations are optional, you can give any name what you what.)
106
Q: What is your name? A: Redmine Server
107
Q: What name do you want to use to login? A: redmine
108
Q: Choose to password to keep your account safe? A: redmine
109
Q: What is the name of this computer? A: redmine-server
110
Choose “Log in automatically.” radio button.
111
112
4.When you finished up installation all of them open up your new VirtualBox Ubuntu OS and open up terminal(console) screen and  issuing these commands:
113
> sudo apt-get update
114
> sudo apt-get upgrade
115
116
*Configuring VirtualBox:*
117
118
1.If you want to reach your VirtualBox Ubuntu OS from different machine, you have to configure VirtualBox Ubuntu OS's network setting to Bridged Adapter. So you can reach your VirtualBox Ubuntu from internal IP address easily. Because it get's same IP block as you from DHCP easily. I mean your guest and host computer is same IP block as different network client.
119
120
2.If you had assigned a static IP to your Network Consult by giving your static ethernet MAC address, you have to assign unique MAC address your VirtualBox Ubuntu OS by Setting->Network->MAC address initialization box. By this MAC address, you can get static ip easily or you can configure your Ubuntu system to not use DHCP, instead of that you can assign static IP manually.
121
122 2 Sam Wilson
h2. Step 2: Install Redmine
123 1 Umit Uzun
124 2 Sam Wilson
Once you have a functioning Ubuntu operating system up and running, you can continue with installing Redmine.
125 1 Umit Uzun
126 2 Sam Wilson
h3. Install dependencies
127
128
The following packages are required to install and run Redmine.  Please install them by running @apt-get@ as root:
129
130
>sudo apt-get package-name
131
132
where @package-name@ is each of:
133
* apache2 
134
* apache2-threaded-dev 
135
* build-essential
136
* libapache-dbi-perl 
137
* libapache2-mod-perl2 
138
* libapache2-svn
139
* libdigest-sha1-perl 
140
* libgemplugin-ruby 
141
* libgemplugin-ruby1.8 
142
* libruby-extras 
143
* libruby1.8-extras 
144
* mongrel 
145
* mysql-server
146
* rails
147
* rake 
148
* ruby
149
* rubygems
150
* rubygems1.8
151
* ruby1.8-dev
152
* subversion
153
154
_(Could someone please clean up this list?)_
155
156 1 Umit Uzun
*Package Installation and Setup:*
157
158
1.Once you’ve installed the VirtualBox Ubuntu OS and updated it, you need to install a bunch of packages that we will prepare the server for the Redmine installation. So, as root, install the following packages by issuing: 
159 2 Sam Wilson
> sudo apt-get install 
160
> sudo apt-get install 
161 1 Umit Uzun
162
The packages we’re installing above are MySQL, phpMyAdmin, Rails, Ruby Gems, Mongrel and Ruby Dev environment.
163
During the installation of the packages, when MySQL is installed, it will prompt you to	create a password. Make sure you remember it. You will need it later to log in to the 	phpMyAdmin. To make simplicity you can set all passwords to “redmine”.
164
165
2.Create a new directory for Redmine. I put mine in /opt/redmine. And download last version of Redmine in it with wget command line downloader and extract it by issuing:
166
> sudo mkdir /opt/redmine
167
> sudo cd /opt/redmine
168
> sudo wget http://rubyforge.org/frs/download.php/66633/redmine-0.8.6.tar.gz
169
> tar -xvf redmine-0.8.6.tar.gz
170
171
*Database Setup:*
172
173
1.Now it’s time to create an empty database for Redmine. As you may have noticed, we installed phpMyAdmin earlier. phpMyAdmin will come in handy now. Head over to http://localhost/phpmyadmin. You should be presented with the phpMyAdmin login screen.
174
Type in “root” and the MySQL “password” you created when installing MySQL.
175
176
2.First, click on “Databases” Then, at the bottom of the screen, in the “Create new database” text box create a new database called “redmine” and set “Collation” to “utf8_general_ci”.
177
178
3.Now, go back to the home screen and click on:
179
“Privileges”
180
“Add a new User” 
181
Fill out the “Login Information” boxes. Call your user “redmine”. Make sure you remember password you create here. It will be used when you set up the database connection details in Redmine.
182
In the “Database for user” section, check “Create database with same name and grant all privileges” and click on the “Go” button.
183
184
4.Log out of phpMyAdmin.
185
186
*Redmine Database Connection Configuration:*
187
188
1.It’s time to configure the database connection. If you installed Redmine as I did above, then copy “config/database.yml.example” to “config/database.yml” and edit this file in order to configure your database settings for “production” environment. You’ll find the “database.yml.example” issuing:
189
> sudo cd /opt/redmine/redmine-0.8.6/config
190
191
2.So now, assuming you’re in the “/opt/redmine/redmine-0.8.6/config” directory, issue:
192
> sudo cp database.yml.example database.yml 
193
194
3.Then, open the “database.yml” file, issue:
195
> sudo gedit database.yml
196
… and edit it as in the example for a MySQL database below:
197
198
production:
199
adapter: mysql
200
socket: /var/run/mysqld/mysqld.sock
201
database: redmine
202
host: localhost
203
username: redmine
204
password: [password]
205
206
Then save “database.yml” file and exit to the command prompt.
207
On Ubuntu the “mysql.sock” is located in /var/run/mysqld/mysqld.sock, as noted in the “config” above. 
208
(The standard Redmine installation assumes the socket is located in “/opt/redmine/redmine-0.8.6/tmp/mysqld.sock”.)
209
210
4.Create the database structure, by running the following command under the application root directory(I mean “/opt/redmine/redmine-0.8.6”):
211
> sudo rake db:migrate RAILS_ENV="production" 
212
It will create the necessary tables in the redmine database you created earlier and an 	administrator account.
213
214
5.Insert default configuration data in database, by issuing:
215
> sudo rake redmine:load_default_data RAILS_ENV="production" 
216
(This step is optional but highly recommended, as you can define your own configuration	from scratch. It will load default roles, trackers, statuses, work flows and enumerations. While loading default data command prompt wants to given language selection by you.) 
217
218
*Setting up Permissions:*
219
220
1.The user who runs Redmine must have write permission on the following sub directories: “files”, “log”, “tmp” (create the last one if not present). You probably already have a “tmp” directory in /opt/redmine/redmine-0.8.6, but if you don’t, create one now by issuing:
221
> sudo mkdir /opt/redmine/redmine-0.8.6
222
223
2.If you haven’t created a Redmine user, do it now by issuing:
224
> sudo useradd redmine
225
226
3.Now, assuming you run Redmine with a redmine user, from your /opt/redmine/redmine-0.8.6 directory issue:
227
> sudo chown -R redmine:redmine files log tmp
228
> sudo chmod -R 755 files log tmp
229
230
*Testing the Installation:*
231
232
1.It should all be working now. Test the installation by running the WEBrick web server issue:
233
> sudo cd /opt/redmine/redmine-0.8.6
234
> sudo ruby script/server -e production
235
	
236
Once WEBrick has started, point your browser to http://localhost:3000/. Or, if you are using a browser on another computer than what you installed Redmine on, point your browser to http://192.168.1.10:3000/ (if that’s the IP address you gave your Redmine server). You should now see the application welcome page. 
237
238
*Log in:*
239
240
1.Use default administrator account to log in:
241
Login : admin
242
Password : admin
243
244
2.You can go to Admin & Settings to modify application settings.
245
246
*Setting Up Static IP:*
247
248
1.A more easy method for configuring a static IP address is to use your local DHCP server to assign a permanent IP to the VirtualBox OS mac address. That way you will not have to do anything inside VBS. Consult your network administrator. 
249
250
2.Or you should learn configuration parameters as given below, and can configure your system to get static IP address:
251
The desired IP address
252
Network mask and broadcast address
253
Gateway address
254
Your local DNS server address(es)
255
256
*Assigning Host Name and Domain for VirtualBox OS:*
257
258
1.A more easy method for adding your IP address - Host name pair configurations to your DNS server . Consult your network administrator.
259
260 2 Sam Wilson
h2. Configuring the Passenger Apache module
261 1 Umit Uzun
262 2 Sam Wilson
Passenger is a module for apache2 that allow apache to run ruby on rails applications.  Install it thus:
263
264
>$ sudo gem install passenger
265
266
Then go to the passenger apache2 module installation directory and run @passenger-install-apache2-module@
267
268
> $ cd /var/lib/gems/1.X/gems/passenger-X.X.X/
269
270
> $ sudo bin/passenger-install-apache2-module
271
272
Next, configure Apache:
273
274
In /etc/apache2/mods-available/passenger.load we will add next line
275
276
> LoadModule passenger_module /var/lib/gems/1.X/gems/passenger-X.X.X/ext/apache2/mod_passenger.so
277
278
We have to edit the conf of the passenger apache2 module in /etc/apache2/mods-available/passenger.conf
279
280
> PassengerRoot /var/lib/gems/1.X/gems/passenger-X.X.X
281
> PassengerRuby /usr/bin/ruby1.X
282
283
And now we active the module
284
285
> $ sudo a2enmod passenger
286
287
Apache virtualhost for redmine web app
288
289
<pre>
290
    <VirtualHost *:80>
291
        ServerName redmine.server.com
292
293
        DocumentRoot /var/www/redmine/public
294
295
        ServerAdmin user@server.com
296
        LogLevel warn
297
        ErrorLog /var/log/apache2/redmine_error
298
        CustomLog /var/log/apache2/redmine_access combined
299
300
        <Directory /var/www/redmine/public>
301
            Options Indexes FollowSymLinks MultiViews
302
            AllowOverride None
303
            Order allow,deny
304
            allow from all
305
        </Directory>
306
    </VirtualHost>
307
</pre>
308
309
subversion server config in apache
310
311
<pre>
312
    <VirtualHost *:80>
313
	ServerName svn.server.com
314
	ServerAdmin user@server.com
315
	ErrorLog /var/log/apache2/svn_error
316
       	CustomLog /var/log/apache2/svn_access combined
317
        <Location /project>
318
           DAV svn
319
           SVNPath /var/lib/svn/project
320
321
           AuthType Basic
322
           AuthName "Trac system for Server projects"
323
           AuthUserFile "/var/lib/svn/.htpasswd"
324
           Require valid-user 
325
	   <LimitExcept GET PROPFIND OPTIONS REPORT>
326
               Require valid-user
327
           </LimitExcept>
328
       </Location>
329
    </Virtualhost>
330
</pre>
331
332
h2. Sendmail Server Configuration:
333
334 1 Umit Uzun
1.Before configure the email support of Redmine, we should download sendmail application for Ubuntu, issue:
335
> sudo apt-get install sendmail
336
> sudo sendmailconfig (Answer Yes to all questions which will be asked you)
337
338
2.It’s time to configure the server connection. Copy “config/email.yml.example” to “config/email.yml” and edit this file in order to configure your database settings for “production” environment. You’ll find the “email.yml.example” issue:
339
> sudo cd /opt/redmine/redmine-0.8.6/config
340
341
3.So now, assuming you’re in the “/config” directory, issue:
342
> sudo cp email.yml.example email.yml 
343
344
4.Then, open the “email.yml” file, issue:
345
> sudo gedit email.yml
346
… and edit it as in the example for sendmail configuration below:
347
348
production:
349
delivery_method: :sendmail
350
sendmail_settings:
351
location: /usr/sbin/sendmail
352
arguments: -i -t
353
address: smtp.example.net
354
port: 25
355
domain: example.net
356
authentication: :none
357
user_name: redmine@example.net
358
password: redmine
359
360
Then save “email.yml” file and exit to the command prompt.
361
362
5.It’s time to configure the “environmet.rb” configuration. Open up the “environment.rb” and change “config.action_mailer.perform_deliveries = false” to “config.action_mailer.perform_deliveries = true” then save and close the “environment.rb”.
363
364
*Subversion Installation and Configuration:*
365
366
1.Before configure the subversion support of Redmine, we should download subversion application for Ubuntu, issue:
367
> sudo apt-get install subversion
368
369
2.If your Redmine can't find the “subversion” command you can help to find by issuing:
370
· > sudo cd /opt/redmine/redmine-0.8.6/config
371
· > sudo gedit environment.rb
372
· Add ENV['PATH'] = "#{ENV['PATH']}:/subversion/path" line in it.
373
· Save and close the “environment.rb”
374
375
*Start Application Boot Time:*
376
377
1.To automatically start the application on booting your server you need to modify your “crontab”, issue:
378
> export EDITOR=gedit
379
> crontab -e
380
381
2.Your “crontab” file will be presented. This is the list of programs that start at certain times or at boot. Add the following to the “crontab” (all on one line):
382
@reboot cd /opt/redmine/redmine-0.8.6 ; rm -f log/mongrel.pid ; mongrel_rails start -e production -p 3000 -d
383
384
*Backup:*
385
386
1.Running backups is always a good idea. Redmine backups should include:
387
data (stored in your redmine database) 
388
/usr/bin/mysqldump -u -p | gzip > /path/to/redmine/backup/db/redmine_`date +%y_%m_%d`.gz
389
attachments (stored in the files directory of your Redmine install)
390
rsync -a /path/to/redmine/files /path/to/redmine/backup/files
391
392
2.Or you can use bash shell to automate kind of this operation issue:
393
> sudo cd /opt/redmine/redmine-0.8.6
394
> sudo mkdir backup
395
> sudo mkdir backup/db
396
> sudo mkdir backup/files
397
> sudo gedit backup/runRedmineBackup.bash
398
399
And after opened gedit with “runRedmineBackup.bash” write all commands below:
400
401
#!/bin/bash
402
data=`date -I`
403
mysqldump --user=root --password="redmine" --all-databases | gzip > db/backup-$data.sql.gz
404
cd db
405
ftp -i -n << EOF
406
open ftpserver.example.net
407
user username password
408
bin
409
mput backup-$data.sql.gz
410
bye
411
EOF
412
413
Then save “runRedmineBackup.bash” file and exit to the command prompt. After creation of  runRedmineBackup.bash you can add this bash to run continually between specified periods. Issue:
414
415
> export EDITOR=gedit
416
> crontab -e
417
Add 0 0 * * 0 cd /opt/redmine/redmine-0.8.6/backup ; sh runRedmineBackup.bash commands to crontab to backup database weekly.
418
	
419
To work this bush without any permission problem you have to change all of them modes to maxium permission issue:
420
421
> sudo chmod -R 777 backup
422
> sudo chown -R redmine:redmine backup
423
424
That's all. Now we completely installed Redmine our virtual Ubuntu OS and can reach from any machine at our network easily. Congratulations..!
425
426 2 Sam Wilson
h2. Sources & contributors.
427
428
* Ümit Uzun 06/11/2009.
429
* Some of the above material comes from Macada's wiki, licenced under the GNU Free Documentation License 1.2.  See "Redmine in Ubuntu Jaunty 9.04":http://wiki.ousli.org/index.php/Redmine_in_Ubuntu_Jaunty_9.04 by David 'macada', last modified 2010-02-08, accessed 2010-05-26.
430
* Sam Wilson 2010-05-26, formatting changes.