Re: irc
On Wed, Dec 26, 2001 at 11:07:46PM -0800, brian moseley wrote: On Wed, 26 Dec 2001, Philippe M. Chiasson wrote: I am usually on rhizomatic, and #mod_perl sounds pretty good to me. there's folks on both #mod_perl and #modperl. let's drop #mod_perl, cos the other is easier to type. who runs rhizomatic? do they have a standard channel registration process? can somebody in the know make that all happen? Leon Brocard is taking care of a big part of it, I'll drop him a note about this, but I am not sure there is really a process for anything on rhizomatic sweet! Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5 (122FF51B/C634E37B) http://gozer.ectoplasm.org/F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3 A5A5 Q: It is impossible to make anything foolproof because fools are so ingenious. perl -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/print||$$++redo}' msg23836/pgp0.pgp Description: PGP signature
how to access the perl file from palm top
Hello Gurus, I have apache with mod-perl env. on Redhat linux 6.2 and mysql as backend. Written perl script that fetch the data from mysql database and generate the dynamic page to view from PC based browser. #!/usr/bin/perl -w use CGI qw(:standard); use DBI; $driver = mysql; $database = MsgBoard; $user = root; $password = ; $host = 127.0.0.1; $port = ; $dsn = DBI:$driver:database=$database;host=$host;port=$port; $dbh = DBI-connect($dsn, $user, $password,{'RaiseError' = 1}); $drh = DBI-install_driver(mysql); my $cgiQuery = new CGI; print $cgiQuery-header,start_html(check user); $myTable = UNAME; $sth = $dbh-prepare(Select uname From $myTable WHERE uname = 'required user' ); if (!$sth) { $ERROR=Error: . $dbh-errstr.BR Network Failed by Your requestbr/body/html; } if (!$sth-execute) { $ERROR=Error: . $dbh-errstr; } $sth-bind_columns( undef,\$uid); $sth-fetch(); print b $uid user found /b; $cgiQuery-end_html; But, now I want to access the same file from Palm top and Cell phone. What is content-type and in what format the page need to generate to access from the Palm top? and from Cell phone? If Generate the XML data repository using perl script, to view from Palm top what are the parser need to use at Palm top and server. Kindly, please give me suggestion and if any examples. Thanks in advance. ~ SubbaReddy .M
Apache::Cookie-expires under Windows
Hi, All, I posted a message on the subject a little earlier, but apparently I need to learn more. The Apache::Cookie-expires as below adds unwanted information (header dump attached) to the date and subsequently does not want to bake ($cookie-bake). This is the code: my $cookie = Apache::Cookie-new( $r, -name=access, -value=$cookie{access}-value, -expires='+20m' ); I run ActiveState Perl under the Win32 (WinME) with mod_perl 1.26 under Apache 1.3.22. Whether I run it on the Linux or use CGI::Cookie everything goes just fine. What's so wrong with Windows or the script or mod_perl (libapreq) that this happens? Cheers, Alexei mailto:[EMAIL PROTECTED]
mod_accel reverse proxying?
Does mod_accel have a reverse proxying directive (similar to the ProxyPassReverse directive in mod_proxy) in order to make redirects work? I believe the AccelPass directive automatically handles reverse proxying, but what if I used RewriteRule instead: RewriteRule ^(.*)\.asp$ http://127.0.0.1:8001/$1.asp [L,P] That does not setup reverse proxying for me...
Re: PerlEditor - Freeware or Trialware
or 'vim', as a matter of personnal preferences, and like Emacs, part of any Linux distibution. On Tue, 25 Dec 2001, Chris Jones wrote: Anand Ratnasabapathy wrote: Can any one help me with a Nice Editor for working on Perl-cgi, Emacs. http://www.gnu.org/software/emacs/emacs.html
Re: mod_accel reverse proxying?
On Thu, 27 Dec 2001, Philip Mak wrote: Does mod_accel have a reverse proxying directive (similar to the ProxyPassReverse directive in mod_proxy) in order to make redirects work? Yes, AccelPass automatically handles reverse proxying in Location and Refresh headers. I believe the AccelPass directive automatically handles reverse proxying, but what if I used RewriteRule instead: RewriteRule ^(.*)\.asp$ http://127.0.0.1:8001/$1.asp [L,P] That does not setup reverse proxying for me... Yes, it doesn't. It's difficult to figure proxied URL parts in mod_rewrite so I have to make explicit directive to specify reverse rewrite. I will make it today or tomorrow. I think it should have reverse syntax: AccelReverse http://127.0.0.1:8001/ / Or not ? Of course it complicates porting from mod_proxy to mod_accel but I think it's clearer then ProxyPassReverse syntax. Igor Sysoev
cvs commit: modperl-2.0/pod modperl_dev.pod
stas01/12/27 01:23:14 Modified:pod modperl_dev.pod Log: - the help section has moved to its own document at docs/devel/help/help.pod Revision ChangesPath 1.48 +0 -146modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- modperl_dev.pod 2001/12/24 19:28:41 1.47 +++ modperl_dev.pod 2001/12/27 09:23:14 1.48 @@ -203,152 +203,6 @@ % perl build/source_scan.pl apxs $apache_prefix/bin/apxs -=head1 Support - -The following mailing lists can be of a major interest to the mod_perl -2.0 developers: - -=head2 mod_perl 2.0 Development - -=over - -=item discussion/problems report: - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://marc.theaimsgroup.com/?l=apache-modperl-devr=1w=2#apache-modperl-dev - -reporting: Be sure to include the output of: - - % perl build/config.pl - -which generates the output from: - -=over 4 - -=item perl -V - -=item httpd -V - -=item Makefile.PL options - -=back - -You can also use Ibuild/bugreport.pl. - -If you get segmentation faults see the I'make test' Debug section. - -=item cvs commits: - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://marc.theaimsgroup.com/?l=apache-modperl-cvsr=1w=2#apache-modperl-cvs - - -=back - - -=head2 Apache-Test - -The CApache-Test project, originally developed as a part of mod_perl -2.0, is now a part of the Apache Chttpd-test project. You get this -repository automatically when checking out the mod_perl-2.0 cvs -repository. - -To retrieve the whole httpd-test project, run: - - cvs co httpd-test - -=over - -=item discussion/problems report: - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: ??? - -=item cvs commits - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: ??? - -=back - - -=head2 Apache 2.0 - -=over - -=item discussion/problems report: - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://marc.theaimsgroup.com/?l=apache-new-httpdr=1w= - -=item cvs commits - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://marc.theaimsgroup.com/?l=apache-cvsr=1w=2 - -=back - - -=head2 Apache Portable Runtime (APR) - -The Apache Portable Run-time libraries have been designed to provide a -common interface to low level routines across any platform. mod_perl -comes with a partial Perl APR API. - -=over - -=item discussion/problems report: - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://marc.theaimsgroup.com/?l=apr-devr=1w=2 - -=item cvs commits - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://marc.theaimsgroup.com/?l=apr-cvsr=1w=2 - -=back - - - -=head2 Perl 5 - -Currently mod_perl 2.0 requires perl 5.6.x and higher. If you have -problems with Perl perl5-porters mailing list should be used. For -other lists see http://lists.perl.org/. - -=over - -=item discussion/problems report: - -mailing list subscription: mailto:[EMAIL PROTECTED] - -archive: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ -and http:[EMAIL PROTECTED]/ - -news gateway: news://news.perl.com/perl.porters-gw/ - -=item perforce - -Perl uses perforce for its source revision control, see -IPorting/repository.pod manpage coming with Perl for more -information. - -mailing list subscription: [EMAIL PROTECTED] - -archive: http:[EMAIL PROTECTED]/ - -=back - - =head1 'make test' Features
cvs commit: modperl-2.0/pod modperl_dev.pod
stas01/12/27 03:10:04 Modified:pod modperl_dev.pod Log: 'make test' features now all live in the writing_tests document Revision ChangesPath 1.49 +2 -98 modperl-2.0/pod/modperl_dev.pod Index: modperl_dev.pod === RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- modperl_dev.pod 2001/12/27 09:23:14 1.48 +++ modperl_dev.pod 2001/12/27 11:10:04 1.49 @@ -206,104 +206,8 @@ =head1 'make test' Features -=head2 What Test Options are Available - -Run: - - % ./t/TEST -help - -to get the list of options you can use during testing - -=head2 'make test' Debug - -mod_perl-2.0 provides built in 'make test' debug facility. So in case -you get a core dump during make test, or just for fun, run in one shell: - - % ./t/TEST -debug - -in another shell: - - % ./t/TEST -run - -then the I-debug shell will have a (gdb) prompt, type 'where' for -stacktrace. - -You can change the default debugger by supplying the name of the -debugger as an argument to I-debug. E.g. to run the server under -Cddd: - - % ./t/TEST -debug=ddd - -=head2 Advanced Debugging - -If you debug mod_perl internals you can set the breakpoints using the -I-breakpoint option, which can be repeated as many times as -needed. When you set at least one breakpoint, the server will start -running till it meets the Iap_run_pre_config breakpoint. At this -point we can set the breakpoint for the mod_perl code, something we -cannot do earlier if mod_perl was built as DSO. For example: - - % ./t/TEST -debug -breakpoint=modperl_cmd_switches \ - -breakpoint=modperl_cmd_options - -will set the Imodperl_cmd_switches and Imodperl_cmd_options -breakpoints and run the debugger. - -If you want to tell the debugger to jump to the start of the mod_perl -code you may run: - - % ./t/TEST -debug -breakpoint=modperl_hook_init - -In fact I-breakpoint automatically turns on the debug mode, so you -can run: - - % ./t/TEST -breakpoint=modperl_hook_init - - -=head2 Running Individual Tests - -Run a single test: - - % ./t/TEST protocol/echo.t - -The server will be stopped if it was already running and a new one -will be started before running the It/protocol/echo.t test. At the -end of the test the server will be shut down. - -You can run groups of tests at once. - - % ./t/TEST modules protocol/echo.t - -will run all the tests in It/modules/ directory, followed by -It/protocol/echo.t test. - -=head2 Repeating the Tests - -By default when you run the test without I-run-tests option, the -server will be started before the testing and stopped at the end. If -during a debugging process you need to re-run tests without a need to -restart the server, you can start the server once: - - % ./t/TEST modules -start-httpd - -and then run the test(s) with I-run-tests option many times: - - % ./t/TEST -run-tests protocol/echo - -without waiting for the server to restart. - -When you are done with tests shutdown the server: - - % ./t/TEST modules -stop-httpd - -=head2 Verbose Testing - -By default print() statements in the test script are filtered out by -CTest::Harness. if you want the test to print what it does (if you -decide to debug some test) use C-verbose option: - - % t/TEST -verbose protocol/echo.t - +L../writing_tests/writing_tests.pod document covers the Cmake test +suite. =head1 mod_perl configuration directives
cvs commit: modperl-2.0/pod modperl_dev.pod
stas01/12/27 03:50:22 Removed: pod modperl_dev.pod Log: - modperl_dev has been split into a few documents: - user/config/config.pod - user/install/install.pod and ceased to exist
cvs commit: modperl-2.0/pod .cvsignore modperl_2.0.pod modperl_design.pod
stas01/12/27 04:02:47 Added: src/docs/2.0/user/overview overview.pod src/docs/2.0/user/design design.pod Removed: pod .cvsignore modperl_2.0.pod modperl_design.pod Log: - move docs from ./pod to docs/user/appr dir/ - ./pod dir is a goner, all docs are now in the modperl-docs rep Revision ChangesPath 1.1 modperl-docs/src/docs/2.0/user/overview/overview.pod Index: overview.pod === =head1 NAME Overview of mod_perl 2.0 =head1 Introduction mod_perl was introduced in early 1996, both Perl and Apache have changed a great deal since that time. mod_perl has adjusted to both along the way over the past 4 and a half years or so using the same code base. Over this course of time, the mod_perl sources have become more and more difficult to maintain, in large part to provide compatibility between the many different flavors of Apache and Perl. And, compatibility across these versions and flavors is a more diffcult goal for mod_perl to reach that a typical Apache or Perl module, since mod_perl reaches a bit deeper into the corners of Apache and Perl internals than most. Discussions of the idea to rewrite mod_perl as version 2.0 started in 1998, but never made it much further than an idea. When Apache 2.0 development was underway it became clear that a rewrite of mod_perl would be required to adjust to the new Apache architechure and API. Of the many changes happening in Apache 2.0, the one which has the most impact on mod_perl is the introduction of threads to the overall design. Threads have been a part of Apache on the win32 side since the Apache port was introduced. The mod_perl port to win32 happened in verison 1.00b1, released in June of 1997. This port enabled mod_perl to compile and run in a threaded windows environment, with one major caveat: only one concurrent mod_perl request could be handled at any given time. This was due to the fact that Perl did not introduce thread safe interpreters until version 5.6.0, released in March of 2000. Contrary to popular belief, the thread support implemented in Perl 5.005 (released July 1998), did not make Perl thread safe internally. Well before that version, Perl had the notion of Multiplicity, which allowed multiple interpreter instances in the same process. However, these instances were not thread safe, that is, concurrent callbacks into multiple interpreters were not supported. It just so happens that the release of Perl 5.6.0 was nearly at the same time as the first alpha version of Apache 2.0. The development of mod_perl 2.0 was underway before those releases, but as both Perl 5.6.x and Apache 2.0 are reaching stability, mod_perl-2.0 becomes more of a reality. In addition to the adjustments for threads and Apache 2.0 API changes, this rewrite of mod_perl is an opportunity to clean up the source tree. This includes both removing the old backward compatibility bandaids and building a smarter, stronger and faster implementation based on lessons learned over the 4.5 years since mod_perl was introduced. This paper and talk assume basic knowlege of mod_perl 1.xx features and will focus only the differences mod_perl-2.00 will bring. Note 1: The Apache and mod_perl APIs mentioned in this paper are both in an alpha state and subject to change. Note 2: Some of the mod_perl APIs mentioned in this paper do not even exist and are subject to be implemented, in which case you would be redirected to Note 1. =head1 Apache 2.0 Summary Note: This section will give you a brief overview of the changes in Apache 2.0, just enough to understand where mod_perl will fit in. For more details on Apache 2.0 consult the papers by Ryan Bloom. =head2 MPMs - Multi-Processing Model Modules In Apache 1.3.x concurrent requests were handled by multiple processes, and the logic to manage these processes lived in one place, Ihttp_main.c, 7200 some odd lines of code. If Apache 1.3.x is compiled on a Win32 system large parts of this source file are redefined to handle requests using threads. Now suppose you want to change the way Apache 1.3.x processes requests, say, into a DCE RPC listener. This is possible only by slicing and dicing Ihttp_main.c into more pieces or by redefining the Istandalone_main function, with a C-DSTANDALONE_MAIN=your_function compile time flag. Neither of which is a clean, modular mechanism. Apache-2.0 solves this problem by intoducing IMulti Processing Model modules, better known as IMPMs. The task of managing incoming requests is left to the MPMs, shrinking Ihttp_main.c to less than 500 lines of code. Several MPMs are included with Apache 2.0 in the Isrc/modules/mpm directory: =over 4 =item prefork The Iprefork module
cvs commit: modperl/Apache Apache.pm
cholet 01/12/27 07:44:33 Modified:Apache Apache.pm Log: document current_callback() Revision ChangesPath 1.65 +9 -0 modperl/Apache/Apache.pm Index: Apache.pm === RCS file: /home/cvs/modperl/Apache/Apache.pm,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- Apache.pm 2001/05/01 17:28:34 1.64 +++ Apache.pm 2001/12/27 15:44:33 1.65 @@ -776,6 +776,15 @@ $r-push_handlers( PerlHandler = \footer); +=item $r-current_callback + +Returns the name of the handler currently being run. This method is most +useful to PerlDispatchHandlers who wish to only take action for certain phases. + + if($r-current_callback eq PerlLogHandler) { + $r-warn(Logging request); + } + =back =head1 SETTING UP THE RESPONSE