Project

General

Profile

HowTo Install Redmine in Ubuntu » History » Version 6

Roger Lipscombe, 2010-06-16 21:23

1 6 Roger Lipscombe
h1. Ubuntu 10.4 LTS using mod_cgi
2 3 Sam Wilson
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 1 Umit Uzun
57 6 Roger Lipscombe
h1. Ubuntu 10.4 using Passenger
58
59
If you can't get it working with mod_cgi, you might want to try mod_passenger (it's also quicker):
60 5 Roger Lipscombe
61
> $ sudo apt-get install redmine redmine-mysql
62
63
The second package, _redmine-mysql_, can be replaced by either _redmine-pgsql_ or _redmine-sqlite_ if you want to use either of those databases.
64
65
Ubuntu should prompt you for all the interesting details.
66
67
Redmine will now be installed in @/usr/share/redmine@ and @/etc/redmine@
68
69
h2. Configuration
70
71
Symlink @/usr/share/redmine/public@ to your desired web-accessible location.  E.g.:
72
73
> $ ln /usr/share/redmine/public /var/www/redmine
74
75
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.
76
77
You'll also need to configure the @/var/www/redmine@ location in @/etc/apache2/sites-available/default@:
78
79
<pre><Directory /var/www/redmine>
80
    RailsBaseURI /redmine
81
</Directory>
82
</pre>
83
84
> $ sudo a2enmod passenger
85
86
Restart apache2 and you should be good to go.
87
88 3 Sam Wilson
h1. Redmine Installation on Virtual or Normal Ubuntu < 10.4
89 1 Umit Uzun
90 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.
91 1 Umit Uzun
92 2 Sam Wilson
h2. Step 1: Install Ubuntu
93 1 Umit Uzun
94 2 Sam Wilson
If you are installing on a non-virtual Ubuntu instance, please skip this section.
95 1 Umit Uzun
96 2 Sam Wilson
*Installing VirtualBox:*
97
98
1.Download last version of Sun VirtualBox (version 3.0.10 or newer) tool in your system.
99 1 Umit Uzun
2.Install to your system by following the instructions.
100
101
*Installing Ubuntu on VirtualBox:*
102
103
1.Download last version of Ubuntu(version 9.10 or newer) OS in your system.
104
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.
105
106
3.While installing Ubuntu you should type the related configurations as follows:
107
(These all configurations are optional, you can give any name what you what.)
108
Q: What is your name? A: Redmine Server
109
Q: What name do you want to use to login? A: redmine
110
Q: Choose to password to keep your account safe? A: redmine
111
Q: What is the name of this computer? A: redmine-server
112
Choose “Log in automatically.” radio button.
113
114
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:
115
> sudo apt-get update
116
> sudo apt-get upgrade
117
118
*Configuring VirtualBox:*
119
120
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.
121
122
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.
123
124 2 Sam Wilson
h2. Step 2: Install Redmine
125 1 Umit Uzun
126 2 Sam Wilson
Once you have a functioning Ubuntu operating system up and running, you can continue with installing Redmine.
127 1 Umit Uzun
128 2 Sam Wilson
h3. Install dependencies
129
130
The following packages are required to install and run Redmine.  Please install them by running @apt-get@ as root:
131
132
>sudo apt-get package-name
133
134
where @package-name@ is each of:
135
* apache2 
136
* apache2-threaded-dev 
137
* build-essential
138
* libapache-dbi-perl 
139
* libapache2-mod-perl2 
140
* libapache2-svn
141
* libdigest-sha1-perl 
142
* libgemplugin-ruby 
143
* libgemplugin-ruby1.8 
144
* libruby-extras 
145
* libruby1.8-extras 
146
* mongrel 
147
* mysql-server
148
* rails
149
* rake 
150
* ruby
151
* rubygems
152
* rubygems1.8
153
* ruby1.8-dev
154
* subversion
155
156
_(Could someone please clean up this list?)_
157
158 1 Umit Uzun
*Package Installation and Setup:*
159
160
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: 
161 2 Sam Wilson
> sudo apt-get install 
162
> sudo apt-get install 
163 1 Umit Uzun
164
The packages we’re installing above are MySQL, phpMyAdmin, Rails, Ruby Gems, Mongrel and Ruby Dev environment.
165
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”.
166
167
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:
168
> sudo mkdir /opt/redmine
169
> sudo cd /opt/redmine
170
> sudo wget http://rubyforge.org/frs/download.php/66633/redmine-0.8.6.tar.gz
171
> tar -xvf redmine-0.8.6.tar.gz
172
173
*Database Setup:*
174
175
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.
176
Type in “root” and the MySQL “password” you created when installing MySQL.
177
178
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”.
179
180
3.Now, go back to the home screen and click on:
181
“Privileges”
182
“Add a new User” 
183
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.
184
In the “Database for user” section, check “Create database with same name and grant all privileges” and click on the “Go” button.
185
186
4.Log out of phpMyAdmin.
187
188
*Redmine Database Connection Configuration:*
189
190
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:
191
> sudo cd /opt/redmine/redmine-0.8.6/config
192
193
2.So now, assuming you’re in the “/opt/redmine/redmine-0.8.6/config” directory, issue:
194
> sudo cp database.yml.example database.yml 
195
196
3.Then, open the “database.yml” file, issue:
197
> sudo gedit database.yml
198
… and edit it as in the example for a MySQL database below:
199
200
production:
201
adapter: mysql
202
socket: /var/run/mysqld/mysqld.sock
203
database: redmine
204
host: localhost
205
username: redmine
206
password: [password]
207
208
Then save “database.yml” file and exit to the command prompt.
209
On Ubuntu the “mysql.sock” is located in /var/run/mysqld/mysqld.sock, as noted in the “config” above. 
210
(The standard Redmine installation assumes the socket is located in “/opt/redmine/redmine-0.8.6/tmp/mysqld.sock”.)
211
212
4.Create the database structure, by running the following command under the application root directory(I mean “/opt/redmine/redmine-0.8.6”):
213
> sudo rake db:migrate RAILS_ENV="production" 
214
It will create the necessary tables in the redmine database you created earlier and an 	administrator account.
215
216
5.Insert default configuration data in database, by issuing:
217
> sudo rake redmine:load_default_data RAILS_ENV="production" 
218
(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.) 
219
220
*Setting up Permissions:*
221
222
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:
223
> sudo mkdir /opt/redmine/redmine-0.8.6
224
225
2.If you haven’t created a Redmine user, do it now by issuing:
226
> sudo useradd redmine
227
228
3.Now, assuming you run Redmine with a redmine user, from your /opt/redmine/redmine-0.8.6 directory issue:
229
> sudo chown -R redmine:redmine files log tmp
230
> sudo chmod -R 755 files log tmp
231
232
*Testing the Installation:*
233
234
1.It should all be working now. Test the installation by running the WEBrick web server issue:
235
> sudo cd /opt/redmine/redmine-0.8.6
236
> sudo ruby script/server -e production
237
	
