Re: Apache2::Request
Shouldn't it be: sub my_handler { my $r = shift; my $req = Apache2::Request-new($r, POST_MAX = 1M); ... On Friday 23 May 2008 04:49:55 mome wrote: Hi, I am trying to use mod_perl2 with Apache2::Request. My intention is to get parameter value of post method. As described in its document and previouse threads said to cache the data with post method... Use Apache2::Request in the auth handler, and apreq will do the SOMETHING you need automatically. My existing code i.e. handler begins with sub my_handler { my $self = shift; my $r = shift; ... I guess that $r refers to Apache2::RequestRec object because the lines that follows use methods of this object. With the little knowledge, I don't know why calling $r = shift returns Apache2::RequestRec. How can I make use Apache2::Request in my handler so I can preseve the parameter via post method? I tried the following line without success sub my_handler { my $self = shift; my $r = shift; my $req = Apache2::Request-new($r, POST_MAX = 1M); ... ... } Please advice. PA -- xyon
Reload/Graceful Restart Apache
Hello all, I've got a modperl app that changes some apache configs (via text files), but need to tell Apache to re-read its configuration files for the changes to take effect. What might be the best way of going about such an operation? Here is some info about my install: # cat /etc/redhat-release rpm -qa httpd mod_perl CentOS release 4.6 (Final) httpd-2.0.59-1.el4s1.10.el4.centos mod_perl-2.0.3-1.el4s1.3
Re: Reload/Graceful Restart Apache
When you mean by hand, you mean something like: `/usr/sbin/httpd -k $action` Where $action could be stop and then start? I don't think this is possible, I get permission denied on the socket: (13)Permission denied: make_sock: could not bind to address [::]:443 no listening sockets available, shutting down Unable to open logs On Tue, 2008-04-01 at 17:55 -0400, Sean Davis wrote: On Tue, Apr 1, 2008 at 5:48 PM, xyon [EMAIL PROTECTED] wrote: Hello all, I've got a modperl app that changes some apache configs (via text files), but need to tell Apache to re-read its configuration files for the changes to take effect. What might be the best way of going about such an operation? Here is some info about my install: # cat /etc/redhat-release rpm -qa httpd mod_perl CentOS release 4.6 (Final) httpd-2.0.59-1.el4s1.10.el4.centos mod_perl-2.0.3-1.el4s1.3 If you are doing this by hand, you will always want to stop and then start the server, not restart. Sean
Re: modperl with SSL
I also recommend stunnel. It has come through for me in these same situations without problems. On Mon, 2008-03-24 at 07:46 -0400, Roberto C. Sánchez wrote: On Mon, Mar 24, 2008 at 03:25:26PM +0800, J. Peng wrote: hello list, we have our own realserver called QHttpd. This realserver doesn't support SSL protocal (https). So I have to develop a proxy before QHttpd to get it be compatible with SSL. I was thinking using modperl handler to do it. modperl accept the SSL connection from clients, do the verification, and if it's valid, redirect it to realserver with non-SSL (common http) protocal. Is it possible? if so, how to begin with it? at which stage? Thanks in advance. Would something like iprelay or stunnel not be sufficient for your needs? Regards, -Roberto
Re: troubleshooting
On Mon, 2008-03-17 at 12:30 +, Beginner wrote: On 17 Mar 2008 at 7:43, Perrin Harkins wrote: On Mon, Mar 17, 2008 at 7:06 AM, Beginner [EMAIL PROTECTED] wrote: I found an upgraded package for my OS. Do you mean that the OS auto-upgraded something, or that you upgraded something manually? What exactly was upgraded? It looks like logrotate shutdown httpd and http failed to start after that. I did an update to spamassassin, clamav and courier last week but that went fine and there were no issues. My startup file has: use Apache2::RequestRec (); use Apache::Const -compile qw(ok); use Template; use Date::Calc; I think the Apache::Const should be Apache2::Const but it hasn't stopped the error. That looks fine. Subroutine load redefined at /usr/lib/perl5/Apache2/XSLoader.pm line 28.\nCompilation failed in require at /usr/lib/perl5/Apache2/RequestRec.pm line 24. That sort of thing usually means that your mod_perl was not compiled with the current perl and needs to be recompiled. mod_perl seems to come as part of the package on my version of Debian. If i attempt to install I get libapache2-mod-perl2 is already the newest version. Try this: dpkg -i --force /var/cache/archives/libapache2-mod-perl2-version.deb I am loath to go down the route of install modperl from source as it kinda breaks the idea behind having a package manager. Why must you go outside the package manager to install a custom-compiled mod_perl? You can easily build debian packages on your own. Google is full of howto's. I'm am going to see if I can find a solution that maintains the integrity of my package manager for now. If I haven't found a solution by the end of the day I will have to go down the source route. I would highly recommend NOT going outside the package manager. Build your own deb package, it's pretty straightforward. Thanx, Dp.
Re: Custom Object-Oriented Module using HTML::Template
That worked great with the test script ( print $template-output; ), but unfortunately, I'm having trouble getting the display onto a web page (via the Handler). The resulting web page is blank, with no source. Below are my Apache configs for the handler, logs, and the handler and view module's latest code. I've also included the test script code, just in case there is some obvious reason it would work and the handler won't. Apache config: PerlRequire /etc/httpd/perl/startup.pl Location /admin SetHandler modperl PerlResponseHandler Myserver::Handler /Location /etc/httpd/perl/startup.pl: use lib qw(/home/Perl/); 1; Apache log: == /var/log/httpd/error_log == ### HTML::Template Debug ### In _parse: ### HTML::Template _param Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; ### HTML::Template Debug ### In output ### HTML::Template output Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; == /var/log/httpd/ssl_request_log == [13/Mar/2008:10:48:38 -0400] 10.5.5.5 TLSv1 DHE-RSA-AES256-SHA GET /admin/ HTTP/1.1 - == /var/log/httpd/ssl_access_log == 10.5.5.5 - - [13/Mar/2008:10:48:38 -0400] GET /admin/ HTTP/1.1 200 - /home/Perl/Myserver/Handler.pm package Myserver::Handler; #Setup some essentials use strict; #strict tolerance for code use Carp; #debugging use diagnostics;#more debugging use warnings; #more debugging #Handler-related stuff use Apache2::RequestRec (); use Apache2::RequestIO (); use Apache2::Const -compile = qw(OK); sub handler { my $self= shift; my $view= Myserver::View-new(); $view-mainpage; # Obligatory stuff for the handler $self-content_type('text/html'); return Apache2::Const::OK; } 1; /home/Perl/Myserver/View.pm: package Myserver::View; #Setup some essentials use strict; #strict tolerance for code use Carp; #debugging use diagnostics;#more debugging use warnings; #more debugging #Loadup some needed functions use HTML::Template; sub new { my $self= shift; return $self; } sub mainpage { my $self= shift; my $template= HTML::Template-new( filename = '/home/Perl/tmpl/mainpage.tmpl', cache = 1, debug = 1, stack_debug = 1 ); print Content-Type: text/html\n\n; print $template-output; return $self; } 1; /home/Perl/tmpl/mainpage.tmpl: htmlbody bgcolor=#FF00FFTest!/body/html /home/Perl/tests/View_mainpage.pl #!/usr/bin/perl -w # Test printing of the main page print Main Page..; #Let's load the view module use lib ../; use Myserver::View; #Now let's load some things that are very handy use strict; #strict tolerance for code use Carp; #debugging use warnings; #more debugging use diagnostics;#even more debugging # Let's create an object my $view= Myserver::View-new; # Now, let's tell View to display the main page $view-mainpage; print .OK; 1; On Thu, 2008-03-13 at 13:29 +0800, Foo JH wrote: try print $template-output; You forgot the print(); xyon wrote: Hey everyone, Firstly, I apologize I sent the previous email under an incorrect subject line. I am working on my first Object-Oriented project, and have hit a slight snag. I am using HTML::Template to output within the View module, but it never outputs. I don't see any errors in the logs, I just get a blank page. Below is pertinent information including a test script with its output: OS Info: CentOS release 4.6 (Final) Package info: perl-5.8.8-11 perl-HTML-Template-2.9-1 httpd-2.0.59-1.el4s1.10.el4.centos mod_perl-2.0.3-1.el4s1.3 /home/perl/Myserver/View.pm package Myserver::View; #Setup some essentials use strict; #strict tolerance for code use Carp; #debugging use diagnostics
Re: Custom Object-Oriented Module using HTML::Template
Good suggestion, I moved the content_type to the top of the handler routine in Handler.pm, so it now looks like: --- sub handler { my $self= shift; $self-content_type('text/html'); my $view= Myserver::View-new(); $view-mainpage; # Obligatory stuff for the handler return Apache2::Const::OK; } --- I am still getting a blank page, though. Here is the latest lwp-request output: --- $ lwp-request -s -U -S -e -m GET http://localhost/admin/; GET http://localhost/admin/ User-Agent: lwp-request/2.07 GET http://localhost/admin/ -- 200 OK Connection: close Date: Thu, 13 Mar 2008 15:45:08 GMT Server: Apache Content-Length: 0 Content-Type: text/html; charset=UTF-8 Client-Date: Thu, 13 Mar 2008 15:45:09 GMT Client-Peer: 127.0.0.1:80 Client-Response-Num: 1 --- On Thu, 2008-03-13 at 16:38 +0100, André Warnier wrote: Hi. First, don't take my suggestions as gospel, I don't know the TT2 and do not really know how you're supposed to work with it. But it seems to me that this is in the wrong order : $view-mainpage; $self-content_type('text/html'); I think you should trigger the HTTP header before you generate the content. Now, whether that is the reason of your current problem or not, I haven't a clue. But I'm trying, and I'm really interested, because I am starting to want to know more about TT2 (and Catalyst) these days. So your from-the-very beginning approach is also very helpful to me. (And I do have a certain experience of Apache2/mod_perl2) And, re-check your lwp-request switches, you might have disabled the display of the response content (remove the -d). André xyon wrote: Thanks for the reply. I thought as you did (that there were too many Content-Type definitions), so commented out this line in the View.pm module, but that doesn't seem to have changed anything: 'print Content-Type: text/html\n\n;' Here is the lwp command and output: --- $ lwp-request -e -S -s -U -m GET -Sed http://localhost/admin/; GET http://localhost/admin/ User-Agent: lwp-request/2.07 GET http://localhost/admin/ -- 200 OK Connection: close Date: Thu, 13 Mar 2008 15:24:23 GMT Server: Apache Content-Length: 0 Content-Type: text/html; charset=UTF-8 Client-Date: Thu, 13 Mar 2008 15:24:23 GMT Client-Peer: 127.0.0.1:80 Client-Response-Num: 1 --- On Thu, 2008-03-13 at 16:11 +0100, André Warnier wrote: Hi. First, a small disgression : along with perl, comes a beautiful test tool for HTTP stuff, called lwp-request. Like, at the command-line : lwp-request (to see the options) lwp-request -m GET -Sed http://myserver/myURL; (that will show you what you get as a response, without a browser getting in the way) Then, below, are you not now sending one Content-type too many ? It looks like you are doing it once in handler(), and once in mainpage(). André xyon wrote: That worked great with the test script ( print $template-output; ), but unfortunately, I'm having trouble getting the display onto a web page (via the Handler). The resulting web page is blank, with no source. Below are my Apache configs for the handler, logs, and the handler and view module's latest code. I've also included the test script code, just in case there is some obvious reason it would work and the handler won't. Apache config: PerlRequire /etc/httpd/perl/startup.pl Location /admin SetHandler modperl PerlResponseHandler Myserver::Handler /Location /etc/httpd/perl/startup.pl: use lib qw(/home/Perl/); 1; Apache log: == /var/log/httpd/error_log == ### HTML::Template Debug ### In _parse: ### HTML::Template _param Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; ### HTML::Template Debug ### In output ### HTML::Template output Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; == /var/log/httpd/ssl_request_log == [13/Mar/2008:10:48:38 -0400] 10.5.5.5 TLSv1 DHE-RSA-AES256-SHA GET /admin/ HTTP/1.1 - == /var/log/httpd/ssl_access_log == 10.5.5.5 - - [13/Mar/2008:10:48:38 -0400] GET /admin/ HTTP/1.1 200
Re: mod_perl 2.0 Handler issue
Hey everyone, I am working on my first Object-Oriented project, and have hit a slight snag. I am using HTML::Template to output within the View module, but it never outputs. I don't see any errors in the logs, I just get a blank page. Below is pertinent information including a test script with its output: OS Info: CentOS release 4.6 (Final) Package info: perl-5.8.8-11 perl-HTML-Template-2.9-1 httpd-2.0.59-1.el4s1.10.el4.centos mod_perl-2.0.3-1.el4s1.3 /home/perl/Myserver/View.pm package Myserver::View; #Setup some essentials use strict; #strict tolerance for code use Carp; #debugging use diagnostics;#more debugging use warnings; #more debugging #Loadup some needed functions use HTML::Template; sub new { my $self= shift; return $self; } sub mainpage { my $self= shift; my $template= HTML::Template-new( filename = '/home/Perl/tmpl/mainpage.tmpl', cache = 1, debug = 1, stack_debug = 1 ); print Content-Type: text/html\n\n; $template-output; return $self; } 1; /home/Perl/tests/View_mainpage.pl #!/usr/bin/perl -w # Test printing of the main page print Main Page..; #Let's load the view module use lib ../; use Myserver::View; #Now let's load some things that are very handy use strict; #strict tolerance for code use Carp; #debugging use warnings; #more debugging use diagnostics;#even more debugging # Let's create an object my $view= Myserver::View-new; # Now, let's tell View to display the main page $view-mainpage; print .OK; 1; /home/Perl/tmpl/mainpage.tmpl: htmlbody bgcolor=#FF00FFTest!/body/html Output with debugging on (as above): $ tests/View_mainpage.pl ### HTML::Template Debug ### In _parse: ### HTML::Template _param Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; Main Page..Content-Type: text/html ### HTML::Template Debug ### In output ### HTML::Template output Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; .OK Output without debugging: $ tests/View_mainpage.pl Main Page..Content-Type: text/html .OK -- xyon [EMAIL PROTECTED]
Custom Object-Oriented Module using HTML::Template
Hey everyone, Firstly, I apologize I sent the previous email under an incorrect subject line. I am working on my first Object-Oriented project, and have hit a slight snag. I am using HTML::Template to output within the View module, but it never outputs. I don't see any errors in the logs, I just get a blank page. Below is pertinent information including a test script with its output: OS Info: CentOS release 4.6 (Final) Package info: perl-5.8.8-11 perl-HTML-Template-2.9-1 httpd-2.0.59-1.el4s1.10.el4.centos mod_perl-2.0.3-1.el4s1.3 /home/perl/Myserver/View.pm package Myserver::View; #Setup some essentials use strict; #strict tolerance for code use Carp; #debugging use diagnostics;#more debugging use warnings; #more debugging #Loadup some needed functions use HTML::Template; sub new { my $self= shift; return $self; } sub mainpage { my $self= shift; my $template= HTML::Template-new( filename = '/home/Perl/tmpl/mainpage.tmpl', cache = 1, debug = 1, stack_debug = 1 ); print Content-Type: text/html\n\n; $template-output; return $self; } 1; /home/Perl/tests/View_mainpage.pl #!/usr/bin/perl -w # Test printing of the main page print Main Page..; #Let's load the view module use lib ../; use Myserver::View; #Now let's load some things that are very handy use strict; #strict tolerance for code use Carp; #debugging use warnings; #more debugging use diagnostics;#even more debugging # Let's create an object my $view= Myserver::View-new; # Now, let's tell View to display the main page $view-mainpage; print .OK; 1; /home/Perl/tmpl/mainpage.tmpl: htmlbody bgcolor=#FF00FFTest!/body/html Output with debugging on (as above): $ tests/View_mainpage.pl ### HTML::Template Debug ### In _parse: ### HTML::Template _param Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; Main Page..Content-Type: text/html ### HTML::Template Debug ### In output ### HTML::Template output Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; .OK Output without debugging: $ tests/View_mainpage.pl Main Page..Content-Type: text/html .OK -- xyon [EMAIL PROTECTED]
Re: Custom Object-Oriented Module using HTML::Template
Fixed. I forgot to print the template-output. print $template-output; On Wed, 2008-03-12 at 23:02 +, xyon wrote: Hey everyone, Firstly, I apologize I sent the previous email under an incorrect subject line. I am working on my first Object-Oriented project, and have hit a slight snag. I am using HTML::Template to output within the View module, but it never outputs. I don't see any errors in the logs, I just get a blank page. Below is pertinent information including a test script with its output: OS Info: CentOS release 4.6 (Final) Package info: perl-5.8.8-11 perl-HTML-Template-2.9-1 httpd-2.0.59-1.el4s1.10.el4.centos mod_perl-2.0.3-1.el4s1.3 /home/perl/Myserver/View.pm package Myserver::View; #Setup some essentials use strict; #strict tolerance for code use Carp; #debugging use diagnostics;#more debugging use warnings; #more debugging #Loadup some needed functions use HTML::Template; sub new { my $self= shift; return $self; } sub mainpage { my $self= shift; my $template= HTML::Template-new( filename = '/home/Perl/tmpl/mainpage.tmpl', cache = 1, debug = 1, stack_debug = 1 ); print Content-Type: text/html\n\n; $template-output; return $self; } 1; /home/Perl/tests/View_mainpage.pl #!/usr/bin/perl -w # Test printing of the main page print Main Page..; #Let's load the view module use lib ../; use Myserver::View; #Now let's load some things that are very handy use strict; #strict tolerance for code use Carp; #debugging use warnings; #more debugging use diagnostics;#even more debugging # Let's create an object my $view= Myserver::View-new; # Now, let's tell View to display the main page $view-mainpage; print .OK; 1; /home/Perl/tmpl/mainpage.tmpl: htmlbody bgcolor=#FF00FFTest!/body/html Output with debugging on (as above): $ tests/View_mainpage.pl ### HTML::Template Debug ### In _parse: ### HTML::Template _param Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; Main Page..Content-Type: text/html ### HTML::Template Debug ### In output ### HTML::Template output Stack Dump ### $VAR1 = [ \'htmlbody bgcolor=#FF00FFTest!/body/html ' ]; .OK Output without debugging: $ tests/View_mainpage.pl Main Page..Content-Type: text/html .OK