GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
IC_MOD_PERL(1) User Contributed Perl Documentation IC_MOD_PERL(1)

ic_mod_perl -- Run Interchange entirely inside Apache/mod_perl

  # Add to Apache httpd.conf:
  PerlRequire /usr/lib/interchange/bin/ic_mod_perl
  PerlChildInitHandler Vend::ModPerl::child_start
  PerlChildExitHandler Vend::ModPerl::child_end
  <Location /ic>
      SetHandler perl-script
      PerlHandler Vend::ModPerl
      PerlSendHeader Off
      PerlSetupEnv On
  </Location>

  • Possibly better stability, especially on non-Linux platforms where Perl signals are often buggy.
  • Use less memory total; don't have preforked Apache and Interchange daemons. Adds about 8 MB more to a typical Apache/mod_perl child process, for a total of, say, 32 MB per Apache child process. But standalone Interchange usually has 3 processes: an Interchange child process (~24 MB), an httpd child (~24 MB), and a link CGI (~1 MB), so it's actually a decent savings in total memory used.
  • Speed (ranging from slightly faster to the same on heavy pages, to 10 hits/sec. faster on empty pages).
  • Debugging -- delve into bowels with Apache::Status.
  • Easier coexistence with other mod_perl code and libraries.
  • Can coexist with standalone Interchange codebase without problems.
  • Administrative ease (for sysadmins who know Apache but not Interchange).

  • Interchange runs as web server user, which in a standard system is usually apache or www, so you wouldn't want to share that Apache installation with untrusted user CGIs, PHP, etc. as they could read any Interchange files, including DSNs, userdb, etc.
  • Apache needs to be dedicated, or very closely watched because all mod_perl stuff runs in the same interpreter, and lots of mod_perl code doesn't use Safe.
  • How do you scale to multiple app servers in this configuration?
  • Hardware or software port redirector
  • Tux CGI front-end redirector like tlink
  • Separate lightweight Apache (no modules) that proxies /ic requests

Use Tux to serve images & static content, and a dedicated Apache for Interchange running under the 'interch' user and with no UserDir, CGI, PHP, etc. enabled and an empty DocRoot.

Watch out for differing Storable versions in sessions when switching between standalone and mod_perl runs!

  • Haven't yet implemented form/multipart submissions.
  • Don't yet handle TolerateGet.
  • Don't yet handle MiniVend 3 style GETs (mv_session_id;mv_arg;mv_pc)
  • URIs must follow format "/ic/catalogname/page...", where /ic is customizable but must only be one "directory" deep (i.e., no slashes).

Jon Jensen <jon@icdevgroup.org>, March 2002

Hey! The above document had some coding errors, which are explained below:
Around line 29:
'=item' outside of any '=over'
Around line 65:
You forgot a '=back' before '=head2'
Around line 67:
'=item' outside of any '=over'
Around line 101:
You forgot a '=back' before '=head2'
Around line 110:
'=item' outside of any '=over'
Around line 116:
You forgot a '=back' before '=head1'
Around line 118:
'=item' outside of any '=over'
Around line 137:
You forgot a '=back' before '=head1'
2022-05-14 perl v5.32.1

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.