238
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. 
239
240
*Log in:*
241
242
1.Use default administrator account to log in:
243
Login : admin
244
Password : admin
245
246
2.You can go to Admin & Settings to modify application settings.
247
248
*Setting Up Static IP:*
249
250
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. 
251
252
2.Or you should learn configuration parameters as given below, and can configure your system to get static IP address:
253
The desired IP address
254
Network mask and broadcast address
255
Gateway address
256
Your local DNS server address(es)
257
258
*Assigning Host Name and Domain for VirtualBox OS:*
259
260
1.A more easy method for adding your IP address - Host name pair configurations to your DNS server . Consult your network administrator.
261
262 2 Sam Wilson
h2. Configuring the Passenger Apache module
263 1 Umit Uzun
264 2 Sam Wilson
Passenger is a module for apache2 that allow apache to run ruby on rails applications.  Install it thus:
265
266
>$ sudo gem install passenger
267
268
Then go to the passenger apache2 module installation directory and run @passenger-install-apache2-module@
269
270
> $ cd /var/lib/gems/1.X/gems/passenger-X.X.X/
271
272
> $ sudo bin/passenger-install-apache2-module
273
274
Next, configure Apache:
275
276
In /etc/apache2/mods-available/passenger.load we will add next line
277
278
> LoadModule passenger_module /var/lib/gems/1.X/gems/passenger-X.X.X/ext/apache2/mod_passenger.so
279
280
We have to edit the conf of the passenger apache2 module in /etc/apache2/mods-available/passenger.conf
281
282
> PassengerRoot /var/lib/gems/1.X/gems/passenger-X.X.X
283
> PassengerRuby /usr/bin/ruby1.X
284
285
And now we active the module
286
287
> $ sudo a2enmod passenger
288
289
Apache virtualhost for redmine web app
290
291
<pre>
292
    <VirtualHost *:80>
293
        ServerName redmine.server.com
294
295
        DocumentRoot /var/www/redmine/public
296
297
        ServerAdmin user@server.com
298
        LogLevel warn
299
        ErrorLog /var/log/apache2/redmine_error
300
        CustomLog /var/log/apache2/redmine_access combined
301
302
        <Directory /var/www/redmine/public>
303
            Options Indexes FollowSymLinks MultiViews
304
            AllowOverride None
305
            Order allow,deny
