Project

General

Profile

HowTo configure Apache to run Redmine » History » Version 3

Cyber Sprocket, 2009-06-02 06:40

1 1 Cyber Sprocket
h1. HowTo configure Apache to run Redmine
2
3 2 Cyber Sprocket
{{toc}}
4 1 Cyber Sprocket
5 2 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.   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
h2. For CentOS 5
8
9
h3. Assumptions
10
11
* OS is CentOS 5
12
* Web server is Apache 2
13
** mod_cgi is enabled
14
** name based virtual servers are being used
15 2 Cyber Sprocket
** the web server runs under the user apache, group apache
16 1 Cyber Sprocket
17
h3. Basic Steps
18
19
* Install Redmine per the installation instructions and get it running with webrick.
20
21
* Kill the webrick session
22
23
* Copy the public/dispatch.cgi.example to public/dispatch.cgi
24
25
* Edit public/dispatch.cgi to fix the shell script invocation to read:
26
  @#!/usr/local/bin/ruby@
27
28
* Make sure public/dispatch.cgi has execute permissions via:
29
  @# chmod 755 public/dispatch.cgi@
30
31
* Update the config/environment.rb file to force the rails environment to production, simply uncomment this line at the start of the file:
32
  @ENV['RAILS_ENV'] ||= 'production'@
33
34 3 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!_
35
36 1 Cyber Sprocket
<pre>
37
    <VirtualHost *:80>
38
        ServerName redmine.<YOUR-DOMAIN>.com
39
        ServerAdmin webmaster@<YOUR-DOMAIN>.com
40
        DocumentRoot /live/redmine/public/
41
        ErrorLog logs/redmine_error_log
42
43
        <Directory "/live/redmine/public/">
44
                Options Indexes ExecCGI FollowSymLinks
45
                Order allow,deny
46
                Allow from all
47
                AllowOverride all
48
        </Directory>
49
    </VirtualHost>
50
</pre>
51
52
* 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:
53
  @# chown -R apache:apache files log tmp vendor@
54
55
56 2 Cyber Sprocket
h3. Error Messages and Resolutions
57 1 Cyber Sprocket
58 2 Cyber Sprocket
  * @Rails requires RubyGems >= 0.9.4. Please install RubyGems@
59
    Look for rogue versions of ruby binaries.  We had an older version in /usr/bin/ruby as well as /usr/local/bin/ruby.
60 1 Cyber Sprocket
61 2 Cyber Sprocket
  * @Premature script headers@
62
    This is the generic "got something before the Content-Type: header in a CGI script" error from Apache.  Run dispatch.cgi (see below) and see what comes out BEFORE the Content-Type: directive.
63
64
h2. Helpful Commands
65
66
 * @# which ruby@
67
   tells you which ruby binary is being run when the fully-qualified-filename has not been specified.
68
69
 * @# find / -name ruby@
70
   searches your entire system for any file named ruby, warning: can take a while on large filesystems.
71
 
72
 * @# ruby -v@
73
   tell you what version of ruby you are running by default
74
75
 * @#public/dispatch.cgi@
76
   runs the dispatch CGI script.   It should spit out HTML that start with @Content-Type: text/html; charset=utf-8@, if ANYTHING precedes the Content-Type text you will get a "premature script headers" error in the Apache log files.