MySQL and Perl for the Web: Chapter 3 Section 2 (3/5) | WebReference

MySQL and Perl for the Web: Chapter 3 Section 2 (3/5)

To page 1To page 2current pageTo page 4To page 5
[previous][next]

Improving Performance with mod_perl

Test Your mod_perl Configuration

Each time you modify the configuration file, as in the preceding section, you must restart Apache. (See Chapter 2 for instructions on doing so.)

Do that right now, and then you'll be ready to test your setup. To begin, request the perl-status "page" from your site:

https://www.snake.net/perl-status

In your browser, you should see something similar to Figure 3.1, where the initial part of the display shows some overall configuration information and the items below the line provide links to pages listing more specific information about mod_perl itself. Select a few of the links to get a feel for the kinds of information they provide.

Figure 3.1: Output from the perl-status handler.

Next, create the following short script in the cgi-bin directory (that's right, cgi-bin, not cgi-perl):

#! /usr/bin/perl
print "Content-Type: text/html\n\n";
print "<html><head><title>Script Environment</title></head><body>\n";
print map { "$_ = $ENV{$_}<br>\n" } sort (keys (%ENV));
print "</body></html>\n";

Name the script perltest.pl, make it executable, and request it through your browser (https://www.snake.net/cgi-bin/perltest.pl). The script should print the names and values of its environment variables. One of the output lines will show the value of the GATEWAY_INTERFACE environment variable, which should begin with CGI:

GATEWAY_INTERFACE = CGI/1.1

Now copy perltest.pl to the cgi-perl directory and request https://www.snake.net/cgi-perl/perltest.pl so that the script is executed by mod_perl rather than by a standalone Perl process. The output should be similar, but the value of GATEWAY_INTERFACE should begin with cgi-perl, not CGI. This indicates that the CGI environment has been set up by the mod_perl Apache::Registry module. In addition, the output should show a variable MOD_PERL containing your mod_perl version number:

GATEWAY_INTERFACE = cgi-perl/1.1
MOD_PERL = mod_perl/1.24

This exercise with perltest.pl shows how you can run a script either as a standalone CGI program or using mod_perl. It also shows what you need to do if you have a script that needs to know whether it's running under mod_perl. That is, you can use either of the following tests:

if (exists ($ENV{MOD_PERL})) { print "mod_perl yes\n"; }
if ($ENV{GATEWAY_INTERFACE} =~ /^cgi-perl/) { print "mod_perl yes\n"; }
To page 1To page 2current pageTo page 4To page 5
[previous][next]


Created: July 2, 2001
Revised: July 2, 2001

URL: https://webreference.com/programming/perl/mysqlperl/chap3/2/3.html