Project

General

Profile

HowTo Install Redmine in Ubuntu » History » Version 16

Ian Epperson, 2010-11-16 03:01
Made the section headers into headers with h2/h3 instead of bold tags. Added pre tags to the backup stuff to make it read properly.

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