Lunedi 09 Giugno 2003



Architettura Web-Java-Perl su Macchina HP 11i


Per aumentare le prestazioni del 70% di un sito Web che utilizza script cgi-perl bisogna integrare perl con Apache.

 

Con la presente modifica oltre ad avere perl come modulo esterno di Apache si rende disponibile il pool di connessione

 

ApacheDbi per la gestione istanze Oracle senza dover modificare il software esistente. Tale

 

miglioria non compromette il funzionamento di Apache con Tomcat.

 

Segue:

 

-         Schema

 

-         Prodotti da installare

 

-         Realizzazione tecnica

 

Schema

 

Prodotti da installare

 

- ApacheDBI-0.81 Contiene : Apache::AuthenDBI.pm, Apache::AuthzDBI.pm,

                                                Apache::DBI.pm , DebugDBI.pm.

 

- ApacheDBI-0.88 Aggiornamento: Apache::AuthDBI.pm and Apache::DBI.pm

 

- mod_perl-1.27

 

 

 

Realizzazione tecnica

Si consiglia di eseguire tutto da utenza root.

Posizionarsi nella directory sorgenti di Apache 1.3.27

 

Inviare il commando (directory di Apache)

 

- export EXTRA_LIBS='-lcl'

 

1) ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=proxy

--enable-rule=SHARED_CORE --enable-shared=max

 

2) make

 

3) stop apache se attivo

 

4) make install

 

5) start apache se attivo

 

6) Verifica tramite log corretto funzionamento

 

-         installare ApacheDBI-0.81 (Segui README)

 

-         installare ApacheDBI-0.88 (Segui README)

 

-         installare mod_perl-1.27

 

Posizionarsi nella directory mod_perl ed eseguire:

 

- perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache/bin/apxs EVERYTHING=1

 

- make

 

-         make install

 

creare il file startup.pl nella direcotry /usr/local/apache/etc

 

#!/usr/bin/perl

# example startup script for persistent database connections

# make sure we are in a sane environment.

 

$ENV{GATEWAY_INTERFACE} =~/^CGI-Perl/ or die "GATEWAY_INTERFACE not Perl!";

 

use Apache::Registry;

use Apache::Status;

use Apache::DBI;

use Apache::DebugDBI;

$Apache::DBI::DEBUG=2;

#use Apache::AuthenDBI;

#use Apache::AuthzDBI;

 

$ENV{ORACLE_HOME} = 'path_oracle';

 

Apache::DBI->connect_on_init("dbi:Oracle:host=xxx.xxx.xxx.xxx;sid=XXXX","xxxxx",

"xxxxxx");

 

# Moduli da precaricare

use strict;

#use DBI;

 

1;

 

 

-         nella directory etc di apache modificare il file srm.conf

 

aggiungere le linee:

 

PerlModule Apache::DBI

PerlModule Apache::DebugDBI

PerlModule Apache::Registry

PerlModule Apache::Status

 

 

-         nella directory etc di apache modificare il file httpd.conf

 

cambiare togliere il commento alla linea:

ResourceConfig etc/srm.conf

 

Aggiungere la linea (il posizionamento file startup è solo casuale):

 

PerlRequire /usr/local/apache/etc/startup.pl #oppure path dove risiede Apache

 

PerlFreshRestart On

PerlWarn On

 

Modificare ed aggiungere:

ScriptAlias /cgi-perl/ "path-perl/"

    <Directory "/path-perl">

    SetHandler perl-script

#     PerlHandler Apache::Registry       #Utilizza programazzione a oggetti

     PerlHandler Apache::PerlRun       # Fa la fork degli script perl

     Options ExecCGI

     PerlSendHeader On                       #Con On non attiva I Content Type Off: attiva I Content type

    </Directory>

 

 - Creare un Alias nel file .cshrc per poter seguire il log on-line.


alias terr 'tail -f $APACHE_HOME/adm/error_log'


Per poter vedere la modifica rifare il login oppure source .login


Eseguire il restart di apache.


Dal 05/11/2002 questa pagina è stata visitata: