import rt 3.4.6
[freeside.git] / rt / UPGRADING
1 UPGRADING
2
3 Detailed information about upgrading can be found in the README file.
4 This document is intended to supplement the instructions in that file.
5
6 Additional information about upgrading from specific versions of RT is
7 contained below.
8
9 *******
10 WARNING
11 *******
12
13 Before making any changes to your database, always ensure that you have a 
14 complete current backup. If you don't have a current backup, you could 
15 accidentally damage your database and lose data or worse.
16
17 *******
18
19 UPGRADING FROM 3.3.14 and earlier - Changes:
20
21 The "ModifyObjectCustomFieldValues" right name was too long. It's been changed to
22 "ModifyCustomField"
23
24
25 UPGRADING FROM 3.3.11 and earlier - Changes:
26
27 = Rights Changes =
28
29 Custom Fields now have an additional right "ModifyCustomField". 
30 This right governs whether a user can modify an object's custom field values
31 for a particular custom field. This includes adding, deleting and changing values.
32
33
34 UPGRADING FROM 3.2 and earlier - Changes:
35
36 = Rights changes =
37
38 Now, if you want any user to be able to access the Admin tools (a.k.a. 
39 the Configuration tab), you must grant that user the "ShowConfigTab" 
40 right.  Making the user a privileged user is no longer sufficient.
41
42 "SuperUser" users are no longer automatically added to the list of users who can own tickets in a queue. You now need to explicitly give them the "own tickets" right.
43
44
45
46 UPGRADING FROM 3.0.x - Changes:
47
48 = Installation =
49
50 We recommend you move your existing /opt/rt3 tree completely out
51 of the way before installating the newversion of RT, to make sure
52 that you don't inadvertently leave old files hanging around.
53
54 = Rights changes =
55
56 Now, if you want RT to automatically create new users upon ticket
57 submission, you MUST grant 'Everyone' the right to create tickets.
58 Granting this right only to "Unprivileged Users" is now insufficient.
59
60
61 = FastCGI configuration =
62
63 This section is a snapshot of the documentation available at:
64
65 http://wiki.bestpractical.com/index.cgi?FastCGIConfiguration
66
67 It's worth checking out that resource if these instructions don't 
68 work right for you
69
70
71 RT 3.2 includes a signficant change to the FastCGI handler. It is
72 no longer "setgid" to the RT group.  Perl's setid support has been
73 deprecated for the last several releases and a number of platforms
74 don't bundle the "sperl" or "suidperl" executable by default.
75 Additionally, when perl is run SetUID or SetGID, the interpreter
76 is automatically switched into /taint mode/, in which all incoming
77 data, no matter the source is considered suspect. At first, this
78 seems like a great idea. But perl's taint mode is a big sledgehammer
79 used to hit small nails.  Many perl libraries aren't tested in taint
80 mode and will fail when least expected.  Moving away from a SetGID
81 FastCGI handler will enable more users to have a smoother RT
82 experience.  It does require some changes in how you set up and
83 configure RT.
84
85 Beginning with RT 3.2, you have several choices about how to configure
86 RT to run as a FastCGI:
87
88
89 == Install RT as the user your webserver runs as ==
90
91 Pros: Very easy to configure
92
93 Cons: Your webserver has access to RT's private database password
94  
95
96 === How To
97
98 When installing RT, run:
99
100  ./configure --with-web-user="webuser"  --with-web-group="webgroup"  \ 
101     --with-rt-user="webuser" --with-rt-group="webgroup"
102
103 (Don't forget to include other configuration options that matter to you)
104
105 If you're using apache, you'll want to add something like the following 
106 to your httpd.conf:
107
108  <VirtualHost rt.example.com>
109
110     # Pass through requests to display images
111     Alias /NoAuth/images/ /opt/rt3/share/html/NoAuth/images/
112     
113     # Tell FastCGI to put its temporary files somewhere sane.
114     FastCgiIpcDir /tmp
115
116     FastCgiServer /opt/rt3/bin/mason_handler.fcgi -idle-timeout 120
117
118     AddHandler fastcgi-script fcgi
119     ScriptAlias / /opt/rt3/bin/mason_handler.fcgi/
120     
121  </VirtualHost>
122
123
124 == Make your webserver user a member of the "rt" group ==
125
126 Pros: Easy to configure
127
128 Cons: Your webserver has access to RT's private database password
129
130
131 === How To
132
133 Install RT normally. Add whichever user your webserver runs as
134 (whatever you set --with-web-user to) to the "rt" group (whatever
135 you set --with-rt-group to) in /etc/groups.
136
137 To find out what user your webserver runs as, look for the line
138
139   User some-user-name
140
141 in your apache httpd.conf. Common values are www, www-data, web and nobody.
142
143
144
145 == Run RT using _suexec_ or a similar mechanism
146
147
148 Pros: More secure
149
150 Cons: Sometimes very difficult to configure
151
152 Apache's _suexec_ utility allows you run CGI programs as specific
153 users. Because that's a relatively heavy responsibility, it's very,
154 very conservative about what it's willing to do for you. On top of
155 that, Apache's mod_fastcgi plugin doesn't respect all of suexec's
156 features.  While suexec is designed to execute CGI scripts in a
157 given virtual host's !DocumentRoot, It can only execute FastCGI
158 scripts in the system's *main* !DocumentRoot.
159
160 This means you have to copy the RT FastCGI handler into your main
161 !DocumentRoot
162
163 The following example !VirtualHost will run RT as a FastCGI on
164 Apache 1.3 on a Debian Linux server.
165
166
167  <VirtualHost rt.example.com>
168  
169    DocumentRoot /opt/rt3/share/html
170  
171     # Set the rt user and group as the executing user for this virtual host
172     User rt
173     Group rt
174
175
176     # Pass through requests to display images
177     Alias /NoAuth/images/ /opt/rt3/share/html/NoAuth/images/
178     
179     # Tell FastCGI to put its temporary files somewhere sane.
180     FastCgiIpcDir /tmp
181
182     # Tell FastCGI that it should use apache's "suexec" binary to call any 
183     # FastCGI script.
184     # This is a GLOBAL setting
185     FastCgiWrapper /usr/lib/apache/suexec
186
187     # You need to copy the rt mason_handler.fcgi into a directory inside 
188     # the main server DocumentRoot
189     # That directory must be owned by the user and group that will execute 
190     # the FastCGI script
191     # In this case, that directory is /var/www/rt
192
193     # To find the local DocumentRoot, run "suexec -V" as root and look for the 
194     #  -D DOC_ROOT parameter.
195
196     # Apache 1.3 discards the user and group parameters on the FastCgiServer 
197     # line. Apache 2.0 requires them.
198
199     FastCgiServer /var/www/rt/mason_handler.fcgi -idle-timeout 120 -user rt -group rt
200
201     AddHandler fastcgi-script fcgi
202     ScriptAlias / /var/www/rt/mason_handler.fcgi/
203     
204  </VirtualHost>
205