Apache-PAR

 view release on metacpan or  search on metacpan

PAR.pm  view on Meta::CPAN

      PerlSetVar PARStaticDirectoryIndex index.htm
      PerlAddVar PARStaticDirectoryIndex index.html
      PerlSetVar PARStaticDefaultMIME text/html
    </Location>

    Alias /myapp/cgi-perl/ ##PARFILE##/
    <Location /myapp/cgi-perl>
      Options +ExecCGI
      SetHandler perl-script
      PerlHandler Apache::PAR::Registry
    </Location>

    Alias /myapp/cgi-run/ ##PARFILE##/
    <Location /myapp/cgi-run>
      Options +ExecCGI
      SetHandler perl-script
      PerlHandler Apache::PAR::PerlRun
    </Location>

    PerlModule MyApp::TestMod
    Alias /myapp/mod/ ##PARFILE##/
    <Location /myapp/mod>
      SetHandler perl-script
      PerlHandler TestMod
    </Location>

  Using ##UNPACKDIR## to unpack archive
  
    Alias /myapp/static/ ##UNPACKDIR##/htdocs/
    
    Alias /myapp/cgi-perl/ ##UNPACKDIR##/scripts/
    <Location /myapp/cgi-perl>
      Options +ExecCGI
      SetHandler perl-script
      PerlHandler Apache::Registry
    </Location>
    
    Alias /myapp/cgi-run/ ##UNPACKDIR##/scripts/
    <Location /myapp/cgi-run>
      Options +ExecCGI
      SetHandler perl-script
      PerlHandler Apache::PerlRun
    </Location>
    
    PerlModule MyApp::TestMod
    Alias /myapp/mod/ ##PARFILE##/
    <Location /myapp/mod>
      SetHandler perl-script
      PerlSetEnv TestModTemplateDir ##UNPACKDIR##/template
      PerlHandler TestMod
    </Location>
    
  Using PerlInitHandler to reload changed modules:
  
    PerlModule Apache::PAR
    PerlInitHandler Apache::PAR
       
        
=head1 DESCRIPTION

Apache::PAR is a framework for including Perl ARchive files in a mod_perl (1.x or 2.x) 
environment.  It allows an author to package up a web application, including configuration, 
static files, Perl modules, and Registry and PerlRun scripts to include in a single file.  
This archive can then be moved to other locations on the same system or distributed, and 
loaded with a single set of configuration options in the Apache configuration.

These modules are based on PAR.pm by Autrijus Tang and Archive::Zip by Ned Konz, as well as 
the mod_perl modules.  They extend the concept of PAR files to mod_perl, similar to how WAR 
archives work for Java. An archive (which is really a zip file), contains one or more 
elements which can be served to clients making requests to an Apache web server.  
Scripts, modules, and static content should then be able to be served from within the .par 
archive without modifications.

Apache::PAR itself performs the work of specifying the location of PAR archives and allowing 
the loading of modules from these archives.  The files and paths can be specified at load time.  Once an archive has been located, an optional web.conf (filename configurable) is then loaded and included into the main web configuration.  Once Apache:...

The following steps are performed on any .par files which are found within a PARInclude:

=over 4

=item * If the PARInclude is a directory, all PAR files within that directory are loaded

=item * Any .par files defined are loaded with PAR.pm, making any modules defined within 
it visible to Apache

=item * Apache::PAR checks for the existence of a web.conf file within each .par archive and, 
if found, includes that configuration into the main Apache configuration.

=item * If a web.conf file contains the keyword C<##UNPACKDIR##>, the contents of the 
archive will be unpacked during Apache startup.  The location which this is unpacked to 
is controlled with the PARTempDir directive.

=item * If PerlInitHandler Apache::PAR is specified, and the contents of a PAR file change, 
the archive will be reloaded (modules and content.)

=back

=head2 Some things to note:

PerlSetVar/AddVar configuration for PARInclude and PARTempDir B<MUST> be before the 
PerlModule Apache::PAR (or use Apache::PAR;) line in the Apache configuration.  
Any PARInclude variables (or PARDir and PARFile) after the PerlModule line will be ignored.

PARDir and PARFile directives may be used to specify the location of PAR archives, however 
their use is deprecated.  For new configurations, use PARInclude instead.  PARInclude works 
both as PARDir and PARFile by first expanding directories to include any PAR archives found 
within.

The arguments for PARInclude can be either an absolute path, or a relative path from Apache's 
server_root.  For example, if your Apache's server_root is /usr/local/apache, and you would 
like to load .par files from a parfiles/ subdirectory, use:
  PerlSetVar PARInclude parfiles/

This will then look for .par files in the /usr/local/apache/parfiles directory.

The name of the configuration file which is loaded is configurable via PARConf 
(default is 'web.conf'.)  For example, to set the include filename to 'include.conf' for 
all .par files:
  PerlSetVar PARConf include.conf

The extensions used when searching for .par archives in any directories set via PARInclude 



( run in 1.854 second using v1.01-cache-2.11-cpan-df04353d9ac )