Re: [mp2] modperl2 compile error
[prev]
[thread]
[next]
[Date index for 2005/05/02]
--=-j21cg9dgrASg1B2tJ1SY
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
I had some problems like this on my new x86_64 machine with mod_perl2,
seems that not only perl must be compiled with -fPIC , also apache and
all libraries or modules you plan to use. I think it's a general issue
with this architecture, not mod_perl related.
If not, there are runtime linking relocation errors everywhere.. (I also
had to recompile with -fPIC db and libz, for example)
Maybe that's the problem...
El dv 29 de 04 del 2005 a les 23:25 -0700, en/na Stas Bekman va
escriure:
> Tom Caldwell wrote:
> > Stas,
> >
> > I forgot to mention that apache usually runs under a different account
> > than nobody (I use - apache), in case that matters.
>
> Of course. In which case you need to check 'apache' instead of 'nobody'.
>
> > Also, I apologize for not cc'ing the list on the last message but I
> > normally use the mail client from my desktop machine instead of this
> > Ximian client on red hat and I am not used to the client not doing the
> > cc for me.
>
> No worries.
>
> > Yes, I noticed that nobody was having trouble finding libperl.so, but it
> > seemed very strange that none of the other tests failed.
> >
> > Anyway, I tried to
> > su - nobody
> > which failed because the shell was set to /sbin/nologin.
>
> su - apache
>
> > So I fixed that (set shell to bash) and set the .bashrc file to set the
> > LD_LIBRARY_PATH to
> > /opt/perl/lib/5.8.6/x86_64-linux/CORE:/opt/apache2/server/lib/:/usr/lib64
> > so it can find libperl.so
> > /opt/perl/bin/perl -V then ran correctly from the nobody account.
> >
> > Then I reran the tests and got the same failures here is the test report
> > (see below).
> >
> > Also, I was able to run the 4 scripts in t/htdocs/util - argv.pl
> > env.pl in_err.pl in_out.pl
> >
> > They seemed to work fine except env.pl did not print anything.
> >
> > Thanks for looking into this,
> >
> > Tom
> >
> > P.S. Here is the other info you asked for.
> >
> > First line of t/TEST is
> > #!/opt/perl/bin/perl
> >
> > ldd /opt/perl/bin/perl
> > libperl.so => /opt/perl/lib/5.8.6/x86_64-linux/CORE/libperl.so
> > (0x0000002a9566d000)
>
> is it possible that this path it not readable by user 'apache'? I doubt
> so, since all other tests run just fine.
>
> what if you change one of these scripts (.e.g. t/htdocs/argv.pl) to be:
>
> #!/bin/sh
>
> printenv > /tmp/dump
> ldd /opt/perl/bin/perl >> /tmp/dump
>
> and run the subprocess test? This will show what the environment this
> subprocess script is running under.
>
--=-j21cg9dgrASg1B2tJ1SY
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.2.4">
</HEAD>
<BODY>
I had some problems like this on my new x86_64 machine with mod_perl2, seems that not only perl must be compiled with -fPIC , also apache and all libraries or modules you plan to use. I think it's a general issue with this architecture, not mod_perl related.<BR>
If not, there are runtime linking relocation errors everywhere.. (I also had to recompile with -fPIC db and libz, for example)<BR>
Maybe that's the problem...<BR>
<BR>
El dv 29 de 04 del 2005 a les 23:25 -0700, en/na Stas Bekman va escriure:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Tom Caldwell wrote:</FONT>
<FONT COLOR="#000000">> Stas,</FONT>
<FONT COLOR="#000000">> </FONT>
<FONT COLOR="#000000">> I forgot to mention that apache usually runs under a different account</FONT>
<FONT COLOR="#000000">> than nobody (I use - apache), in case that matters.</FONT>
<FONT COLOR="#000000">Of course. In which case you need to check 'apache' instead of 'nobody'.</FONT>
<FONT COLOR="#000000">> Also, I apologize for not cc'ing the list on the last message but I</FONT>
<FONT COLOR="#000000">> normally use the mail client from my desktop machine instead of this</FONT>
<FONT COLOR="#000000">> Ximian client on red hat and I am not used to the client not doing the</FONT>
<FONT COLOR="#000000">> cc for me.</FONT>
<FONT COLOR="#000000">No worries.</FONT>
<FONT COLOR="#000000"> > Yes, I noticed that nobody was having trouble finding libperl.so, but it</FONT>
<FONT COLOR="#000000"> > seemed very strange that none of the other tests failed.</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > Anyway, I tried to</FONT>
<FONT COLOR="#000000"> > su - nobody</FONT>
<FONT COLOR="#000000"> > which failed because the shell was set to /sbin/nologin.</FONT>
<FONT COLOR="#000000">su - apache</FONT>
<FONT COLOR="#000000"> > So I fixed that (set shell to bash) and set the .bashrc file to set the</FONT>
<FONT COLOR="#000000"> > LD_LIBRARY_PATH to</FONT>
<FONT COLOR="#000000"> > /opt/perl/lib/5.8.6/x86_64-linux/CORE:/opt/apache2/server/lib/:/usr/lib64</FONT>
<FONT COLOR="#000000"> > so it can find libperl.so</FONT>
<FONT COLOR="#000000"> > /opt/perl/bin/perl -V then ran correctly from the nobody account.</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > Then I reran the tests and got the same failures here is the test report</FONT>
<FONT COLOR="#000000"> > (see below).</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > Also, I was able to run the 4 scripts in t/htdocs/util - argv.pl</FONT>
<FONT COLOR="#000000"> > env.pl in_err.pl in_out.pl</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > They seemed to work fine except env.pl did not print anything.</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > Thanks for looking into this,</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > Tom</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > P.S. Here is the other info you asked for.</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > First line of t/TEST is</FONT>
<FONT COLOR="#000000"> > #!/opt/perl/bin/perl</FONT>
<FONT COLOR="#000000"> ></FONT>
<FONT COLOR="#000000"> > ldd /opt/perl/bin/perl</FONT>
<FONT COLOR="#000000"> > libperl.so => /opt/perl/lib/5.8.6/x86_64-linux/CORE/libperl.so</FONT>
<FONT COLOR="#000000"> > (0x0000002a9566d000)</FONT>
<FONT COLOR="#000000">is it possible that this path it not readable by user 'apache'? I doubt </FONT>
<FONT COLOR="#000000">so, since all other tests run just fine.</FONT>
<FONT COLOR="#000000">what if you change one of these scripts (.e.g. t/htdocs/argv.pl) to be:</FONT>
<FONT COLOR="#000000">#!/bin/sh</FONT>
<FONT COLOR="#000000">printenv > /tmp/dump</FONT>
<FONT COLOR="#000000">ldd /opt/perl/bin/perl >> /tmp/dump</FONT>
<FONT COLOR="#000000">and run the subprocess test? This will show what the environment this </FONT>
<FONT COLOR="#000000">subprocess script is running under.</FONT>
</PRE>
</BLOCKQUOTE>
</BODY>
</HTML>
--=-j21cg9dgrASg1B2tJ1SY--
 |
(message missing)
|