HowTo configure Apache to run Redmine » History » Version 1

Cyber Sprocket, 2009-06-02 06:32

1 1 Cyber Sprocket
h1. HowTo configure Apache to run Redmine
2 1 Cyber Sprocket
3 1 Cyber Sprocket
These notes assume you already have Redmine running via the webrick server and are looking to get Redmine running via your existing Apache installation.  
4 1 Cyber Sprocket
5 1 Cyber Sprocket
Most of the commands assume you are in the root installation directory of redmine, so be sure to change directory there before starting.
6 1 Cyber Sprocket
7 1 Cyber Sprocket
h2. For CentOS 5
8 1 Cyber Sprocket
9 1 Cyber Sprocket
h3. Assumptions
10 1 Cyber Sprocket
11 1 Cyber Sprocket
* OS is CentOS 5
12 1 Cyber Sprocket
* Web server is Apache 2
13 1 Cyber Sprocket
** mod_cgi is enabled
14 1 Cyber Sprocket
** name based virtual servers are being used
15 1 Cyber Sprocket
16 1 Cyber Sprocket
h3. Basic Steps
17 1 Cyber Sprocket
18 1 Cyber Sprocket
* Install Redmine per the installation instructions and get it running with webrick.
19 1 Cyber Sprocket
20 1 Cyber Sprocket
* Kill the webrick session
21 1 Cyber Sprocket
22 1 Cyber Sprocket
* Copy the public/dispatch.cgi.example to public/dispatch.cgi
23 1 Cyber Sprocket
24 1 Cyber Sprocket
* Edit public/dispatch.cgi to fix the shell script invocation to read:
25 1 Cyber Sprocket
  @#!/usr/local/bin/ruby@
26 1 Cyber Sprocket
27 1 Cyber Sprocket
* Make sure public/dispatch.cgi has execute permissions via:
28 1 Cyber Sprocket
  @# chmod 755 public/dispatch.cgi@
29 1 Cyber Sprocket
30 1 Cyber Sprocket
* Update the config/environment.rb file to force the rails environment to production, simply uncomment this line at the start of the file:
31 1 Cyber Sprocket
  @ENV['RAILS_ENV'] ||= 'production'@
32 1 Cyber Sprocket
33 1 Cyber Sprocket
* Add your virtual host entry to the apache configuration file (/etc/httpd/conf/httpd.conf).  We installed redmine into the /live/redmine folder on our server.  _Note: be sure to point your DocumentRoot to the public sub-folder!_
34 1 Cyber Sprocket
<pre>
35 1 Cyber Sprocket
    <VirtualHost *:80>
36 1 Cyber Sprocket
        ServerName redmine.<YOUR-DOMAIN>.com
37 1 Cyber Sprocket
        ServerAdmin webmaster@<YOUR-DOMAIN>.com
38 1 Cyber Sprocket
        DocumentRoot /live/redmine/public/
39 1 Cyber Sprocket
        ErrorLog logs/redmine_error_log
40 1 Cyber Sprocket
41 1 Cyber Sprocket
        <Directory "/live/redmine/public/">
42 1 Cyber Sprocket
                Options Indexes ExecCGI FollowSymLinks
43 1 Cyber Sprocket
                Order allow,deny
44 1 Cyber Sprocket
                Allow from all
45 1 Cyber Sprocket
                AllowOverride all
46 1 Cyber Sprocket
        </Directory>
47 1 Cyber Sprocket
    </VirtualHost>
48 1 Cyber Sprocket
</pre>
49 1 Cyber Sprocket
50 1 Cyber Sprocket
* Make sure your files, log, tmp, and vendor directories are all accessible (read/write) by user apache, group apache. We did that via a change of ownership:
51 1 Cyber Sprocket
  @# chown -R apache:apache files log tmp vendor@
52 1 Cyber Sprocket
53 1 Cyber Sprocket
54 1 Cyber Sprocket
h3. Gotchas
55 1 Cyber Sprocket
56 1 Cyber Sprocket
Look for rogue versions of ruby binaries.  We had an older version in /usr/bin/ruby as well as /usr/local/bin/ruby which caused a rather generic error message:
57 1 Cyber Sprocket
 _@Rails requires RubyGems >= 0.9.4. Please install RubyGems@_
58 1 Cyber Sprocket
59 1 Cyber Sprocket
Helpful commands:
60 1 Cyber Sprocket
 @# which ruby@ - tells you which ruby binary is being run when the fully-qualified-filename has not been specified.
61 1 Cyber Sprocket
 @# find / -name ruby@ - searches your entire system for any file named ruby, warning: can take a while on large filesystems.