RT and oracle

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.

Date: Tue, 7 Mar 2006 08:21:20 -0600
From: “Don Beethe” dmbeethe@fedex.com
Subject: [rt-users] RT and oracle
To: rt-users@lists.bestpractical.com
Message-ID:
CBFD49490FF183498C0C74C2317C7FE5031B78C3@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@mococo.nl

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@lists.bestpractical.com wrote:

Date: Tue, 7 Mar 2006 08:21:20 -0600
From: “Don Beethe” dmbeethe@fedex.com
Subject: [rt-users] RT and oracle
To: rt-users@lists.bestpractical.com
Message-ID:
CBFD49490FF183498C0C74C2317C7FE5031B78C3@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@mococo.nl


The rt-users Archives

Community help: http://wiki.bestpractical.com
Commercial support: sales@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: Careers — Best Practical Solutions

I had the same problem.

I changed mod_perl 2.0.2 to mod_perl 1.29 and it runs ok:

Now my installation is:

RT 3.4.4
Apache 1.3.34
Perl 5.8
mod_perl 1.29

and it works okDe: Joop van de Wege [mailto:JoopvandeWege@mococo.nl]
Enviado el: mi�rcoles, 08 de marzo de 2006 7:53
Para: rt-users@lists.bestpractical.com
Asunto: [rt-users] RT and oracle

Date: Tue, 7 Mar 2006 08:21:20 -0600
From: “Don Beethe” dmbeethe@fedex.com
Subject: [rt-users] RT and oracle
To: rt-users@lists.bestpractical.com
Message-ID:
CBFD49490FF183498C0C74C2317C7FE5031B78C3@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@mococo.nl

http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sales@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: