Project

General

Profile

RedmineInstall » History » Version 148

Jean-Philippe Lang, 2012-04-14 10:51
Bug fixed

1 1 Jean-Philippe Lang
h1. Installing Redmine
2
3
{{>TOC}}
4 73 Liraz Siri
5 147 Jean-Philippe Lang
This is the installation documentation for Redmine 1.4.0 and higher. You can still read the document for 1.3.x "here":/projects/redmine/wiki/RedmineInstall?version=146.
6
7 1 Jean-Philippe Lang
h2. Requirements
8
9 25 Jean-Philippe Lang
h3. Operating system
10 1 Jean-Philippe Lang
11 105 Josh Galvez
Redmine should run on most Unix, Linux, [[RedmineInstallOSX|Mac]], [[RedmineInstallOSXServer|Mac Server]] and Windows systems as long as Ruby is available on this platform.  See specific installation HowTos [[HowTos|here]].
12 25 Jean-Philippe Lang
13 91 Kedar Mhaswade
h3. Ruby & Ruby on Rails & Rack
14 25 Jean-Philippe Lang
15 1 Jean-Philippe Lang
The required Ruby and Ruby on Rails versions for a given Redmine version is:
16
17 147 Jean-Philippe Lang
|_. Redmine version|_. Supported Ruby versions|_. Required Rails version|_. Supported RubyGems versions|
18
|current trunk|ruby 1.8.7, 1.9.2, 1.9.3, jruby-1.6.7|Rails 2.3.14|RubyGems <= 1.8|
19
|1.4.x|ruby 1.8.7, 1.9.2, 1.9.3, jruby-1.6.7|Rails 2.3.14|RubyGems <= 1.8|
20
|1.3.x|ruby 1.8.6, 1.8.7|Rails 2.3.14|RubyGems <= 1.7|
21
|1.2.x|ruby 1.8.6, 1.8.7|Rails 2.3.11|RubyGems <= 1.6|
22
|1.1.x|ruby 1.8.6, 1.8.7|Rails 2.3.51|RubyGems <= 1.4|
23
|1.0.x|ruby 1.8.6, 1.8.7|Rails 2.3.5|RubyGems <= 1.4|
24
|0.9.x|ruby 1.8.6, 1.8.7|Rails 2.3.5|RubyGems <= 1.4|
25
|0.8.x|ruby 1.8.6, 1.8.7|Rails 2.1.2||
26 1 Jean-Philippe Lang
27 128 Jean-Baptiste Barth
h3. Compatibility notes
28 125 Etienne Massip
29 140 Mischa The Evil
* *Rack* 1.1.x is required, 1.1.0 has a bug with quotes (#8416). Database migration would fail with other version.
30
* *Mongrel* 1.1.5 needs a patch attached to #7688 to work fine with Rails 2.3.11. In case of upgrade, another issue may appear for some time after migration (#7857).
31 25 Jean-Philippe Lang
32 93 Muntek Singh
h3. Database
33 92 Knight Samar
34 146 Etienne Massip
* MySQL 5.0 or higher (recommended)
35 35 Jean-Philippe Lang
36
 * make sure to install the C bindings for Ruby that dramatically improve performance. You can get them by running @gem install mysql2@. If you have problem installing the mysql gem refer "Rails Wiki pages":http://wiki.rubyonrails.org/database-support/mysql
37 1 Jean-Philippe Lang
38 147 Jean-Philippe Lang
* PostgreSQL 8 or higher
39 117 Etienne Massip
40 1 Jean-Philippe Lang
 * make sure your database datestyle is set to ISO (Postgresql default setting). You can set it using: @ALTER DATABASE "redmine_db" SET datestyle="ISO,MDY";@
41 146 Etienne Massip
 * some bugs in PostgreSQL 8.4.0 and 8.4.1 affect Redmine behavior (#4259, #4314), they are fixed in PostgreSQL 8.4.2
42 1 Jean-Philippe Lang
43
* SQLite 3
44
45
h3. Optional components
46
47
      * SCM binaries (eg. @svn@), for repository browsing (must be available in your PATH). See [[RedmineRepositories]] for SCM compatibility and requirements.
48
      * "RMagick":http://rmagick.rubyforge.org/ (to enable Gantt export to png image)
49
      * "Ruby OpenID Library":http://openidenabled.com/ruby-openid/ (to enable OpenID support) [only on Redmine trunk / 0.9-dev]  Version 2 or greater is required.
50
51
h2. Redmine Version
52
53
It is recommended that the majority of users install the proper point releases of redmine. Redmine currently releases a new version every 6 months, and these releases are considered very usable and stable. It is *not* recommended to install redmine from trunk, unless you are deeply familiar with Ruby on Rails and keep up with the changes - Trunk _does_ break from time-to-time.
54
55 114 Etienne Massip
h2. Installation procedure
56 35 Jean-Philippe Lang
57
1. Get the Redmine source code by either downloading a packaged release or checking out the code repository. See [[Download]].
58 26 Jean-Philippe Lang
59 147 Jean-Philippe Lang
2. Since 1.4.0, Redmine uses "Bundler":http://gembundler.com/ to manage gems dependencies. You need to install Bundler first:
60 23 Jean-Philippe Lang
61 147 Jean-Philippe Lang
  gem install bundler
62
63
Then you can install all the gems required by Redmine using the following command:
64
65
  bundle install --without development test
66
67
If ImageMagick is not installed on your system, you should skip the installation of the rmagick gem using: @`bundle install --without development test rmagick`@.
68
69
You can also skip the installation of the database adapters you're not using. For example, if you're using MySQL, you can skip the installation of the postgresql and sqlite gems using @`bundle install --without development test postgresql sqlite`@.
70
71
If you need to load some gems that are not required by Redmine core (eg. fcgi), you can create a file named Gemfile.local at the root of your redmine directory. It will be loaded automatically when running `bundle install`.
72
73
3. Create an empty database and accompanying user named @redmine@ for example.
74
75 1 Jean-Philippe Lang
For MySQL:
76
77 38 Yclept Nemo
<pre>
78 39 Yclept Nemo
create database redmine character set utf8;
79
create user 'redmine'@'localhost' identified by 'my_password';
80
grant all privileges on redmine.* to 'redmine'@'localhost';
81 38 Yclept Nemo
</pre>
82 1 Jean-Philippe Lang
83 88 Sean Farrell
For versions of MySQL prior to 5.0.2 - skip the 'create user' step and instead:
84
<pre>
85
grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';
86 1 Jean-Philippe Lang
</pre>
87
88
For PostgreSQL:
89
90
<pre>
91
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
92
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
93
</pre>
94
95 147 Jean-Philippe Lang
4. Copy @config/database.yml.example@ to @config/database.yml@ and edit this file in order to configure your database settings for "production" environment.
96 1 Jean-Philippe Lang
97 147 Jean-Philippe Lang
Example for a MySQL database using ruby1.8 or jruby:
98 88 Sean Farrell
99 63 Thanos Kyritsis
<pre>
100
production:
101
  adapter: mysql
102
  database: redmine
103 64 Thanos Kyritsis
  host: localhost
104 63 Thanos Kyritsis
  username: redmine
105 3 Jean-Philippe Lang
  password: my_password
106 1 Jean-Philippe Lang
</pre>
107 14 Jean-Philippe Lang
108 147 Jean-Philippe Lang
Example for a MySQL database using ruby1.9 (adapter must be set to @mysql2@):
109
110
<pre>
111
production:
112
  adapter: mysql2
113
  database: redmine
114
  host: localhost
115
  username: redmine
116
  password: my_password
117
</pre>
118
119 54 Barbara Post
If your server is not running on the standard port (3306), use this configuration instead:
120
121
<pre>
122 1 Jean-Philippe Lang
production:
123 54 Barbara Post
  adapter: mysql
124
  database: redmine
125 1 Jean-Philippe Lang
  host: localhost
126 54 Barbara Post
  port: 3307
127
  username: redmine
128
  password: my_password
129
</pre>
130
131 44 Alexey Lustin
132
Example for a PostgreSQL database (default port):
133
134
<pre>
135
production:
136
  adapter: postgresql
137
  database: <your_database_name>
138 46 Istvan DEMETER
  host: <postgres_host>
139 1 Jean-Philippe Lang
  username: <postgres_user>
140 44 Alexey Lustin
  password: <postgres_user_password>
141
  encoding: utf8
142
  schema_search_path: <database_schema> (default - public)
143 111 Jean-Philippe Lang
</pre>
144 1 Jean-Philippe Lang
145 147 Jean-Philippe Lang
5. Generate a session store secret.
146 82 Simon Carpinter
147 41 Yclept Nemo
   rake generate_session_store
148
149 147 Jean-Philippe Lang
6. Create the database structure, by running the following command under the application root directory:
150 1 Jean-Philippe Lang
151 90 Jiongliang Zhang
  RAILS_ENV=production rake db:migrate
152 1 Jean-Philippe Lang
153 90 Jiongliang Zhang
154
It will create tables and an administrator account.
155
156
If you get this error: 
157 1 Jean-Philippe Lang
<pre>
158 90 Jiongliang Zhang
Rake aborted!
159
no such file to load -- net/https
160
</pre>
161 114 Etienne Massip
162 1 Jean-Philippe Lang
you need to install libopenssl-ruby1.8, in Ubuntu, just like this: apt-get install libopenssl-ruby1.8
163 41 Yclept Nemo
164 147 Jean-Philippe Lang
7. Insert default configuration data in database, by running the following command:
165 1 Jean-Philippe Lang
166 62 Vladimir L
  RAILS_ENV=production rake redmine:load_default_data
167 32 Jean-Philippe Lang
168
This step is optional but *highly recommended*, as you can define your own configuration from scratch. It will load default roles, trackers, statuses, workflows and enumerations.
169
170 147 Jean-Philippe Lang
8. Setting up permissions
171 32 Jean-Philippe Lang
172 14 Jean-Philippe Lang
NB: _Windows users have to skip this section._
173
174
The user who runs Redmine must have write permission on the following subdirectories: @files@, @log@, @tmp@ (create the last one if not present).
175
176
Assuming you run Redmine with a @redmine@ user:
177
178 31 Eric Davis
<pre>
179 1 Jean-Philippe Lang
mkdir tmp public/plugin_assets
180 31 Eric Davis
sudo chown -R redmine:redmine files log tmp public/plugin_assets
181 14 Jean-Philippe Lang
sudo chmod -R 755 files log tmp public/plugin_assets
182
</pre>
183 1 Jean-Philippe Lang
184 147 Jean-Philippe Lang
9. Test the installation by running WEBrick web server:
185 1 Jean-Philippe Lang
186 33 Jean-Philippe Lang
  ruby script/server webrick -e production
187 1 Jean-Philippe Lang
188 14 Jean-Philippe Lang
Once WEBrick has started, point your browser to http://localhost:3000/. You should now see the application welcome page.
189 1 Jean-Philippe Lang
190 103 Muntek Singh
> Note: Webrick is *not* suitable for normal use, please only use webrick for testing that the installation up to this point is functional. It is not recommended to use webrick for anything other than development. Use one of the many other guides in this wiki to setup redmine to use either passenger (aka mod_rails) or mongrel to serve up your redmine. 
191
192 147 Jean-Philippe Lang
10. Use default administrator account to log in:
193 1 Jean-Philippe Lang
194
    * login: admin
195 14 Jean-Philippe Lang
    * password: admin
196 1 Jean-Philippe Lang
197
You can go to @Admin & Settings@ to modify application settings.
198
199 130 Etienne Massip
h2. Configuration
200 1 Jean-Philippe Lang
201 131 Etienne Massip
Since of version:1.2.0, Redmine settings are defined in a file named @config/configuration.yml@.
202 130 Etienne Massip
203 133 Etienne Massip
If you need to override default application settings, simply copy @config/configuration.yml.example@ to @config/configuration.yml@ then edit the new file; the file is well commented by itself, so you should have a look at it.
204 1 Jean-Philippe Lang
205 131 Etienne Massip
This settings may be defined per Rails environment (@production@/@development@/@test@).
206
207
+Important+ : don't forget to restart the application after any change.
208
209 130 Etienne Massip
h3. Email / SMTP server settings
210
211 132 Etienne Massip
Email configuration is described in a [[EmailConfiguration|dedicated page]].
212 1 Jean-Philippe Lang
213
h3. SCM settings
214
215 133 Etienne Massip
This configuration section allows you to:
216 131 Etienne Massip
* override default commands names if the SCM binaries present in the @PATH@ variable doesn't use the standard name (Windows .bat/.cmd names won't work)
217
* specify the full path to the binary
218
219 133 Etienne Massip
Examples (with Subversion):
220 131 Etienne Massip
221 133 Etienne Massip
Command name override:
222 131 Etienne Massip
223
 scm_subversion_command: "svn_replacement.exe"
224
225 133 Etienne Massip
Absolute path:
226 1 Jean-Philippe Lang
227
 scm_subversion_command: "C:\Program Files\Subversion\bin\svn.exe"
228
229
h3. Attachment storage settings
230
231 133 Etienne Massip
You can set a path where Redmine attachments will be stored which is different from the default 'files' directory of your Redmine instance using the @attachments_storage_path@ setting.
232
233
Examples:
234
235
 attachments_storage_path: /var/redmine/files
236
237
 attachments_storage_path: D:/redmine/files
238 130 Etienne Massip
239
h2. Logging configuration
240
241 101 T. Hauptman
Redmine defaults to a log level of :info, writing to the @log@ subdirectory. Depending on site usage, this can be a lot of data so to avoid the contents of the logfile growing without bound, consider rotating them, either through a system utility like @logrotate@ or via the @config/additional_environment.rb@ file.
242 21 Jean-Philippe Lang
243
To use the latter, copy @config/additional_environment.rb.example@ to @config/additional_environment.rb@ and add the following lines. Note that the new logger defaults to a high log level and hence has to be explicitly set to @info@.
244 123 Jean-Philippe Lang
<pre><code class="ruby">
245 21 Jean-Philippe Lang
#Logger.new(PATH,NUM_FILES_TO_ROTATE,FILE_SIZE)
246 95 Mischa The Evil
config.logger = Logger.new(config.log_path, 2, 1000000)
247 11 Jean-Philippe Lang
config.logger.level = Logger::INFO
248
</code></pre>
249
250
h2. Backups
251
252
Redmine backups should include:
253
* data (stored in your redmine database)
254
* attachments (stored in the @files@ directory of your Redmine install)
255
256
Here is a simple shell script that can be used for daily backups (assuming you're using a mysql database):
257
258
<pre>
259
# Database
260 55 Lukasz Slonina
/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz
261 11 Jean-Philippe Lang
262
# Attachments
263 1 Jean-Philippe Lang
rsync -a /path/to/redmine/files /path/to/backup/files
264
</pre>
265 69 Giuliano Simoncelli
266
h2. Notes on Windows installation
267
268
Get and install rubyinstaller from http://rubyforge.org. Form start menu select _Start Command Prompt with Ruby_
269
270
In the prompt follow the instruction given before
271
272
The commands:
273
274
<pre>
275
RAILS_ENV=production rake db:migrate
276
RAILS_ENV=production rake redmine:load_default_data
277
</pre>
278
279
has to be changed in 
280
281
<pre>
282
set RAILS_ENV=production
283
rake db:migrate
284 71 Giuliano Simoncelli
rake redmine:load_default_data
285 69 Giuliano Simoncelli
</pre>  
286
287 70 Giuliano Simoncelli
You may need to install install the mysql gem, with the command
288 69 Giuliano Simoncelli
289
<pre>
290
gem install mysql
291 1 Jean-Philippe Lang
</pre>
292
293
And in some case is required to copy the libmysql.dll file in your ruby/bin directory.
294
Not all libmysql.dll are ok this seem to works http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
295 80 Jean-Philippe Lang
296
h2. Alternative to manual installation
297
298
Some users may prefer to skip manual installation by using one of the [[Download#Third-party-Redmine-bundles|third-party Redmine bundles]] on the download page.