success with Apache::Compress

2001-02-22 Thread Justin

Hi, after looking at mod_gzip, Apache::Gzip, Apache::GzipChain
and so on, I decided to try Apache::Compress, with some doubt that
it was "worth it"

There were a few hiccups, but it worked out great.

To test "in production" I created an alias /x to my cgi location,
and then added

Aloas /y /path/to/my/modperl/programs/
Aloas /x /path/to/my/modperl/programs/
PerlModule Apache::Filter
PerlModule Apache::RegistryNG
PerlModule Apache::RegistryBB

# original gateway
Location /y
  ..
  SetHandler perl-script
  PerlHandler Apache::RegistryBB-handler
  ..
/Location

# optional compressing gateway
Location /x
  ..
  SetHandler perl-script
  PerlSetVar Filter on
  PerlHandler Apache::RegistryFilter Apache::Compress
  ..
/Location

I also changed Apache::RegistryFilter to subclass from Apache::RegistryBB
(bare bones), as that is my preferred harness.. (if you mix 
Registry classes, mod_perl will not recognize the same script as
the same script and recompile it again, wasting memory).

Ok so I found one problem ..

If a client is 1.1 but does not accept gzip, then I'd get an internal
server error and a perl complaint about an invalid file handle GE.
I fixed this by changing the fallback (non compressing filter) code in
Apache::Compress to print, rather than use send_fd() .. I don't know why
this worked, but it does..

Next problem .. the zoo of browsers out there that lie about being
able to handle gzip.. I don't want to assume they all work, then have
users look at pages of gibberish, so I used mod_rewrite to conditionally
use the compressing gateway initially ONLY for two browser regexps:
(but they are by far the most popular):

RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[45].*Windows.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[45].*Opera.*
RewriteRule ^(.*) http://back.end.server.ip/x/mysite$1 [P]

One could also, I guess, offer a new subdomain using mod_rewrite..
 www.mysite.com (directed to non compressing URL)
 fast.mysite.com (directed to compressing URL)

Next problem .. I had an unfortunate habit of printing
Location: blah\n\n
from my mod_perl programs which breaks under the compressing filter
chain so rather than fix this now, I used mod_rewrite RewriteRule
again to strip out my URLs that have this kind of redirect, to
point to the /y (non compressing) handler regardless.

Result: this is the good part :-)

* Since all my content is dynamic and most is HTML with fiddly stuff,
  nett site outgoing bandwidth (and bill) has dropped by 2/3rds !!

* the modperl machine is now working harder.. where previously it was
  delivering approx 300k/sec and was 20% cpu busy, it is now delivering
  the same page count but 142kb/sec of compressed data but is 40% cpu
  busy .. since it is SMP I'm guessing it takes 40% of one PIII 1ghz
  to handle the load of about 140k/sec of compressed html..

* page sizes are MUCH smaller, in many/most cases...
  home page -- 50k -- 12k
  one 50 post forum thread -- 120k -- 22k
  large html table with finnicky cell colors etc -- 87k -- 8k

* load times from the users perspective, even on a DSL line, feel
  twice as fast. On a modem, for some examples above, it would feel
  5x faster! my subjective feel under MSIE on just a 300mhz laptop,
  but connected to a 784kbps DSL line, was that pages appear
  twice as fast.. 

* my bandwidth bill drops by 2/3rd (would be much more but html was
  not 100% of bandwidth, plus I'm conservative about switching it
  on for more browsers)..

AWESOME..

-Justin



Re: Rotating Apache logs

2001-02-22 Thread G.W. Haywood

Hi all,

On Thu, 22 Feb 2001, Terry Newnham wrote:

 Is there a command-line use or the rotatelogs by means of
 which you can rotate the logs on the fly ?

Your logs can be piped through a program so you can do anything you
like with them, on the fly.