306
            allow from all
307
        </Directory>
308
    </VirtualHost>
309
</pre>
310
311
subversion server config in apache
312
313
<pre>
314
    <VirtualHost *:80>
315
	ServerName svn.server.com
316
	ServerAdmin user@server.com
317
	ErrorLog /var/log/apache2/svn_error
318
       	CustomLog /var/log/apache2/svn_access combined
319
        <Location /project>
320
           DAV svn
321
           SVNPath /var/lib/svn/project
322
323
           AuthType Basic
324
           AuthName "Trac system for Server projects"
325
           AuthUserFile "/var/lib/svn/.htpasswd"
326
           Require valid-user 
327
	   <LimitExcept GET PROPFIND OPTIONS REPORT>
328
               Require valid-user
329
           </LimitExcept>
330
       </Location>
331
    </Virtualhost>
332
</pre>
333
334
h2. Sendmail Server Configuration:
335
336 1 Umit Uzun
1.Before configure the email support of Redmine, we should download sendmail application for Ubuntu, issue:
337
> sudo apt-get install sendmail
338
> sudo sendmailconfig (Answer Yes to all questions which will be asked you)
339
340
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:
341
> sudo cd /opt/redmine/redmine-0.8.6/config
342
343
3.So now, assuming you’re in the “/config” directory, issue:
344
> sudo cp email.yml.example email.yml 
345
346
4.Then, open the “email.yml” file, issue:
347
> sudo gedit email.yml
348
… and edit it as in the example for sendmail configuration below:
349
350
production:
351
delivery_method: :sendmail
352
sendmail_settings:
353
location: /usr/sbin/sendmail
354
arguments: -i -t
355
address: smtp.example.net
356
port: 25
357
domain: example.net
358
authentication: :none
359
user_name: redmine@example.net
360
password: redmine
361
362
Then save “email.yml” file and exit to the command prompt.
363
364
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”.
365
366
*Subversion Installation and Configuration:*
367
368
1.Before configure the subversion support of Redmine, we should download subversion application for Ubuntu, issue:
369
> sudo apt-get install subversion
370
371
2.If your Redmine can't find the “subversion” command you can help to find by issuing:
372
· > sudo cd /opt/redmine/redmine-0.8.6/config
373
· > sudo gedit environment.rb
374
· Add ENV['PATH'] = "#{ENV['PATH']}:/subversion/path" line in it.
375
· Save and close the “environment.rb”
376
377
*Start Application Boot Time:*
378
379
1.To automatically start the application on booting your server you need to modify your “crontab”, issue:
380
> export EDITOR=gedit
381
> crontab -e
382
383
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):
384
@reboot cd /opt/redmine/redmine-0.8.6 ; rm -f log/mongrel.pid ; mongrel_rails start -e production -p 3000 -d
385
386
*Backup:*
387
388
1.Running backups is always a good idea. Redmine backups should include:
389
data (stored in your redmine database) 
390
/usr/bin/mysqldump -u -p | gzip > /path/to/redmine/backup/db/redmine_`date +%y_%m_%d`.gz
391
attachments (stored in the files directory of your Redmine install)
392
rsync -a /path/to/redmine/files /path/to/redmine/backup/files
393
394
2.Or you can use bash shell to automate kind of this operation issue:
395
> sudo cd /opt/redmine/redmine-0.8.6
396
> sudo mkdir backup
397
> sudo mkdir backup/db
398
> sudo mkdir backup/files
399
> sudo gedit backup/runRedmineBackup.bash
400
401
And after opened gedit with “runRedmineBackup.bash” write all commands below:
402
403
#!/bin/bash
404
data=`date -I`
405
mysqldump --user=root --password="redmine" --all-databases | gzip > db/backup-$data.sql.gz
406
cd db
407
ftp -i -n << EOF
408
open ftpserver.example.net
409
user username password
410
bin
411
mput backup-$data.sql.gz
412
bye
413
EOF
414
415
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:
416
417
> export EDITOR=gedit
418
> crontab -e
419
Add 0 0 * * 0 cd /opt/redmine/redmine-0.8.6/backup ; sh runRedmineBackup.bash commands to crontab to backup database weekly.
420
	
421
To work this bush without any permission problem you have to change all of them modes to maxium permission issue:
422
423
> sudo chmod -R 777 backup
424
> sudo chown -R redmine:redmine backup
425
426
That's all. Now we completely installed Redmine our virtual Ubuntu OS and can reach from any machine at our network easily. Congratulations..!
427
428 2 Sam Wilson
h2. Sources & contributors.
429
430
* Ümit Uzun 06/11/2009.
431
* 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.
432
* Sam Wilson 2010-05-26, formatting changes.