Re: url to png/jpeg
Hello Alastair Stuart, Sunday, September 29, 2002, 6:46:49 PM, you wrote: AS Hi, AS Somewhere read about converting urls to jpegs on the fly using modperl ?? AS Preferrably, to png AS TIA AS AS Alastair Stuart AS Perl Person Look at Apache::ImageMagic. It uses Image::Magic library to manipulate images on the fly. It support over 87 major file formats. It support jpeg and png but you need to obtain corresponding libraries. Anyway visit ImageMagic project at www.imagemagic.org. -- WBR, Mike P. Mikhailov mailto:[EMAIL PROTECTED] Windows may be pretty. And easy. But it has no depth or soul. It's like the one-night stand of operating systems. You feel cheap after using it
Re: cookies and IE
Wouldn't be the first time I've been wrong. I do know that I was seeing inconsistent behavior with cookies not being saved in a redirect page (mostly IE PC, but not 100% of the time), but I didn't spend any time worrying about it because of the previous messages I remembered. A quick check of my mailbox shows a discussion back in March where someone suggested using Refresh instead of Redirect to get around the problem. I recall previous discussions, but I don't have any on file. Actually, I had the same problem with certain versions of IE not setting cookies when they are used with redirects... I ended up making it so that the redirect was unnecessary. After a while I switched to HTTP authentication - In many ways it's even simpler :-) Cheers, -- IT'S TIME FOR A DIFFERENT KIND OF WEB Jean-Michel Hiver - Software Director [EMAIL PROTECTED] +44 (0)114 255 8097 VISIT HTTP://WWW.MKDOC.COM
Re: Defaulting to default-handler from custom handler
All four cases result in the Perl code being displayed instead of the script being executed? If a location is defined as a ScriptAlias, then is the default-handler == perl-script? and would returning DECLINED result in mod_cgi handling the request? What am I doing wrong? perl-script is mod_perl default-handler is the Apache default (to just send the document) cgi-script is mod_cgi so, if you want mod_cgi to do it, try $r-handler('cgi-script'); return DECLINED; but I couldn't get that to work from a Registry script, since I suspect that it's too late to alter the course of the request via $r-handler(). a PerlFixupHandler is generally a good place to alter $r-handler() to perhaps you can put your logic there instead. we talk about $r-handler() a bit in chapter 14 in the Cookbook, and 14.1 has a list of modules and their corresponding handler name. HTH --Geoff
install/config mod_perl-2(1.99_08)
Is there something in the configuration not jiving? Windows 2000, Apache 2.0.42, mod_perl-2(1.99_08-dev via ppm) In http.conf I have:Include conf/test.confAddHandler cgi-script .cgiIn test.conf I have:PerlRequire "C:/Apache2/conf/startup.pl"Location /test/ Options +ExecCGI SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders/Location#ScriptAlias /test/ "C:/Apache2/htdocs/test/" startup.pl looks like:#!C:/Perl/bin/Perl.exeuse Apache2();use ModPerl::Registry ();1; Apache starts up. I can see mod_perl loaded in via server-status. And when I call just the directory /test/, this what I get in the error log: [error] 1932: ModPerl::Registry: C:/Apache2/htdocs/test/ not found or unable to stat If I try to call index.cgi under /test/index.cgi, the page just hangs.index.cgi works as a straight CGI page. Here it is:#!C:/Perl/bin/Perl.exe print "Content-type: text/plain\n\n"; print "mod_perl 2.0 rocks!\n"; --- I'll keep trying. Hopefully, there's an easy solution to this. Thanks.Do you Yahoo!? New DSL Internet Access from SBC & Yahoo!
Re: Easy internal redirect question
[EMAIL PROTECTED] wrote: I've got a bit of a better grasp on the problem nowI think it's an interaction with POST data... I have a form in foo.html form action=/rms/admin method=post input type=hidden name=task value=process_config ...other form fields... /form I submit this form, and in /rms/admin, it gets handled like this # suck in form values, stick them in objects, blah blah, then get to the redirect... $r-internal_redirect('/rms/status?task=display'); and what happens is that /rms/status complains that it doesn't know how to handle task=process_config. So, somehow the value for 'task' that was POSTed in the first request from the form gets passed onto the second request, apparently overriding the 'task' value of 'display' which I am trying to set in the url string I'm giving to internal_redirect(). you can only read POST data once, so once it's slurped from the main request it's gone unless you store it someplace. for it to show up in the internal redirect (outside of your object) you'd have to follow the example of changing a POST to a GET and stuffing the POST data in the query string (using something similar to recipe 3.18 and/or the example in the Guide). so, it sounds like your object is bleeding data over from the main request into the redirect. I don't want any of the POST data to get passed onto that redirect. it shouldn't be there. try reading from $r-content and $r-args in the redirect and see what you find. Any thoughts? I saw a note in the API docs that $r-args() can be used to set the query string and that this is useful when redirecting POST requests. I tried doing a $r-args('task=display') right before the call to internal_redirect, but no luck. setting $r-args in the main request won't bleed over either. I went through the code for ap_internal_redirect yesterday and it definitely takes the query string from the passed in URI. HTH --Geoff
Re: [BUG] Losing GET/POST-data
On Wed, 2 Oct 2002, Wes Cravens wrote: On 02 Oct 2002 15:23 GMT I wrote: Hi! We're developing a perl module for apache/mod_perl, but have encountered a really strange problem. After 'a while' we seem to lose the data sent to the apache-server, at least it never reaches our module. SNIP Recently we switched from using the standard Apache request-object to using the Apache::Request one, for the added functionality, but this has not had any effect at all as far as we can tell, and the bug keeps happening... I ran into a problem that the param parts of a request were flushed when read for the first time... so if you lose them (don't store them) then you cannot access them again. Yep, noticed this myself when re-writing it to check the input, should have posted this first perhaps, but anyway, this is basically how we handle the input: sub handler($) { $^W = 1; # gripe about the little things my $r = shift; my %parm; if ($r-method() eq 'POST') { %parm = $r-content(); } elsif ($r-method() eq 'GET') { %parm = $r-args(); } snipped lots of more code And now, after the re-write with Apache::Request sub handler($) { $^W = 1; # gripe about the little things my $r = shift; my $apr; my %parm; $apr = Apache::Request-new($r); if($r-method() eq 'POST' || $r-method() eq 'GET') { my @keys = $apr-param(); foreach my $key (@keys) { $parm{$key} = $apr-param($key); } } snip of the same lots of more code So.. I can't really see how that would make us lose the parameters, especially since we doesn't lose them all the time, which was the case when I tried to get the same value twice... [Back to Wes] If you are not already, then try $apr = HTTP::Request-instance($r); instead... We use -new now. Since we always only create one instance of it I thought there was no difference. Is instance known to be safer or so? Also got the hint that this could somehow be connected to caching, but since we when we output debug-messages see that handler() is called, with no parameters in $r, I don't see how this could be. Any comments, and suggestions of fix if this might be the problem? Thanks again, Hakan ([EMAIL PROTECTED]) - Hi! I'm a .signature virus! Copy me into your .signature file to help me spread!
mod_perl SSL compression: Apache-Dynazip vs mod_gzip?
Hi, I've been using mod_gzip for the last 18 months and it has worked really well for dynamic pages and static content. However, recently I've needed to use SSL, but I've heard the combination of mod_gzip and SSL is buggy on some browsers. I've checked out Apache::DynaGzip and it looks like what I need - but I'm interested in what other SSL+Compression combinations work best with mod_perl? So here's a little survey ... 1. Are you using http compression with mod_perl? 2. Which compression modules? filters? are you using? 3. Do you also compress SSL content? 4. Do you get bizarre errors on some browsers? 5. Do your pages contain CSS files and .js files? 6. Recommendations? Here is a url that discusses compression options: http://www.innerjoin.org/apache-compression/ Nigel -- Nigel Hamilton Turbo10 Metasearch Engine email: [EMAIL PROTECTED] tel:+44 (0) 207 987 5460 fax:+44 (0) 207 987 5468 http://turbo10.com Search Deeper. Browse Faster.
Re: [BUG] Losing GET/POST-data
Hi Hakan, CGI::Minimal has a truncate function that picks up invalid CGI data ... this may help. Nigel On Wed, 2 Oct 2002, Wes Cravens wrote: On 02 Oct 2002 15:23 GMT I wrote: Hi! We're developing a perl module for apache/mod_perl, but have encountered a really strange problem. After 'a while' we seem to lose the data sent to the apache-server, at least it never reaches our module. SNIP Recently we switched from using the standard Apache request-object to using the Apache::Request one, for the added functionality, but this has not had any effect at all as far as we can tell, and the bug keeps happening... I ran into a problem that the param parts of a request were flushed when read for the first time... so if you lose them (don't store them) then you cannot access them again. Yep, noticed this myself when re-writing it to check the input, should have posted this first perhaps, but anyway, this is basically how we handle the input: sub handler($) { $^W = 1; # gripe about the little things my $r = shift; my %parm; if ($r-method() eq 'POST') { %parm = $r-content(); } elsif ($r-method() eq 'GET') { %parm = $r-args(); } snipped lots of more code And now, after the re-write with Apache::Request sub handler($) { $^W = 1; # gripe about the little things my $r = shift; my $apr; my %parm; $apr = Apache::Request-new($r); if($r-method() eq 'POST' || $r-method() eq 'GET') { my @keys = $apr-param(); foreach my $key (@keys) { $parm{$key} = $apr-param($key); } } snip of the same lots of more code So.. I can't really see how that would make us lose the parameters, especially since we doesn't lose them all the time, which was the case when I tried to get the same value twice... [Back to Wes] If you are not already, then try $apr = HTTP::Request-instance($r); instead... We use -new now. Since we always only create one instance of it I thought there was no difference. Is instance known to be safer or so? Also got the hint that this could somehow be connected to caching, but since we when we output debug-messages see that handler() is called, with no parameters in $r, I don't see how this could be. Any comments, and suggestions of fix if this might be the problem? Thanks again, Hakan ([EMAIL PROTECTED]) - Hi! I'm a .signature virus! Copy me into your .signature file to help me spread! -- Nigel Hamilton Turbo10 Metasearch Engine email: [EMAIL PROTECTED] tel:+44 (0) 207 987 5460 fax:+44 (0) 207 987 5468 http://turbo10.com Search Deeper. Browse Faster.
asynchronous downloads
How do I send a file asynchronously? The classic example is download sites. You click on the file you want and it generates a thankyou page for your browser and also sends the file. So what's the correct way to do this?
Re: asynchronous downloads
How do I send a file asynchronously? The classic example is download sites. You click on the file you want and it generates a thankyou page for your browser and also sends the file. So what's the correct way to do this? Use a refresh META tag on the thank-you page, that points to the requested file. Look at any download page at SourceForge to see how it is done. Alternatively, you can return a multipart/mixed MIME message with both documents as the result of the HTTP request. -- Dominique QUATRAVAUX Ingénieur développeur senior 01 44 42 00 27 IDEALX
Re: asynchronous downloads
I think many sites use the meta refresh html tag. i.e. htmlhead ... META HTTP-EQUIV=Refresh CONTENT=2;URL=file_i_want_to_download.gz ... Netscape has a complete reference on this at http://developer.netscape.com/docs/manuals/htmlguid/tags3.htm#1697602 You could probably also set a refresh header. I hope this helps. -kb Andrew G. Hammond wrote: How do I send a file asynchronously? The classic example is download sites. You click on the file you want and it generates a thankyou page for your browser and also sends the file. So what's the correct way to do this?
how to detect a broken connection using mod_proxy
hi all, i am running standard setup with one plain apache with mod_proxy and a mod_perl apache to which all mod_perl requests are directed by the proxy module. i want to be able to detect when the client connection breaks but all standard recipes like the one mentioned in p.147 of the cookbook don't work due the use of mod_proxy. does anyone know of a trick to detect when the connection is broken in such a scenario so that i can free up cpu resources? (i have a set of 4 heavy sql stm's. after each one of them i would like to check if the client is still there so that i will proceed to the next one or just return OK and forget about the request). many thanks, giorgos
RE: Easy internal redirect question
After further review, the problem was CGI.pm. CGI.pm doesn't appear to get 'reset' on an internal_redirect (I'm not familiar with CGI's support for mod_perl, so maybe this should have been obvious!) so it was still holding the old parameter values. A quick install of Apache::Request and a call to $r-param('task') give much better results. CGI was a remnant from our pre-mod_perl days and I've been meaning to get rid of it for a while. Thanks, Fran
Dynamlcally loading modules at run-time
Hi, I'm writing my first mod_perl handler. I'd like to make the handler some kind of dispatcher that dynamically loads certain modules depending on the URI called: /foo/index = require foo; $result = foo::index(); /foo/other = require foo; $result = foo::other(); /bar/index = require bar; $result = bar::index(); I'd like to ask for your advice there. Is this a clever way to go in the first place? And how would i best code this concept? Or is there a better way to reach a modular structure in a big web application? Best regards, Jochen
Re: Dynamlcally loading modules at run-time
Jochen Lillich wrote: Hi, I'm writing my first mod_perl handler. I'd like to make the handler some kind of dispatcher that dynamically loads certain modules depending on the URI called: /foo/index = require foo; $result = foo::index(); /foo/other = require foo; $result = foo::other(); /bar/index = require bar; $result = bar::index(); look into Apache::Dispatch. I haven't touched the code in a while, but it does what you're seeking. I'd like to ask for your advice there. Is this a clever way to go in the first place? And how would i best code this concept? Or is there a better way to reach a modular structure in a big web application? probably :) try looking at things like Mason, Embperl, Template Toolkit, Apache::ASP... --Geoff
Re: Dynamlcally loading modules at run-time
Hi Jochen, I'd recommend having a read of this http://perl.apache.org/docs/1.0/guide/performance.html#Sharing_Memory Not sure how much it applies to your situation, but basically, unless the different modules are very large and rarely used you really want to load them all at server startup. That way your server processes will be sharing the majority of your code and memory use will be optimised increasing the number of server processes you'll be able to run. Loading more modules after startup will increase the size of each process independantly, increasing your overall memory use. cheers, J Jochen Lillich wrote: Hi, I'm writing my first mod_perl handler. I'd like to make the handler some kind of dispatcher that dynamically loads certain modules depending on the URI called: /foo/index = require foo; $result = foo::index(); /foo/other = require foo; $result = foo::other(); /bar/index = require bar; $result = bar::index(); I'd like to ask for your advice there. Is this a clever way to go in the first place? And how would i best code this concept? Or is there a better way to reach a modular structure in a big web application? Best regards, Jochen .
Re: install/config mod_perl-2(1.99_08)
On Thu, 3 Oct 2002, Paul Simon wrote: Is there something in the configuration not jiving? Windows 2000, Apache 2.0.42, mod_perl-2(1.99_08-dev via ppm) In http.conf I have: Include conf/test.conf AddHandler cgi-script .cgi In test.conf I have: PerlRequire C:/Apache2/conf/startup.pl Location /test/ Options +ExecCGI SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders /Location #ScriptAlias /test/ C:/Apache2/htdocs/test/ startup.pl looks like: #!C:/Perl/bin/Perl.exe use Apache2(); use ModPerl::Registry (); 1; Apache starts up. I can see mod_perl loaded in via server-status. And when I call just the directory /test/, this what I get in the error log: [error] 1932: ModPerl::Registry: C:/Apache2/htdocs/test/ not found or unable to stat This is OK - you normally don't want a directory listing for locations that have scripts in them. If I try to call index.cgi under /test/index.cgi, the page just hangs. index.cgi works as a straight CGI page. Here it is: #!C:/Perl/bin/Perl.exe print Content-type: text/plain\n\n; print mod_perl 2.0 rocks!\n; --- I'll keep trying. Hopefully, there's an easy solution to this. Thanks. Maybe not easy :) Using perl-5.6.1, and Apache-2.0.42, I found the above to also hang ... However, it worked as expected using the perl-5.8/Apache2 binary of perl-5.8-win32-bin.tar.gz under ftp://theoryx5.uwinnipeg.ca/pub/other/. As there's issues with threads on Win32 with perl-5.6.1, eventually perl-5.8 will be the recommended Win32 Perl for mod_perl-2; if possible, you may want to give this a try. -- best regards, randy kobes
RE: install/config mod_perl-2(1.99_08)
You say eventually perl 5.8 will be recommended. Why is it not the recommended version now? I am developing a windows application currently and started out with activestate perl 5.6.1, apache 2, and mod_perl 1.99. I ran into a lot of problems and blamed them on mod_perl because it is still rather new. Things have progressed smoothly enough using apache versions 1.x and mod_perl 1.x I didn't think of trying perl 5.8, but would be glad to if that is going to help things. I would like the capabilities that Apache and mod_perl 2.x give. Ben -Original Message- From: Randy Kobes [mailto:[EMAIL PROTECTED]] Sent: Thursday, October 03, 2002 8:30 AM To: Paul Simon Cc: [EMAIL PROTECTED] Subject: Re: install/config mod_perl-2(1.99_08) Maybe not easy :) Using perl-5.6.1, and Apache-2.0.42, I found the above to also hang ... However, it worked as expected using the perl-5.8/Apache2 binary of perl-5.8-win32-bin.tar.gz under ftp://theoryx5.uwinnipeg.ca/pub/other/. As there's issues with threads on Win32 with perl-5.6.1, eventually perl-5.8 will be the recommended Win32 Perl for mod_perl-2; if possible, you may want to give this a try. -- best regards, randy kobes
RE: install/config mod_perl-2(1.99_08)
On Thu, 3 Oct 2002, Ben Mathews wrote: You say eventually perl 5.8 will be recommended. Why is it not the recommended version now? That's really Doug's call, but perhaps one consideration holding back a recommendation of 5.8 on Win32 is that ActiveState won't be making a perl-5.8 binary in the immediate future, and may wait until a 5.8.1 is released (5.8 and 5.6 aren't binary compatable, so this is a major step). And there are some portability things, for example, with unicode - some modules which rely on the way 5.6.1 deals with this need changes with 5.8. I am developing a windows application currently and started out with activestate perl 5.6.1, apache 2, and mod_perl 1.99. I ran into a lot of problems and blamed them on mod_perl because it is still rather new. Things have progressed smoothly enough using apache versions 1.x and mod_perl 1.x I didn't think of trying perl 5.8, but would be glad to if that is going to help things. I would like the capabilities that Apache and mod_perl 2.x give. Ben I've found that using 5.8 often is more stable than 5.6.1, as far as mod_perl-2 goes - it's definitely worth trying out for development. -- best regards, randy
Re: Graphics and mod_perl
On Wed, 2 Oct 2002, Justin Luster wrote: I'm new to mod_perl and I'm really enjoying it. It has really improved performance. Right now I'm just using Modperl::Registry to speed up things. I have a question about showing graphics using a Perl Script and running it through mod_perl. [ ... ] It seems that the current working directory for the Perl scripts when run under mod_perl is in the bin directory where Apache.exe is. That behaviour was introduced into Win32 Apache some time back, one reason being, as I understand it, is so that one could double-click on the Apache icon to start it up. I have considered using absolute paths but even that does not seem to work correctly with graphics. [ ... ] As Per Einar mentioned in an earlier reply, using absolute server paths is the best solution - generally, for cgi and registry scripts, one should not rely on an assumption of a current working directory. There is a module, FindBin, which reveals the directory of a script, but as explained in the perl-5.8 docs for FindBin, there's some caveats to using it under mod_perl and other persistant Perl environments. -- best regards, randy kobes
[OT] Re: asynchronous downloads
- Original Message - From: [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, October 03, 2002 5:09 PM Subject: Re: asynchronous downloads How do I send a file asynchronously? The classic example is download sites. You click on the file you want and it generates a thankyou page for your browser and also sends the file. So what's the correct way to do this? Use a refresh META tag on the thank-you page, that points to the requested file. Look at any download page at SourceForge to see how it is done. Alternatively, you can return a multipart/mixed MIME message with both documents as the result of the HTTP request. Actually, that is not defined for HTTP. Although people commonly interchange the Content-Type field defined by HTTP, and that defined by MIME, the two are not interchangable. The closest that HTTP comes to working with multipart fields is the multipart/form-data Content-Type defined in RFC 2388 (http://www.ietf.org/rfc/rfc2388.txt) As it happens, I noticed this a couple of years ago, and am currently planning an I-D which will implement multipart/related HTTP responses. If anyone at all is interested in this, please don't hesitate to contact me about it - BUT, let's keep that off-list, please :-) Issac
Backtraces on recurring segfaults on mod_perl-1.27/apache-1.3.26
I've managed to get a couple of backtraces on a segfault problem we've been having for months now. The segfaults occur pretty rarely on the whole, but once a client triggers one on a particular page, they do not stop. The length and content of the request are key in making the segfaults happen. Modifying the cookie or adding characters to the request line causes the segfaults to stop. example (word wrapped): This request will produce a segfault (backtrace in attached gdb1.txt) and about 1/3 of the expected page : nc 192.168.1.20 84 GET /perl/section/entcmpt/ HTTP/1.1 User-Agent: Mozilla/5.0 (compatible; Konqueror/3; Linux 2.4.18-5) Pragma: no-cache Cache-control: no-cache Accept: text/*, image/jpeg, image/png, image/*, */* Accept-Encoding: x-gzip, gzip, identity Accept-Charset: iso-8859-1, utf-8;q=0.5, *;q=0.5 Accept-Language: en Host: 192.168.1.20:84 Cookie: mxstsn=1033666066:19573.19579.19572.19574.19577.19580.19576.19558.19560.19559.19557.19567.19566.19568.19544.19553.19545.19551.19554.19546.19548.19547.19532.19535.19533.19538.19534:0; Apache=192.168.2.1.124921033666065714 Adding a bunch of zeroes to the URI (which does not change the code functionality) causes the page to work correctly: nc 192.168.1.20 84 GET /perl/section/entcmpt/? HTTP/1.1 User-Agent: Mozilla/5.0 (compatible; Konqueror/3; Linux 2.4.18-5) Pragma: no-cache Cache-control: no-cache Accept: text/*, image/jpeg, image/png, image/*, */* Accept-Encoding: x-gzip, gzip, identity Accept-Charset: iso-8859-1, utf-8;q=0.5, *;q=0.5 Accept-Language: en Host: 192.168.1.20:84 Cookie: mxstsn=1033666066:19573.19579.19572.19574.19577.19580.19576.19558.19560.19559.19557.19567.19566.19568.19544.19553.19545.19551.19554.19546.19548.19547.19532.19535.19533.19538.19534:0; Apache=192.168.2.1.124921033666065714 Some info: /usr/apache-perl/bin/httpd -l Compiled-in modules: http_core.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_status.c mod_include.c mod_autoindex.c mod_dir.c mod_cgi.c mod_asis.c mod_imap.c mod_actions.c mod_userdir.c mod_alias.c mod_access.c mod_auth.c mod_so.c mod_setenvif.c mod_php4.c mod_perl.c Please forgive any obvious missing info (i'm not a c programmer). The first backtrace shows the segfault happening in mod_perl_sent_header(), and the second shows it happening in the ap_make_array() which was from Apache::Cookie. I don't have one handy now, but I've also seen it happen in ap_soft_timeout() after an XS_Apache_print (r-server was out of bounds). I've added a third backtrace where r-content_encoding contains the above 'mxstsn' cookie name. Any help would be greatly appreciated. -- -- Daniel Bohling NewsFactor Network [root@proxy dumps]# gdb /usr/apache-perl/bin/httpd core.12510 GNU gdb Red Hat Linux (5.2-2) Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type show copying to see the conditions. There is absolutely no warranty for GDB. Type show warranty for details. This GDB was configured as i386-redhat-linux... Core was generated by `/usr/apache-perl/bin/httpd'. Program terminated with signal 11, Segmentation fault. Reading symbols from /lib/libpam.so.0...done. Loaded symbols for /lib/libpam.so.0 Reading symbols from /usr/lib/libmysqlclient.so.10...done. Loaded symbols for /usr/lib/libmysqlclient.so.10 Reading symbols from /lib/libcrypt.so.1...done. Loaded symbols for /lib/libcrypt.so.1 Reading symbols from /lib/libresolv.so.2...done. Loaded symbols for /lib/libresolv.so.2 Reading symbols from /lib/i686/libm.so.6...done. Loaded symbols for /lib/i686/libm.so.6 Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/libnsl.so.1...done. Loaded symbols for /lib/libnsl.so.1 Reading symbols from /lib/i686/libc.so.6...bdone. Loaded symbols for /lib/i686/libc.so.6 Reading symbols from /lib/libutil.so.1...done. Loaded symbols for /lib/libutil.so.1 Reading symbols from /usr/lib/libexpat.so.0...done. Loaded symbols for /usr/lib/libexpat.so.0 Reading symbols from /usr/lib/libz.so.1...done. Loaded symbols for /usr/lib/libz.so.1 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/libnss_files.so.2...done. Loaded symbols for /lib/libnss_files.so.2 Reading symbols from /usr/lib/perl5/5.6.1/i386-linux/auto/Data/Dumper/Dumper.so...done. Loaded symbols for /usr/lib/perl5/5.6.1/i386-linux/auto/Data/Dumper/Dumper.so Reading symbols from /usr/lib/perl5/5.6.1/i386-linux/auto/Socket/Socket.so...done. Loaded symbols for /usr/lib/perl5/5.6.1/i386-linux/auto/Socket/Socket.so Reading symbols from /usr/lib/perl5/5.6.1/i386-linux/auto/IO/IO.so...done. Loaded symbols for /usr/lib/perl5/5.6.1/i386-linux/auto/IO/IO.so Reading
Apache::AuthDBI problem
I'm having trouble with the AuthDBI module. If works fine if use require valid-user or require user. But when I try to require group I get this error: couldn't check access. No groups file?: /test/ What am I doing wrong? This is my .htaccess file. AuthName DBI AuthType Basic PerlAuthenHandler Apache::AuthDBI::authen PerlAuthenHandler Apache::AuthDBI::authz PerlSetVar Auth_DBI_encrypted off PerlSetVar Auth_DBI_data_source dbi:mysql:database=auth;host=localhost PerlSetVar Auth_DBI_username username PerlSetVar Auth_DBI_password password PerlSetVar Auth_DBI_pwd_table passwd PerlSetVar Auth_DBI_uid_field username PerlSetVar Auth_DBI_pwd_field password PerlSetVar Auth_DBI_grp_table passwd PerlSetVar Auth_DBI_grp_field grp require group test1 Any help would be great. Robert
Re: install/config mod_perl-2(1.99_08)
Randy Kobes <[EMAIL PROTECTED]>wrote: On Thu, 3 Oct 2002, Paul Simon wrote: Is there something in the configuration not jiving? Windows 2000, Apache 2.0.42, mod_perl-2(1.99_08-dev via ppm) In http.conf I have: Include conf/test.conf AddHandler cgi-script .cgi In test.conf I have: PerlRequire "C:/Apache2/conf/startup.pl" Options +ExecCGI SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders #ScriptAlias /test/ "C:/Apache2/htdocs/test/" startup.pl looks like: #!C:/Perl/bin/Perl.exe use Apache2(); use ModPerl::Registry (); 1; Apache starts up. I can see mod_perl loaded in via server-status. And when I call just the directory /test/, this what I get in the error log: [error] 1932: ModPerl::Registry: C:/Apache2/htdocs/test/ not found or unable to statThis is OK - you normally don't want a directory listingfor locations that have scripts in them. If I try to call index.cgi under /test/index.cgi, the page just hangs. index.cgi works as a straight CGI page. Here it is: #!C:/Perl/bin/Perl.exe print "Content-type: text/plain\n\n"; print "mod_perl 2.0 rocks!\n"; --- I'll keep trying. Hopefully, there's an easy solution to this. Thanks.Maybe not easy :) Using perl-5.6.1, and Apache-2.0.42, I foundthe above to also hang ... However, it worked as expected usingthe perl-5.8/Apache2 binary of perl-5.8-win32-bin.tar.gz underftp://theoryx5.uwinnipeg.ca/pub/other/. As there's issues withthreads on Win32 with perl-5.6.1, eventually perl-5.8 will be therecommended Win32 Perl for mod_perl-2; if possible, you may wantto give this a try.-- best regards,randy kobes Almost easy. I have it running now with perl5.8.I'm going to pilot it...Thanks.PaulDo you Yahoo!? New DSL Internet Access from SBC & Yahoo!
Re: [mp2.0] wrong crypt behavior
On Fri, 6 Sep 2002 08:23:33 +0200 Toma'? Procha'zka [EMAIL PROTECTED] wrote: For comparsion of password user entered and password stored in database is crypt function used. Here is the code: my $real_pass = $d-[0][0]; # crypted password from database my $salt = substr $real_pass,0,2; # salt my $test_pass = crypt $sent_pw,$salt; # in $sent_pw is the password user entered if ($real_pass eq $test_pass) { $r-subprocess_env(REMOTE_USER = $user); return OK; } else { $r-note_basic_auth_failure; return AUTH_REQUIRED; } Problem: Sometimes, although user entered correct password, is authentication rejected. I tried logging values of $real_pass and $test_pass and they differed. When I add line $r-log_reason(User $user tested (.$real_pass./.$test_pass.)...,); just before 'if' statement behavior is most of time correct. I have also seen this problem. I am using RT [0] and have intermittent login problems where suddenly crypt() called from mod_perl will start generating the wrong return values [ i.e., $pass ne crypt($user, $pass) ]. After some period of time the crypt() call will start generating the correct values again. Executing the exact same crypt() calls via a command-line perl -e 'print crypt([string], [string])' generates the expected (correct) results. If (in the code run by mod_perl) I replace: if ($pass eq crypt($user, $pass)) { with: $crypt = `perl -e 'print crypt(\$user\, \$pass\)'`; chomp($crypt); if ($pass eq $crypt) { Then everything works perfectly, though less quickly and blatantly insecurely. I have checked the failing $user, $pass and crypt() values thoroughly for wierdness and compared them to their successful counterparts. I am 100% convinced that crypt() is returning the wrong values. Note that the wrong values are consistent (i.e., they are not random, not changing, just not correct). My original RT problem report (including voluminous configuration information, but prior to the isolation of the crypt() issue) can be found at: http://lists.fsck.com/pipermail/rt-users/2002-September/010117.html Question: is crypt() thread-safe? I haven't had a chance to look at the source but I plan on doing so soon. A tiny bit more info: $ strace perl -e 'print crypt(foo, bar)' 21 | grep crypt execve(/usr/bin/perl, [perl, -e, print crypt(\foo\, \bar\)], [/* 22 vars */]) = 0 open(/lib/libcrypt.so.1, O_RDONLY)= 3 $ ls -al /lib/libcrypt.so.1 /lib/libcrypt-2.2.5.so lrwxrwxrwx1 root root 17 Sep 23 18:13 /lib/libcrypt.so.1 - libcrypt-2.2.5.so -rw-r--r--1 root root19136 Sep 17 21:50 /lib/libcrypt-2.2.5.so [0] http://www.bestpractical.com/rt/index.html Rick -- http://www.rickbradley.comMUPRN: 812(???F/???F) | me a line. It's the random email haiku | only commercial unix | I've ever liked. Wow.
Response Headers
How do HTTP headers work under Registery::ModPerl?set up: windows2000 apache2.0.42 mod_perl/1.99_08-dev Perl/v5.8.0 I had to comment out the following in the CGI script: #print "Expires: " . time2str( time() + 432000 ) . "\n";#print "Content-type: text/html\n\n"; because it would print out as content to the browser?? This is in the conf file: Alias /standards/ "C:/Apache2/application/standards2/"Location "/standards/" SetHandler perl-script PerlResponseHandler ModPerl::Registry #PerlOptions +ParseHeaders Options +ExecCGI/Location If somebody could point me in the right direction - Thanks.Do you Yahoo!? New DSL Internet Access from SBC & Yahoo!
Re: Response Headers
On Thu, 3 Oct 2002, Paul Simon wrote: How do HTTP headers work under Registery::ModPerl? set up: windows2000 apache2.0.42 mod_perl/1.99_08-dev Perl/v5.8.0 I had to comment out the following in the CGI script: #print Expires: . time2str( time() + 432000 ) . \n; #print Content-type: text/html\n\n; because it would print out as content to the browser?? This is in the conf file: Alias /standards/ C:/Apache2/application/standards2/ Location /standards/ SetHandler perl-script PerlResponseHandler ModPerl::Registry #PerlOptions +ParseHeaders Options +ExecCGI /Location If somebody could point me in the right direction - Thanks. If you send the headers yourself, as, eg, print Content-type: text/html\n\n; in the script, then you should have PerlOptions +ParseHeaders in the relevant section. If you don't send the header yourself, Apache will send one for you, based on, in particular, the DefaultType setting. In this case you shouldn't have PerlOptions +ParseHeaders in that section. As you found, other combinations can lead to a double set of headers sent, resulting in one of them appearing in the browser. -- best regards, randy kobes
Re: mod_perl SSL compression: Apache-Dynazip vs mod_gzip?
Hi Nigel, - Original Message - From: Nigel Hamilton To: [EMAIL PROTECTED] Sent: Thursday, October 03, 2002 6:29 PM ... However, recently I've needed to use SSL, but I've heard the combination of mod_gzip and SSL is buggy on some browsers. You are right, there are some known issues about M$IE, which sometimes drops first 2K bytes, when the user refreshes content over SSL. The way to work around is the same for all compression approaches: just place 2K blank spaces in the beginning of every your web page (fortunately, they will be compressed very effectively). I've checked out Apache::DynaGzip and it looks like what I need - but I'm interested in what other SSL+Compression combinations work best with mod_perl? There are no compression features for SSL on server side. Just the encryption should be done over the (dynamically) compressed file/stream. Apache::Dynagzip could be really helpful if you use mod_perl-enabled Apache to generate content on-the-fly (see Web Content Compression FAQ, attached in M$ Word format). Here is a url that discusses compression options: http://www.innerjoin.org/apache-compression/ I like it. Thanks, Slava Web Content Compression FAQ-rev7.doc Description: MS-Word document
[Q][LONG] using IPC::Shareable to cache data, Apache doesnt start
Hello everyone, I am trying to use a IPC::Shareable tied hash to cache some data at the start of apache from my startup.pl script. this is my startup.pl - $ENV{GATEWAY_INTERFACE} =~ /^CGI-Perl/ or die GATEWAY_INTERFACE not Perl!; use Apache::Registry; use Apache::DBI; use IPC::Shareable; use GXV::Abonados; use strict; my %GLOBALDATA; my %options = ( create= 1, exclusive = 0, mode = 0666, destroy = 1, ); tie %GLOBALDATA, 'IPC::Shareable', 'GLUE', { %options } || die tie failed\n; my $gxv = GXV::Abonados-new || die not able to connect to GXV\n; eval { %GLOBALDATA = $gxv-paquetes_shared; }; die Global data is not accessible: $ if ($); 1; -- The method GXV::Abonados::paquetes_shared() works, I have tried many forms of recieving (and returning of course) the data (a flat scalar, arrays, hashes). If I asign to *GLOBALDATA a short string or number it works, I checked IPC::Shareable::SHM_BUFSIZ(); and it's more than enough to hold the return value of $gxv-paquetes_shared; The worst of all is that Apache simply doesnt start, and I get no error message at all. Can someone please give me some insight? TIA, Best Regards, Juan Jose Natera
Re: [Q][LONG] using IPC::Shareable to cache data, Apache doesnt start
Juan Natera wrote: The worst of all is that Apache simply doesnt start, and I get no error message at all. The error might be on the console, or you could try capturing it and writing it to a file. However, I suggest you ditch IPC::Shareable since it's dog slow. Use MLDBM::Sync, Cache::FileCache, IPC::MM, or Cache::Mmap. - Perrin
perl script not reloading
It seems that as I work on my script, Apache doesn't reload it when the script changes on disk. It seems like it's something that I did because it used to. Is there some common well known thing or set of things one can screw up to make this happen? (if so, it should be documented in the mod_perl_traps man page). Michael Grant
Re: Re: Defaulting to default-handler from custom handler
Yup that fixed it, setting the handler via $r-handler('cgi-script') in a FixupHandler works. The table in the mod_perl cookbook (pg452) says is all. I must have overlooked that bit of information while I was banging my head on the my desk trying to get this to work. Thanks for the help and the book too ;) -Carlos From: Geoffrey Young [EMAIL PROTECTED] Date: 2002/10/03 Thu AM 07:11:29 CDT To: Carlos Ramirez [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Subject: Re: Defaulting to default-handler from custom handler All four cases result in the Perl code being displayed instead of the script being executed? If a location is defined as a ScriptAlias, then is the default-handler == perl-script? and would returning DECLINED result in mod_cgi handling the request? What am I doing wrong? perl-script is mod_perl default-handler is the Apache default (to just send the document) cgi-script is mod_cgi so, if you want mod_cgi to do it, try $r-handler('cgi-script'); return DECLINED; but I couldn't get that to work from a Registry script, since I suspect that it's too late to alter the course of the request via $r-handler(). a PerlFixupHandler is generally a good place to alter $r-handler() to perhaps you can put your logic there instead. we talk about $r-handler() a bit in chapter 14 in the Cookbook, and 14.1 has a list of modules and their corresponding handler name. HTH --Geoff