For example (from http://perl.apache.org/guide):

  LogFormat "%h %l %u %t \"%r\" %s %b" common
  CustomLog "| /usr/local/apache/bin/syslogger.pl hostnameX" common

Note that this particular approach is said to be slow, but there are
other ways of doing it.

73,
Ged.






Re: Rotating Apache logs

2001-02-22 Thread Edwin Pratomo

this is off-topic, coz logrotate should do it.
man logrotate.

rgds,
Edwin

Terry Newnham wrote:
 
 Hi
 
 I've found out how to edit httpd.conf so that it will rotate the error
 and access logs. But you have to restart apache to read that which I'd
 rather not do. Is there a command-line use or the rotatelogs by means of
 which you can rotate the logs on the fly ?
 
 Terry



RE: Odd Caching Bug

2001-02-22 Thread Stathy Touloumis

 So, if I understand correctly, the database handle is getting cached
 more than you think it should, that's right?

I was unsure where the caching was occurring.

 I think MaxRequestsPerChild doesn't actually cut off a connection that
 is kept alive (with KeepAlive). Ctrl-N in a browser could validly reuse
 the same connection if it is still around (if you wait too long, a
 keep-alive connection will be closed).

This would make sense.  It would seem that 'KeepAlive' keeps the 'request'
open until
it times out.

 So even though you've set up MaxRequestsPerChild to 1, each Apache child
 process could be serving multiple requests over a single TCP/IP
 connection. The answer to "where the caching is occuring" would be in
 Apache::DBI, which opens a single DB connection per Apache child
 process.

  - stop using Apache::DBI.

  - have your scripts explicitly set the date format they want every time
 (do not rely on "whatever format is already there").

Actually these are both not options : )  We really are not allowing
developers to modify global database variables.  This is the first no-no.
Because it is not a strict policy somebody obviously abused it : )

 With both solutions, you'll be able to leave the keep-alive enabled and
 use a saner MaxRequestsPerChild (like the default setting). Having
 "MaxRequestsPerChild 1" is harsh on resources!
Understandably the configuration is not optimized but it is only in a
development environment to allow for simultaneous development of modules,
components and visual elements.  Our production environment varies
significantly in it's configuration directives.

Thanks for the information though.  It clarified what I was originally
thinking.

Thanks,




[ANNOUNCE] Apache-Clean 0.01

2001-02-22 Thread Geoffrey Young

The URL

http://morpheus.laserlink.net/~gyoung/modules/Apache-Clean-0.01.tar.gz

has entered CPAN as

  file: $CPAN/authors/id/G/GE/GEOFF/Apache-Clean-0.01.tar.gz
  size: 3509 bytes
   md5: ff98b3f35d63852d1727b71bd27788e6

Nothing fancy here, just useful...

README:
NAME 

Apache::Clean - mod_perl interface into HTML::Clean

SYNOPSIS

httpd.conf:

 Location /someplace
SetHandler perl-script
PerlHandler Apache::Clean

PerlSetVar  CleanLevel 3
 /Location  

Apache::Clean is Filter aware, meaning that it can be used within
Apache::Filter framework without modification.  Just include the
directives

  PerlModule Apache::Filter
  PerlSetVar Filter On

and modify the PerlHandler directive accordingly...

DESCRIPTION

Apache::Clean uses HTML::Clean to tidy up large, messy HTML, saving
bandwidth.  It is particularly useful with Apache::Compress for 
ultimate savings.

The only current configuration directive is CleanLevel, which defaults
to 3.  Apache::Clean will only tidy up whitespace (via $h-strip) and
will not perform other options of HTML::Clean (such as browser
compatibility).  See the HTML::Clean manpage for details.

Only documents with a content type of "text/html" are affected - all
others are passed through unaltered.

NOTES

Verbose debugging is enabled by setting $Apache::Clean::DEBUG=1
or greater.  To turn off all debug information, set your apache
LogLevel directive above info level.

This is alpha software, and as such has not been tested on multiple
platforms or environments.  It requires PERL_LOG_API=1, 
PERL_FILE_API=1, and maybe other hooks to function properly.

