[rt-users] RT and oracle

Jesse Vincent jesse at bestpractical.com
Wed Mar 8 14:09:16 EST 2006


Joop,

Can you try this patch:

--- Interface/Web/Handler.pm    (revision 24471)
+++ Interface/Web/Handler.pm    (local)
@@ -117,7 +117,9 @@ sub InitSessionDir {
         # Clean up our umask to protect session files
         umask(0077);

-        if ($CGI::MOD_PERL) {
+        if ($CGI::MOD_PERL and not ( $mod_perl::VERSION && $mod_perl::VERSION >= 1.9908 )) {
             chown( Apache->server->uid, Apache->server->gid,
                 $RT::MasonSessionDir )
             if Apache->server->can('uid');



On Wed, Mar 08, 2006 at 10:52:46AM +0100, Joop van de Wege wrote:
> 
> On Tue,  7 Mar 2006 11:14:43 -0500 (EST)
> rt-users-request at lists.bestpractical.com wrote:
> 
> > Date: Tue, 7 Mar 2006 08:21:20 -0600
> > From: "Don Beethe" <dmbeethe at fedex.com>
> > Subject: [rt-users] RT and oracle
> > To: <rt-users at lists.bestpractical.com>
> > Message-ID:
> > 	<CBFD49490FF183498C0C74C2317C7FE5031B78C3 at MEMEXCH06V.corp.ds.fedex.com>
> > 	
> > Content-Type: text/plain;	charset="us-ascii"
> > 
> >  Trying to get RT with oracle database running. I've got Apache 2.0.54,
> > mod_perl 2.0.2, perl 5.8.5 and oracle 9.2.0. I try to start apache and
> > get: 
> > Can't locate object method "server" via package "Apache" at
> > /opt/rt3/lib/RT/Interface/Web/Handler.pm line 121
> > 
> > Is there some module I'm missing? 
> > Tried adding PerlModule Apache2::compat to my httpd.conf to no avail. 
> 
> There is something weird going on. I have a FC4 installation with
> RT-3.4.4 and OracleXE using Apache 2.0.54, mod_perl-2.0.1, perl 5.8.6
> and encountered the same error. I have gone as far as re-installing that
> system with all packages just in case I missed something, same result.
> I now have a Ubuntu systeem with the same configuration, almost, and
> that works OK using fastcgi. I'll see if I can get RT to work with
> mod_perl. I suspect the same problems though.
> The reason is that the subroutine InitSessionDir is checking whether the
> database is mysql/pg or something else. When it is something else it
> will store its sessionfiles on disk and that piece of code is using
> mod_perl-1 functions. I commented that part partly out and then it works.
> Another way is to include Oracle in the comparison.
> 
> sub InitSessionDir {
>     # Activate the following if running httpd as root (the normal case).
>     # Resets ownership of all files created by Mason at startup.
>     # Note that mysql uses DB for sessions, so there's no need to do this.
>     unless ( $RT::DatabaseType =~ /(?:mysql|Pg)/ ) {
> 
>         # Clean up our umask to protect session files
>         umask(0077);
> 
> #        if ($CGI::MOD_PERL) {
> #            chown( Apache->server->uid, Apache->server->gid,
> #                $RT::MasonSessionDir )
> #            if Apache->server->can('uid');
> #        }
> 
>         # Die if WebSessionDir doesn't exist or we can't write to it
>         stat($RT::MasonSessionDir);
>         die "Can't read and write $RT::MasonSessionDir"
>         unless ( ( -d _ ) and ( -r _ ) and ( -w _ ) );
>     }
> 
> }
> 
> 
> Joop
> 
> -- 
> Joop van de Wege <JoopvandeWege at mococo.nl>
> 
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
> 
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
> 
> 
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com
> 
> 
> We're hiring! Come hack Perl for Best Practical: http://bestpractical.com/about/jobs.html
> 

-- 



More information about the rt-users mailing list