FEATURES/BUGS

  No unknown bugs or features at this time...

SEE ALSO

perl(1), mod_perl(3), Apache(3), Apache::Filter(3), 
Apache::Compress(3), HTML::Clean(3)

AUTHOR

Geoffrey Young [EMAIL PROTECTED]

COPYRIGHT

Copyright (c) 2001, Geoffrey Young.  All rights reserved.

This module is free software.  It may be used, redistributed
and/or modified under the same terms as Perl itself.



Process Running Even after timeout

2001-02-22 Thread Kiran Kumar.M



Hi,
 I have a program that fetches data from 
mysql database,since the database is huge the user gets a time-out(this has been 
taken care now :-)) , but when i see the process list the mysqld process for 
that request is still running , Dosent apache close the database connection 
after it sends a timeout ???

Kiran


Re: Process Running Even after timeout

2001-02-22 Thread Dave Hodgkinson

"Kiran Kumar.M" [EMAIL PROTECTED] writes:

   I have a program that fetches data from mysql database,since the =
 database is huge the user gets a time-out(this has been taken care now =
 :-)) , but when i see the process list the mysqld process for that =
 request is still running , Dosent apache close the database connection =
 after it sends a timeout ???

Yes, but mysql is busy doing your query.


-- 
Dave Hodgkinson, http://www.hodgkinson.org
Editor-in-chief, The Highway Star   http://www.deep-purple.com
  Apache, mod_perl, MySQL, Sybase hired gun for, well, hire
  -



Re: Rotating Apache logs

2001-02-22 Thread Alexander Farber (EED)

Terry Newnham wrote:
 I've found out how to edit httpd.conf so that it will rotate the error
 and access logs. But you have to restart apache to read that which I'd
 rather not do. Is there a command-line use or the rotatelogs by means of
 which you can rotate the logs on the fly ?

On log rotation see http://www.modperl.com/perl_conference/



Re: [OT] Re: Rotating Apache logs

2001-02-22 Thread Michael Smith

You may be aware of this, but cronolog is another option:

http://www.ford-mason.co.uk/resources/cronolog/

Mike

- Original Message -
From: "Steve Reppucci" [EMAIL PROTECTED]
To: "Terry Newnham" [EMAIL PROTECTED]
Cc: "mod_perl list" [EMAIL PROTECTED]
Sent: Thursday, February 22, 2001 2:11 PM
Subject: [OT] Re: Rotating Apache logs



 This is definitely off topic for this list, however...

 I'm not exactly sure what you're asking here, but if what you're asking is
 "how do I rotate logfiles without doing a hard stop/start cycle?", then
 the answer is (from the command line...) rename the open logfiles, then
 send the server either a SIGHUP or a SIGUSR1, which will cause it to
 reopen its logfiles.

 SIGHUP does it "forcefully" (existing requests will aborted), while
 SIGUSR1 does it "gracefully", allowing each child server currently
 handling requests to complete the request before restarting it.

 If you use the 'apachectl' control script included in the apache
 distribution, these options correspond to 'apachectl restart' and
 'apachectl graceful', respectively (although, if I remember right, the
 'graceful' option wasn't added until around release 1.3.0).

 So, something like this is what you want to do:

   root# cd /usr/local/apache
   root# mv logs/access_log logs/access_log.21-feb-2001
   root# mv logs/error_log  logs/error_log.21-feb-2001
   root# ./apachectl graceful

 At this point, new logs will be opened in the logs directory, and you can
 safely do whatever (gzip, archive, analyze, etc...) you want with the
 rotated logs.

 HTH,
 Steve

 On Thu, 22 Feb 2001, Terry Newnham wrote:

  I've found out how to edit httpd.conf so that it will rotate the error
  and access logs. But you have to restart apache to read that which I'd
  rather not do. Is there a command-line use or the rotatelogs by means of
  which you can rotate the logs on the fly ?

 =-=-=-=-=-=-=-=-=-=-  My God!  What have I done?  -=-=-=-=-=-=-=-=-=-=
 Steve Reppucci   [EMAIL PROTECTED] |
 Logical Choice Software  http://logsoft.com/ |






Apache::ASP Undefined symbol Perl_Tstack_sp_ptr

2001-02-22 Thread CioccarelliA

Hi,

I am trying to get Apache ASP to work but haven't had a lot of luck. I
have Apache 1.3.17 compiled with mod_ssl, php3 and mod_perl (which is
as a module). Everyting is working fineexcept ASP pages. I am trying the
demo ones included but each time I try I get the following in the error
log.

/usr/libexec/ld-elf.so.1:
/usr/local/lib/perl5/5.6.0/i386-freebsd-multi/auto/SDBM_File/SDBM_File.so:
Undefined symbol "Perl_Tstack_sp_ptr"

Any ideas?

Regards,
Adam Cioccarelli





Re: Apache::ASP Undefined symbol Perl_Tstack_sp_ptr

2001-02-22 Thread Joshua Chamas

CioccarelliA wrote:
 
 Hi,
 
 I am trying to get Apache ASP to work but haven't had a lot of luck. I
 have Apache 1.3.17 compiled with mod_ssl, php3 and mod_perl (which is
 as a module). Everyting is working fineexcept ASP pages. I am trying the
 demo ones included but each time I try I get the following in the error
 log.
 
 /usr/libexec/ld-elf.so.1:
 /usr/local/lib/perl5/5.6.0/i386-freebsd-multi/auto/SDBM_File/SDBM_File.so:
 Undefined symbol "Perl_Tstack_sp_ptr"
 

There is something wrong with your perl build.  I would recommend
rebuilding it so that SDBM_File works, which is a standard
module that comes with perl  that Apache::ASP uses.  If you
don't wan't to deal with it, you can comment out instances of:

  use MLDBM;
  use SDBM_File;

in ASP.pm and then set PerlSetVar NoState 1, but you won't get 
$Session or $Application objects.  If you wanted a $Session still,
you could then use Apache::Session to initialize $Session in your 
global.asa Script_OnStart and it would be much the same for you
with $Session available to all your scripts.

To test your perl for SDBM_File working, you can do something like 

  perl -MSDBM_File -e ';'

which will at least test the module for loading.

If you want to rebuild your perl, I'd recommend installing it into
another part of your system, so if your old perl were in /usr/...
then I'd install the new perl in /usr/local/..., this way so you
don't have to deal with one perl overlaying another possibly.

Then you'd have to rebuild mod_perl against your new perl.

-- Josh

_
Joshua Chamas   Chamas Enterprises Inc.
NodeWorks  free web link monitoring   Huntington Beach, CA  USA 
http://www.nodeworks.com1-714-625-4051



Re: Apache/mod_perl/Win2K gpfault finally resolved?

2001-02-22 Thread sterling

On Tue, 20 Feb 2001, William A. Rowe, Jr. wrote:

 Folks,
 
   any of you in a position to grab the current Apache tree from CVS and build
 Apache plus mod_perl, and see if the gpfault is gone, here is the 'unpatch' for
 John Sterling's quick hack:

my 'quick hack' doesn't work anymore anyways because of some recent apache
changes regarding the console.  I just built apache from head, modperl
from head, and it still crashes - so its still unresolved.

i'll build debug versions and see if I can find any clarity.

sterling




Apache::ASP Troubles

2001-02-22 Thread Boeringa, Michael

I recently installed and confiugured Linux-Mandrake 7.2 on my machine. I was
trying to get Apache up and running and found that Mandrake 7.2 runs two
versions of Apache 1.3.14 - the regular httpd Daemon (p80) and a httpd-perl
Daemon (p8007) that is set up in httpd.conf to proxy all cgi-scripts to the
httpd-perl daemon runing on port 8007. My problem is that when I try to add
the Directory structure or and Files structures to set up the
Apache::ASP in the httpd.conf file it does not understand the PerlHandler
directive. I took out the Directory structure and placed it into the
httpd-perl.conf but when I type the URL of the ASP demos on the web server
all it does is print the source on the screen. I cannot get the webserver to
process the ASP. Please help!

Thanks,
Mike Boeringa



Re: Apache::ASP Troubles

2001-02-22 Thread Joshua Chamas

"Boeringa, Michael" wrote:
 
 I recently installed and confiugured Linux-Mandrake 7.2 on my machine. I was
 trying to get Apache up and running and found that Mandrake 7.2 runs two
 versions of Apache 1.3.14 - the regular httpd Daemon (p80) and a httpd-perl
 Daemon (p8007) that is set up in httpd.conf to proxy all cgi-scripts to the
 httpd-perl daemon runing on port 8007. My problem is that when I try to add
 the Directory structure or and Files structures to set up the
 Apache::ASP in the httpd.conf file it does not understand the PerlHandler
 directive. I took out the Directory structure and placed it into the

 httpd-perl.conf but when I type the URL of the ASP demos on the web server
 all it does is print the source on the screen. I cannot get the webserver to
 process the ASP. Please help!
 

Try doing what's suggested at http://www.apache-asp.org/install.html#Quick%20Start

Its a matter of telling Apache which files to let Apache::ASP
handle.  The above link suggests you can start with letting
the ./site/eg/.htaccess activate the example files.

-- Josh

_
Joshua Chamas   Chamas Enterprises Inc.
NodeWorks  free web link monitoring   Huntington Beach, CA  USA 
http://www.nodeworks.com1-714-625-4051



[ANNOUNCE] Apache::FileMan 0.06c

2001-02-22 Thread George Sanderson

FileMan provides a file manager for a web sites through a web browser. It
is a extensive rewrite of the Apache::AutoIndex.pm module (written by
Philippe M. Chiasson), which in turn was a remake of the autoindex Apache
module. FileMan can provide the same functionality as AutoIndex.pm and can
be used to both navigate and manage the web site.

This version (0.06c) corrects an Apache::Language problem displaying 1's.

Special thanks goes out to "Aaron Johnson" [EMAIL PROTECTED]  and his
co-worker 
Ken Clark (who work for ProVillage), for finding the Language problem and
making performance suggestions that have been incorporated.  The latest
release can be found at:
httpd://www.xorgate.com/FileMan
An on line demo is available at:
httpd://www.xorgate.com/FileMan/demo

If you have any questions, comments, or success stories please provide it
to me, so that a good user base can be established before committing the
code to CPAN.






(apache question) Working around MaxClients?

2001-02-22 Thread Philip Mak

Hello,

I have a high traffic website (looks like 200 GB output per month,
something around 10-20 hits per day) hosted on a commercial
service. The service does not limit my bandwidth usage, but they limit the
number of concurrent Apache process that I can have to 41. This causes the
server to delay accepting new connections during peak times.

My account is a "virtual server"; what this means is that I have access to
the Apache httpd.conf files and can restart the Apache daemon, but do not
have the priviledge to bind a program to port 80 (so I can't put thttpd on
port 80).

I was thinking of serving the HTML files from Apache and the JPG files
from thttpd (thttpd uses select() so it always only uses up one process,
no matter how many connections it's handling) on port 8080, but there's
one disadvantage: People who browse my site from behind certain firewalls
can only see port 80.

Does anyone know of a way to configure Apache so that it will pass port 80
traffic onto port 8080 somehow, without having access to modify the
binary? It would have to do this without needing to spawn a child for
every request though. Or is this impossible?

Thanks,

-Philip Mak ([EMAIL PROTECTED])

P.S. Is there a mailing list for general Apache questions somewhere? I
can't seem to find one.




[OT] RE: (apache question) Working around MaxClients?

2001-02-22 Thread Stathy Touloumis

Why don't you setup apache to do proxying?

 I have a high traffic website (looks like 200 GB output per month,
 something around 10-20 hits per day) hosted on a commercial
 service. The service does not limit my bandwidth usage, but they limit the
 number of concurrent Apache process that I can have to 41. This causes the
 server to delay accepting new connections during peak times.

 My account is a "virtual server"; what this means is that I have access to
 the Apache httpd.conf files and can restart the Apache daemon, but do not
 have the priviledge to bind a program to port 80 (so I can't put thttpd on
 port 80).

 I was thinking of serving the HTML files from Apache and the JPG files
 from thttpd (thttpd uses select() so it always only uses up one process,
 no matter how many connections it's handling) on port 8080, but there's
 one disadvantage: People who browse my site from behind certain firewalls
 can only see port 80.

 Does anyone know of a way to configure Apache so that it will pass port 80
 traffic onto port 8080 somehow, without having access to modify the
 binary? It would have to do this without needing to spawn a child for
 every request though. Or is this impossible?




Re: [OT] RE: (apache question) Working around MaxClients?

2001-02-22 Thread Philip Mak

# Doesn't work. Children still get tied up serving requests.
#ProxyPass / http://www.animewallpapers.com:8080/
#ProxyPassReverse / http://www.animewallpapers.com:8080/

That doesn't get me around the limit of 41 Apache processes...

-Philip Mak ([EMAIL PROTECTED])

On Thu, 22 Feb 2001, Stathy Touloumis wrote:

 Why don't you setup apache to do proxying?
 
  I have a high traffic website (looks like 200 GB output per month,
  something around 10-20 hits per day) hosted on a commercial
  service. The service does not limit my bandwidth usage, but they limit the
  number of concurrent Apache process that I can have to 41. This causes the
  server to delay accepting new connections during peak times.
 
  My account is a "virtual server"; what this means is that I have access to
  the Apache httpd.conf files and can restart the Apache daemon, but do not
  have the priviledge to bind a program to port 80 (so I can't put thttpd on
  port 80).
 
  I was thinking of serving the HTML files from Apache and the JPG files
  from thttpd (thttpd uses select() so it always only uses up one process,
  no matter how many connections it's handling) on port 8080, but there's
  one disadvantage: People who browse my site from behind certain firewalls
  can only see port 80.
 
  Does anyone know of a way to configure Apache so that it will pass port 80
  traffic onto port 8080 somehow, without having access to modify the
  binary? It would have to do this without needing to spawn a child for
  every request though. Or is this impossible?




SSL ,Apache Keep alive

2001-02-22 Thread Sachin Lakhanpal

Hello ,

  i am trying to understand what am i supposed to come up with , so 
here i have a client application trying to do a SECURE HTTP POST to the apache 
webserver .

  The data to be posted is huge running in megs, so what we are doing
is we are at the client end splitting this data in smaller chunks .

  so heres what we want , the client is working with raw sockets to 
open a socket to the webserver and start the posting,we don't want to
get tied to the fact that after each post of a small chunk we will 
have to close the socket and do a post for the next chunk of data and 
so on,there would be an unacceptable over head of SSL authorization 
everytime the socket is opened.

  so i have a question regarding the Keep alive option on 
apache,would this option help us here so that initially when the 
client opens a socket to the webserver SSL authorization takes place and from then on 
this same connection (same session) SSL 
authorization is not required for successive post requests.


Any help is appreciated,

Thanks,
Sachin Lakhanpal
  




--== Sent via Deja.com ==--
http://www.deja.com/





Re: [OT] SSL ,Apache Keep alive

2001-02-22 Thread ___cliff rayman___

this is no longer a mod_perl question but,
check out:

http://www.modssl.org/docs/2.8/ssl_reference.html#ToC5 - SSLSessionCache

i'm am far from an SSL expert, but this should help minimize the SSL
authorization overhead.

--
___cliff [EMAIL PROTECTED]http://www.genwax.com/


Sachin Lakhanpal wrote:

 Hello ,

   i am trying to understand what am i supposed to come up with , so
 here i have a client application trying to do a SECURE HTTP POST to the apache 
webserver .

   The data to be posted is huge running in megs, so what we are doing
 is we are at the client end splitting this data in smaller chunks .

   so heres what we want , the client is working with raw sockets to
 open a socket to the webserver and start the posting,we don't want to
 get tied to the fact that after each post of a small chunk we will
 have to close the socket and do a post for the next chunk of data and
 so on,there would be an unacceptable over head of SSL authorization
 everytime the socket is opened.

   so i have a question regarding the Keep alive option on
 apache,would this option help us here so that initially when the
 client opens a socket to the webserver SSL authorization takes place and from then 
on this same connection (same session) SSL
 authorization is not required for successive post requests.







Re: [OT] (apache question) Working around MaxClients?

2001-02-22 Thread Perrin Harkins

 I have a high traffic website (looks like 200 GB output per month,
 something around 10-20 hits per day) hosted on a commercial
 service. The service does not limit my bandwidth usage, but they limit the
 number of concurrent Apache process that I can have to 41. This causes the
 server to delay accepting new connections during peak times.

That seems pretty arbitrary.  They use that instead of some kind of memory
or CPU cap?

 My account is a "virtual server"; what this means is that I have access to
 the Apache httpd.conf files and can restart the Apache daemon, but do not
 have the priviledge to bind a program to port 80 (so I can't put thttpd on
 port 80).

That rules out some obvious solutions like lingerd and squid (which I think
uses a select loop).  Sounds like they've made it so there's nothing you can
do except try to server your content faster.  You could look at
Apache::Compress.

- Perrin




Re: [gsar@ActiveState.com: v5.6.1 trial2 is available]

2001-02-22 Thread Jens-Uwe Mager

On Fri, Feb 16, 2001 at 05:44:34PM +0100, [EMAIL PROTECTED] wrote:
 On Fri, 16 Feb 2001 [EMAIL PROTECTED] wrote:
 
  Hi Jarkko,
 
I'll try to do one or two more builds. I'd really like to try it with
Apache's mod_perl and mod_embed, these really didn't work at all with
perl-5.6.0, but I'm not sure I'll find the time.
 
 [AIX-4.3.2, IBM's C compiler, Apache apxs shared modules]
 
 I tried to get mod_perl-1.25 (an Apache/perl module that's
 supposed to let you use perl to implement script-based apache modules)
 working with perl-5.6.1-trial2, and failed. I can get mod_perl
 working with perl-5.5.3, but I never succeeded with perl-5.6.0.
 
 With perl-5.6.1-trial2, the mod-perl initialisation is successful, but I
 get a segmentation fault as soon as I try to access the perl script
 (test.pl or test.perl).

A short while ago the Apache distribution did change over to the native
dlopen library if the AIX version 4.3 and above. For previous versions
the dlopen emulation layer is still used. Perl does always use the
emulation, which produces a conflict if Apache uses the native one in
the modperl case. I attach a patch below that changes the perl
distribution to also use the native AIX dlopen on AIX 4.3 and above as
in the Apache case.

For getting some more involved modperl modules like Embperl to work we
probably need to change the modperl.exp file to include the magic "#! ."
instead of simply "#!" at the beginning, this signals the native dlopen
to import symbols from the main program. The patch already does that in
makedef.pl for the perl.exp file, but only on AIX 4.3 and above because
the older AIX linkers do strange things if this option is used.

-- 
Jens-Uwe Mager

HELIOS Software GmbH
Steinriede 3
30827 Garbsen
Germany

Phone:  +49 5131 709320
FAX:+49 5131 709325
Internet:   [EMAIL PROTECTED]


--- perl-5.6.1-TRIAL2/ext/DynaLoader/dl_aix.xs.orig Wed Feb 21 19:45:18 2001
+++ perl-5.6.1-TRIAL2/ext/DynaLoader/dl_aix.xs  Wed Feb 21 21:16:53 2001
@@ -14,6 +14,21 @@
 #define PERLIO_NOT_STDIO 0
 
 /*
+ * On AIX 4.3 and above the emulation layer is not needed any more, and
+ * indeed if perl uses its emulation and perl is linked into apache
+ * which is supposed to use the native dlopen conflicts arise.
+ * Jens-Uwe Mager [EMAIL PROTECTED]
+ */
+#ifdef USE_NATIVE_DLOPEN
+
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+#include dlfcn.h
+
+#else
+
+/*
  * @(#)dlfcn.c 1.5 revision of 93/02/14  20:14:17
  * This is an unpublished work copyright (c) 1992 Helios Software GmbH
  * 3000 Hannover 1, Germany
@@ -89,6 +104,13 @@
 # define FREAD(p,s,n,ldptr)fread(p,s,n,IOPTR(ldptr))
 #endif
 
+#ifndef RTLD_LAZY
+# define RTLD_LAZY 0
+#endif
+#ifndef RTLD_GLOBAL
+# define RTLD_GLOBAL 0
+#endif
+
 /*
  * We simulate dlopen() et al. through a call to load. Because AIX has
  * no call to find an exported symbol we read the loader section of the
@@ -627,6 +649,7 @@
safefree(buf);
return ret;
 }
+#endif /* USE_NATIVE_DLOPEN */
 
 /* dl_dlopen.xs
  * 
@@ -672,7 +695,7 @@
DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_load_file(%s,%x):\n", 
filename,flags));
if (flags  0x01)
Perl_warn(aTHX_ "Can't make loaded symbols global on this platform while 
loading %s",filename);
-   RETVAL = dlopen(filename, 1) ;
+   RETVAL = dlopen(filename, RTLD_GLOBAL|RTLD_LAZY) ;
DLDEBUG(2,PerlIO_printf(Perl_debug_log, " libref=%x\n", RETVAL));
ST(0) = sv_newmortal() ;
if (RETVAL == NULL)
--- perl-5.6.1-TRIAL2/hints/aix.sh.orig Wed Feb 21 19:39:30 2001
+++ perl-5.6.1-TRIAL2/hints/aix.sh  Wed Feb 21 19:45:00 2001
@@ -55,9 +55,11 @@
 case "$osvers" in
3.*|4.1.*|4.2.*)
   usenm='undef'
+  usenativedlopen='false'
   ;;
*)
   usenm='true'
+  usenativedlopen='true'
   ;;
 esac
 
@@ -405,20 +407,25 @@
 esac
 EOCBU
 
-# If the C++ libraries, libC and libC_r, are available we will prefer them
-# over the vanilla libc, because the libC contain loadAndInit() and
-# terminateAndUnload() which work correctly with C++ statics while libc
-# load() and unload() do not.  See ext/DynaLoader/dl_aix.xs.
-# The C-to-C_r switch is done by usethreads.cbu, if needed.
-if test -f /lib/libC.a -a X"`$cc -v 21 | grep gcc`" = X; then
-# Cify libswanted.
-set `echo X "$libswanted "| sed -e 's/ c / C c /'`
-shift
-libswanted="$*"
-# Cify lddlflags.
-set `echo X "$lddlflags "| sed -e 's/ -lc / -lC -lc /'`
-shift
-lddlflags="$*"
+if test $usenativedlopen = 'true'
+then
+ccflags="$ccflags -DUSE_NATIVE_DLOPEN"
+else
+# If the C++ libraries, libC and libC_r, are available we will prefer them
+# over the vanilla libc, because the libC contain loadAndInit() and
+# terminateAndUnload() which work correctly with C++ statics while libc
+# load() and unload() do not.  See ext/DynaLoader/dl_aix.xs.
+# The C-to-C_r switch is done by usethreads.cbu, if needed.
+if test